1
Google BigQuery Python APIを使用してクエリを作成しようとしています。プロジェクトIDとデータセット名をパラメータとして設定しています。私はGoogle Github.ioのパラメータ化されたクエリの実装を調べました。私は次のエラーGoogle BigQueryでパラメータ化されたクエリでエラーが発生しました
google.api_core.exceptions.BadRequest: 400 Invalid table name: @project:@dataset.AIRPORTS
を取得するクエリを実行する場合でも、私たちはプロジェクト、パラメータを持つデータセットの名前に置き換えることができるかどうか混乱しています。以下は
私のコードにのみ、そのようなWHERE句でcolumn_name = @param_value
として、表現の代わりにパラメータを使用することができます
from google.cloud import bigquery
client = bigquery.Client.from_service_account_json('service_account.json')
project = client.project
datasets = list(client.list_datasets())
dataset = datasets[0]
dataset_id = dataset.dataset_id
QUERY = (
'SELECT * '
'FROM `{}.{}.AIRPORTS`'.format(project, dataset_id)
)
query = (
'SELECT * '
'FROM `@[email protected]`'
)
TIMEOUT = 30
param1 = bigquery.ScalarQueryParameter('project', 'STRING', project)
param2 = bigquery.ScalarQueryParameter('dataset', 'STRING', dataset_id)
job_config = bigquery.QueryJobConfig()
job_config.query_parameters = [param1, param2]
query_job = client.query(
query, job_config=job_config)
iterator = query_job.result(timeout=TIMEOUT)
rows = list(iterator)
print(rows)