まず、bq
コマンドラインツールを使用して、コマンドラインからBigQueryと対話する必要があります。 (hereについて読んで、hereをダウンロードしてください)。
私はそれがgsutil
とbq
の両方であなたの個人的な資格情報を使用することをお勧めします、bq
コマンドラインツールは、サービスアカウントの使用をサポートしていることマルクに同意します。サービスアカウント認証を使用するコマンドは、次のようになります。
bq --service_account [email protected]unt.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 Authorization guideのコードを使用した簡単な例を示します。ユーザーがもう存在しない場合はジョナサンの要求に基づいて
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 = '[email protected]'
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'])
gsutilは2013年3月25日現在、サービスアカウントをサポートしています。以下のMike Schwartzの回答を参照してください。http://stackoverflow.com/a/15646928/92445 –