Google BigQuery删除行?

Dau*_*aum 20 delete-row google-bigquery sql-delete

任何人都知道有任何计划在Google Bigquery的表格中添加对删除部分数据的支持吗?我们现在面临的问题是我们正在使用它来分析我们收集的数据点.我们希望在过去X天的数据中运行查询,但是在最后X天的数据之后,我们不再需要将数据存储在BigQuery中.

目前我们可以想到删除数据的唯一方法是删除整个数据表,然后重新创建并加载X天数据.这虽然要求我们将数据存储在每日CSV文件中,这不是最佳的.

有关如何处理此问题或在不久的将来是否有删除行查询的任何建议?

Mic*_*hri 27

2016更新:BigQuery现在可以删除和更新行 - Fh

https://cloud.google.com/bigquery/docs/reference/standard-sql/dml-syntax


感谢您描述您的用例.BigQuery仅按设计附加.我们目前不支持从现有数据集中删除单行或一批行.

目前,要实现"旋转"日志系统,您必须:1.每天创建一个新表(如果需要,删除旧表)2.将数据附加到表中并按时间/日期查询

我实际上建议每天创建一个新表.由于BigQuery根据查询的数据量收费,这对您来说是最经济的,而不是每次都要查询整个海量数据集.

顺便说一句 - 您目前如何收集数据?

  • 如果您采用旋转表方法,则仅供参考-BigQuery现在支持表到期时间。您可以使用bq工具使用bq update --expiration <time_from_now_in_seconds> dataset.table更新表。 (2认同)

rah*_*ulb 20

要删除Big查询中的记录,必须先启用标准sql.

启用标准sql的步骤

  1. 打开BigQuery Web UI.
  2. 单击"撰写查询".
  3. 单击显示选项.
  4. 取消选中Use Legacy SQL复选框.

这将使BigQuery数据操作语言(DML)能够更新,插入和删除BigQuery表中的数据

现在,您可以编写纯SQL查询来删除记录

DELETE [FROM] target_name [alias] WHERE condition
Run Code Online (Sandbox Code Playgroud)

您可以参考:https: //cloud.google.com/bigquery/docs/reference/standard-sql/dml-syntax#delete_statement


set*_*thu 19

#standardSQL 如果您想删除所有行,请使用以下代码

delete from `project-id.data_set.table_name` where 1=1;
Run Code Online (Sandbox Code Playgroud)

如果您想删除特定行,请使用以下代码。

delete from `project-id.data_set.table_name` where (your condition)
Run Code Online (Sandbox Code Playgroud)


小智 5

如果要删除表中的所有行,则:

DELETE FROM {dataset}.{table} WHERE TRUE

  • 我收到一条错误消息,告知表 tenor.trending_terms 上的 UPDATE 或 DELETE 语句会影响流缓冲区中的行,这是不受支持的 (3认同)

igo*_*rkf 5

对我有用的:

TRUNCATE TABLE `project_id.dataset.table_name`
Run Code Online (Sandbox Code Playgroud)