我无法通过php进行大查询api的任何更新或删除操作。有任何技术可以完成这项任务。
答案 0 :(得分:3)
2016-08:BigQuery支持UPDATE和DELETE:)
Does BigQuery support UPDATE, DELETE, and INSERT (SQL DML) statements?
您可以使用BigQuery实现UPDATE和DELETE - 它不是本机操作。
要从表中删除行,请重新实现,而不使用不需要的行:
SELECT *
FROM [my.table1]
WHERE NOT id IN (19239,192392139,129391)
(设置为选项"允许大结果"以及"将结果写入my.table1")
要更新行,您可以执行类似的操作:
SELECT * FROM (
SELECT * FROM [my.table1]
WHERE NOT id IN (SELECT id FROM [my.updated_rows]
), (
SELECT * FROM [my.updated_rows]
)
换句话说:BigQuery是一个分析数据库,其中DELETE和UPDATE不是优化操作 - 但是您可以使用覆盖原始表的单个SELECT语句将它们拉出来。
答案 1 :(得分:2)
不要忘记BigQuery是WORM技术(仅限设计附加)。它找我,你不知道这件事,因为没有像UPDATE
或DELETE
这样的选项。
答案 2 :(得分:1)
正如其他朋友解释的那样,BigQuery只有附加设计。
您应该编写一个sql查询来过滤表中所有不需要的行,而不是删除行;并且您应该根据此查询的结果创建一个全新的表。然后你可以删除旧表。
要进行更新,您应该将新更新的行附加到表中,并按照我上面写的说明删除旧行。
答案 3 :(得分:0)
我已经停止设置写处置,然后可以使用python调用在bigquery上运行dml语句
不要设置以下参数
query_job_config.write_disposition