2017-01-19 5 views
1

私は、データストア内の約100,000個のエンティティを格納するGoogle App-Engineプロジェクトに取り組んでいます。これらのエンティティの文字列プロパティを検索する必要があるため、効率的な方法を見つける必要があります。OAuth2認証ダイアログを使用せずにGoogle App Engine(Python)からBigQueryテーブルに接続してクエリできますか?

いくつかの調査の結果、私にとって完璧に見えるGoogleのBigQueryサービスが見つかりました。エンティティをWebインターフェイス経由でBigQueryにインポートしましたが、App EngineコードからBigQueryに接続してクエリを実行することはできません。

私のApp-EngineプロジェクトにはWebインターフェイスがありません。モバイルアプリケーションによって消費されるJSON出力のみを生成します。

私の質問は、OAuth2認証ダイアログを使わずにApp-EngineのPythonコードからクエリを接続して実行できるかどうかです。

答えて

2

はい。 hereのように、単に「サービスアカウント」として知られているものを使用してください。その後、いくつかの簡単なPythonコードクレデンシャルファイルを指すようにGOOGLE_APPLICATION_CREDENTIALSをエクスポートしたら:

from google.cloud import bigquery 
client = bigquery.Client(project='PROJECT_ID') 
for dataset in client.list_datasets(): 
     do_something_with(dataset) 

詳細情報すぎhere

+0

グラハムありがとうございます。私はすでにこれを試しましたが、私はいつもこのエラーメッセージを受け取ります: "google.cloudからimport bigquery ImportError:モジュール名がcloudではありません"。 私は最初にgoogle-api-python-clientライブラリを "ベンダー"にしなければならないと思っていましたが、試みるたびに失敗しました。 –

+1

はい、モジュールをインストールする必要があります: 'pip install --upgrade google-cloud' –

+1

ありがとう、Graham。あなたは私に無限の時間を救った。 私はこの話題についてかなり混乱しましたが、今では暗闇の中で光を見ることができます:) –

-1

大文字と小文字が区別されます。 - 'クライアント'のキャプションを確認します。

my_bigquery_client = bigquery.client(project = 'my_project') 

- これはエラーで失敗し

my_bigquery_client = bigquery.Client(project = 'my_project') 

"はTypeError 'モジュール' オブジェクトは呼び出し可能ではありません" - これは動作します。

関連する問題