データセット内の2つのテーブルにビューを作成しました。コンソールWeb UIからビューを照会することができます。しかし、サービスアカウントキーを使用してPythonクライアントコードからビューを照会しようとすると、エラーコード:200、不正リクエスト、無効なtablenameが表示されます。同じコードを使用して基礎となるテーブルを照会することができます。テーブル名をビュー名に置き換えようとすると、コードは機能しなくなります。我々はquery_results.use_legacy_sql = False
設定した場合もPythonコードからBigqueryビューのエラーが発生する
from google.cloud import bigquery
def test():
client = bigquery.Client(project='project-name')
query_results = client.run_sync_query("""
SELECT column-names
FROM `dataset.viewname`
WHERE conditions
;""")
query_results.use_legacy_sql = False
query_results.run()
page_token = None
while True:
rows, total_rows, page_token = query_results.fetch_data(
max_results=1,
page_token=page_token)
for row in rows:
print row
if not page_token:
break
if __name__ == '__main__':
test()
、我々はエラーの下に取得する:
BadRequest: 400 Invalid table name: 'dataset.viewname'
ありがとうございます。標準SQLに移動し、ビュークエリで#standard sqlタグを使用すると、標準のクエリ言語が使用できました。それはPythonコードが動作を開始した –