【问题标题】:Does BigQuery support UPDATE, DELETE, and INSERT (SQL DML) statements?BigQuery 是否支持 UPDATE、DELETE 和 INSERT (SQL DML) 语句?
【发布时间】:2016-12-19 18:04:22
【问题描述】:

BigQuery 支持 SELECT 语句,但它是否支持 DML 语句,如 INSERT、UPDATE 和 DELETE?

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    是的,BigQuery 现在支持使用标准 SQL 的 SQL DML(取消选中“显示选项”下的“使用旧版 SQL”)。旧版 SQL 不支持 SQL DML。

    官方文档在这里: https://cloud.google.com/bigquery/sql-reference/data-manipulation-language

    注意: 具有流式缓冲区的表支持 UPDATE、DELETE 和 MERGE DML 语句,只要该语句不影响流式缓冲区中的行。

    【讨论】:

    • 感谢您的反馈。此 alpha 版本的官方文档将在不久的将来发布,但我们希望尽快将其提供给我们的用户继续尝试,以便我们获得您的反馈。
    • Mikhail,我向你保证,当它进入 Beta 版时,我们将发布适当的广泛公告。这是一个早期的 Alpha 版本,我们希望在这里收集用户反馈。
    • @MikhailBerlyant - 你如何看待使用 StackOverflow 作为我们的官方预告频道?一切都将被记录并最终添加到发行说明中,但如果我们必须在任何地方预先宣布......为什么不奖励我们出色的 StackOverflow 社区。​​span>
    • 老实说!不知何故,我觉得 SO 不是发布公告的正确地点/渠道!只是我的意见。
    • @MikhailBerlyant - 挑战:一切最终都会在cloud.google.com/bigquery 中结束,但我们正在寻找一种方法与尚未准备好迎接黄金时段的较小社区分享内容。我们也有其他项目,但如果我必须选择我最喜欢的是这个(包括你所有的贡献)。
    【解决方案2】:

    我已经使用 BigQuery API 测试了 DELETE 语句,它对我很有效。 这是 GCP composer (airflow)

    中的源代码
    from airflow.contrib.operators.bigquery_operator import BigQueryOperator
    
    bq_delete_task = BigQueryOperator(
        dag = dag,
        task_id = 'remove_from_table_bq',
        destination_dataset_table = False,
        destination_table = 'table_name',
        bql = "DELETE FROM " + BQ_DATASET_NAME + "." + "table_name" + " WHERE date = '2018-06-06'",
        use_legacy_sql = False
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-06
      • 2021-09-24
      • 1970-01-01
      相关资源
      最近更新 更多