gpt4 book ai didi

google-bigquery - BigQuery - 从分区表中删除行

转载 作者:行者123 更新时间:2023-12-04 15:08:06 24 4
gpt4 key购买 nike

我在 BigQuery 上有一个按日分区的表。当我尝试使用如下查询从表中删除一些行时:

DELETE FROM `MY_DATASET.partitioned_table` WHERE id = 2374180

我收到以下错误:

Error: DML statements are not yet supported over partitioned tables.



一个快速的谷歌搜索引导我到: https://cloud.google.com/bigquery/docs/loading-data-sql-dml它还说: “尚不支持修改分区表的 DML 语句。”

那么现在,是否有一种解决方法可以用于从分区表中删除行?

最佳答案

DML 有一些 known issues/在这个阶段的限制。

如:

  • DML 语句不能用于修改在其架构中具有 REQUIRED 字段的表。
  • 每个 DML 语句都会启动一个隐式事务,这意味着该语句所做的更改会在每个成功的 DML 语句结束时自动提交。不支持多语句事务。
  • 允许在一个表上同时运行以下 DML 语句组合:
    更新和插入
    删除和插入
    插入和插入
    否则 DML 语句之一将被中止。例如,如果对表同时执行两个 UPDATE 语句,则只有其中一个会成功。
  • 最近通过 BigQuery Streaming (tabledata.insertall) 写入的表无法使用 UPDATE 或 DELETE 语句进行修改。要检查该表是否有流缓冲区,请检查名为 streamingBuffer 的部分的 tables.get 响应。如果不存在,则可以使用 UPDATE 或 DELETE 语句修改该表。
  • 尚不支持修改分区表的 DML 语句。

  • 另请注意 quota limits
  • 每个表每天最多 UPDATE/DELETE 语句:48
  • 每个项目每天最多 UPDATE/DELETE 语句:500
  • 每个表每天最多 INSERT 语句:1,000
  • 每个项目每天最多 INSERT 语句:10,000

  • 您可以做的是将整个分区复制到非分区表并在那里执行 DML 语句。然后将临时表写回分区。此外,如果您遇到每个表每天的 DML 更新限制语句,则需要创建该表的副本并在新表​​上运行 DML 以避免该限制。

    关于google-bigquery - BigQuery - 从分区表中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42561860/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com