谷歌 bigquery - 更新 sql?

Posted

技术标签:

【中文标题】谷歌 bigquery - 更新 sql?【英文标题】:Google bigquery - update sql? 【发布时间】:2015-09-16 21:45:51 【问题描述】:

您似乎可以在 bigquery 中执行 select sql,但您可以通过 api 或从他们的 Web 控制台仅更新表中的某些行吗?

【问题讨论】:

【参考方案1】:

目前 BigQuery 仅接受 SELECT 语句。需要通过 API、Web UI 或 CLI 更新数据。

【讨论】:

【参考方案2】:

BigQuery 是一种WORM 技术(设计上只能附加)。它在我看来,你不知道这件事,因为没有像 UPDATEDELETE 行这样的选项。

【讨论】:

我在查看附加示例,似乎每个人都从云存储中获取 csv,然后附加到表中。是否可以跳过它并直接发布到 bigquery 以附加到现有表? 是的,通过 API 使用流式插入。【参考方案3】:

要删除数据,您可以在没有所需行的情况下重新实现表:

SELECT *
FROM [mytable]
WHERE id NOT IN (SELECT id FROM [rows_to_delete]

要更新数据,您可以遵循类似的过程:

SELECT * FROM (
  SELECT *
  FROM [mytable]
  WHERE id NOT IN (SELECT id FROM [rows_to_update]
), (
  SELECT * 
  FROM [rows_to_update]
)

与其他分析数据库 AFAIK 上的本机更新/删除相比,在 BigQuery 中重新实现表已经足够快了。

【讨论】:

以上是关于谷歌 bigquery - 更新 sql?的主要内容,如果未能解决你的问题,请参考以下文章

使用来自 Google BigQuery 的数据更新电子表格不起作用

按时间范围谷歌选择不同的用户组 - bigquery SQL

BigQuery INSERT DML 语句限制

如何分别使用服务帐号和 API 密钥来使用 BigQuery?

上个月的最后一天 - BigQuery

如何从 CIDR BigQuery 获取 From & To IP 地址