我正在使用python API在BigQuery表上运行DELETE FROM
作业。我正在尝试通过为可以扫描的表添加一个变量来使我的代码尽可能可重用,例如:
dml_statement = (
"""
DELETE FROM `my_project.my_dateset.detail_@market`
WHERE order_date = @date
""")
不幸的是,这将返回错误:
未找到:404 未找到:表 my_project:my_dataset.detail_@market not 位于 欧盟
如果我不能在FROM
子句中使用变量,是否有其他方法可以使所选表成为动态输入?
我也尝试使用通配符和_TABLE_SUFFIX
,但DELETE
查询不允许通配符选择。
你可以尝试这样的东西:
from google.cloud import bigquery
client = bigquery.Client()
project = 'YOUR_PROJECT'
dataset = 'YOUR_DATASET'
table = 'YOUR_TABLE'
sql ="""DELETE FROM `{}.{}.{}` WHERE something IS NULL"""
query=sql.format(project,dataset,table)
query_job = client.query(query)