まず、bq
コマンドラインツールを使用して、コマンドラインからBigQueryを操作する必要があります。(ここでそれについて読み、ここでダウンロードしてください)。
私はマークに同意します。コマンドラインツールはサービスアカウントの使用をサポートしているので、との両方gsutil
で個人のクレデンシャルを使用することをお勧めします。サービスアカウント認証を使用するコマンドは、次のようになります。bq
bq
bq --service_account 1234567890@developer.gserviceaccount.com --service_account_credential_store keep_me_safe --service_account_private_key_file myfile.key query 'select count(*) from publicdata:samples.shakespeare'
詳細については、入力bq --help
してください。
また、PythonまたはJavaを介してコードでサービスアカウントを使用するのも非常に簡単です。BigQuery認証ガイドのコードを使用した簡単な例を次に示します。
import httplib2
from apiclient.discovery import build
from oauth2client.client import SignedJwtAssertionCredentials
# REPLACE WITH YOUR Project ID
PROJECT_NUMBER = 'XXXXXXXXXXX'
# REPLACE WITH THE SERVICE ACCOUNT EMAIL FROM GOOGLE DEV CONSOLE
SERVICE_ACCOUNT_EMAIL = 'XXXXX@developer.gserviceaccount.com'
f = file('key.p12', 'rb')
key = f.read()
f.close()
credentials = SignedJwtAssertionCredentials(
SERVICE_ACCOUNT_EMAIL,
key,
scope='https://www.googleapis.com/auth/bigquery')
http = httplib2.Http()
http = credentials.authorize(http)
service = build('bigquery', 'v2')
datasets = service.datasets()
response = datasets.list(projectId=PROJECT_NUMBER).execute(http)
print('Dataset list:\n')
for dataset in response['datasets']:
print("%s\n" % dataset['id'])