2016-06-21 25 views
1

私は知っています:クエリの結果はテンポラリテーブルに保存されます。しかし、他のクエリでその名前を使用する方法Google Bigquery API:テンポラリテーブルの名前を取得する方法

from googleapiclient.discovery import build 
from googleapiclient.errors import HttpError 
from oauth2client.client import GoogleCredentials 

def test(): 
    project_id = "598330041668" 
    credentials = GoogleCredentials.get_application_default() 
    bigquery_service = build('bigquery', 'v2', credentials=credentials) 
    # [START run_query] 
    query_request = bigquery_service.jobs() 
    query_data = { 
     'query': (
      'SELECT * ' 
      'FROM [test.names];') 
    } 

    query_response = query_request.query(
     projectId=project_id, 
     body=query_data).execute() 
    # [END run_query] 
+0

あなたのコードを貼り付けてください... –

+0

こんにちは@SmitaAhinave、私はコードを追加しました。ありがとう:) –

答えて

2
  1. あなたが走ったクエリのジョブIDを検索します。これはjobs.queryjobReferenceフィールドの応答にあります。
  2. jobs.getメソッドを使用して実行したジョブのクエリ構成をルックアップします。フィールドconfiguration.query.destinationTableを調べます。

しかし、あなたはBigQueryのはa temporary one that should only be used in certain APIs, which does not include other queriesを割り当てていることを、あなた自身の先テーブルを指定しなかった場合はご注意:

このメソッドからクエリ結果は約24時間に削除される一時テーブルに保存されていますクエリが実行された後この結果テーブルは、bigquery.tabledata.list(table_id)またはbigquery.jobs.getQueryResults(job_reference)のいずれかを呼び出して読み取ることができます。 テーブルとデータセットの名前は標準ではないため、他のAPIでは使用できません、動作が予測できない可能性があります。

次のクエリでクエリの結果を使用する場合は、自分で設定するテーブルに書き込むようにconfiguration.query.destinationTableを設定することをお勧めします。

+0

ええ。おかげで多くの。 –

関連する問題