[英]replace bigquery partition with data staged in bigquery table using python
[英]CREATE OR REPLACE TABLE using the Google BigQuery Python library
我的 Python 代码是这样的:
from google.cloud import bigquery
client = bigquery.Client(
project='my-project',
credentials=credentials,
)
sql = '''
CREATE OR REPLACE TABLE `my-project.my_dataset.test` AS
WITH some_table AS (
SELECT * FROM `my-project.my_dataset.table_1`
),
some_other_table AS (
SELECT id, some_column FROM my-project.my_dataset.table_2
)
SELECT * FROM some_table
LEFT JOIN some_other_table ON some_table.unique_id=some_other_table.id
'''
query_job = client.query(sql)
query_job.result()
该查询在 Google BigQuery 控制台 UI 中有效,但在从 Python 如上所述执行时无效。
我知道通过使用 CREATE OR REPLACE 这是一个“DDL”请求,我无法弄清楚如何从 Python 库中执行。 您可以在 job.config 中设置目标表,这使您可以创建表,但随后您将无法获得 CREATE OR REPLACE 功能。
感谢您的帮助。
在仔细查看文档后,我可以说BigQuery
的Python SDK
没有指定将DDL
语句作为查询执行的方法。 您可以在此处找到您正在使用的query
函数的文档化代码。 如您所见, query
参数需要一条SQL
语句。
尽管如此,我尝试重现您的问题并且它对我有用。 我可以像您一样使用DDL
语句完美地创建表。 因此我们可以得出结论,API 将 DDL 视为 SQL 的一个子集。 我建议您评论您收到的错误,以便我可以为您提供更好的支持。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.