有没有关于在Google Bigquery中删除数据表中某些部分的支持计划?我们目前遇到的问题是,我们使用它来分析随时间收集的数据点。我们想要查询过去X天的数据,然而在过去X天的数据之后,我们不再需要将数据存储在BigQuery中。
当前唯一的想法是删除整个数据表,然后重新创建并加载X天的数据。然而,这会要求我们每天将数据存储为CSV文件,这并不理想。
是否有关于如何处理此问题或即将推出删除行查询的建议?
有没有关于在Google Bigquery中删除数据表中某些部分的支持计划?我们目前遇到的问题是,我们使用它来分析随时间收集的数据点。我们想要查询过去X天的数据,然而在过去X天的数据之后,我们不再需要将数据存储在BigQuery中。
当前唯一的想法是删除整个数据表,然后重新创建并加载X天的数据。然而,这会要求我们每天将数据存储为CSV文件,这并不理想。
是否有关于如何处理此问题或即将推出删除行查询的建议?
2016更新:BigQuery现在可以删除和更新行 -- Fh
https://cloud.google.com/bigquery/docs/reference/standard-sql/dml-syntax
感谢您描述您的用例。BigQuery的设计是追加方式存储数据的,目前我们不支持从现有数据集中删除单个或批量的行。
目前,要实现“轮换”日志系统,您必须执行以下操作之一: 1.每天创建一个新表(如果需要,删除旧表) 2.将数据附加到表中,并按时间/日期查询
实际上,我建议为每天创建一个新表。由于BigQuery根据查询的数据量收费,因此对于您来说,这将是最经济的选择,而不是每次都要查询整个庞大的数据集。
顺便问一下,您当前如何收集数据?
在 BigQuery 中删除记录,您需要先启用标准 SQL。
启用标准 SQL 的步骤:
这将启用 BigQuery 数据操作语言 (DML),以更新、插入和删除 BigQuery 表中的数据。
现在,您可以编写普通 SQL 查询来删除记录。
DELETE [FROM] target_name [alias] WHERE condition
您可以参考:https://cloud.google.com/bigquery/docs/reference/standard-sql/dml-syntax#delete_statement。#标准SQL 如果你想删除所有的行,请使用以下代码
delete from `project-id.data_set.table_name` where 1=1;
如果您想删除特定行,请使用以下代码。
delete from `project-id.data_set.table_name` where (your condition)
project-id.data_set.table_name
where 1=1; - sethuDELETE FROM {dataset}.{table} WHERE TRUE
would affect rows in the streaming buffer, which is not supported
这个错误,只需等几分钟即可。这个答案似乎表明可能需要长达90分钟
。在我的情况下,大约5分钟
就足够清除它了。 - BU0对我有用的内容:
TRUNCATE TABLE `project_id.dataset.table_name`
SELECT * FROM
publicdata:samples.github_nested
OMIT RECORD IF
COUNT(payload.pages.page_name) <= 80;
大数据查询语句参考
本文档介绍了Google Cloud BigQuery中可用的标准SQL查询语句,包括常见的查询操作和函数,以及多个示例。我们还讨论了如何在查询过程中引用表、视图和外部数据源,并提供了一些性能优化技巧。
要查看完整的查询语句,请按照以下步骤操作:
1. 在BigQuery网页UI中打开您的查询编辑器。
2. 输入或粘贴一个查询。
3. 单击“运行”按钮以执行查询。DELETE FROM {dataset}.{table} WHERE {constraint}
dataset.table
中删除所有数据 - moshe beeri
bq update --expiration <time_from_now_in_seconds> dataset.table
。 - Jordan Tigani