【问题标题】:Using query parameters in FROM statements在 FROM 语句中使用查询参数
【发布时间】:2020-05-19 09:46:09
【问题描述】:

我正在使用 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 不是 在欧盟位置发现

如果我不能在FROM 子句中使用变量,有没有其他方法可以使选定的表成为动态输入?

我也尝试使用通配符和_TABLE_SUFFIX,但DELETE 查询不允许使用通配符。

【问题讨论】:

  • 你可以在这里看到:stackoverflow.com/questions/55521550/…
  • @JoeTaras 我一定是遗漏了什么,我在这篇文章中看不到解决方案?
  • 我想是的。在那个问题中,想知道 Google Big Query 中是否存在复制 MS Sql Server 的动态 sql 查询行为的方法

标签: sql google-bigquery


【解决方案1】:

您可以尝试以下方法:

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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-29
    • 1970-01-01
    • 1970-01-01
    • 2021-11-01
    • 2019-10-01
    相关资源
    最近更新 更多