使现有的 bigquery table 集群化
Make existing bigquery table clustered
我在 bigquery 中有一个相当大的现有分区 table。我想让 table 成簇,至少对于新分区是这样。
根据文档:https://cloud.google.com/bigquery/docs/creating-clustered-tables,据说我们能够 Creating a clustered table when you load data
并且我已尝试使用聚类字段加载新分区:job_config.clustering_fields = ["event_type"]
.
加载成功完成,但是新分区似乎没有集群(我不太确定如何检查它是否集群,但是当我查询那个特定分区时它总是会扫描所有行).
有没有什么好的方法可以为现有的分区 table 创建聚类字段?
非常感谢任何评论、建议或回答。
非常感谢,
约瑟亚
这个答案不再有效/不正确
https://cloud.google.com/bigquery/docs/creating-clustered-tables#modifying-cluster-spec
您只能在创建 table 时指定聚簇列
因此,显然您不能指望现有的非集群 table,尤其是新分区成为集群
“解决方法”是创建新的 table 以进行正确分区/集群,并将数据从 Google 云存储 (GCS) 加载到其中。为此,您可以先将原始 table 中的数据导出到 GCS,这样整个过程都是免费的
BigQuery 支持将现有的非集群 table 更改为集群 table,反之亦然。您还可以更新集群 table.
的集群列集
您可以通过以下方式更改集群规范:
调用 tables.update
或 tables.patch
API 方法。
使用 --clustering_fields
标志调用 bq 命令行工具的 bq update
命令。
参考
https://cloud.google.com/bigquery/docs/creating-clustered-tables#modifying-cluster-spec
我从上面的答案中遗漏的是一个真实的例子,所以这里是:
bq update --clustering_fields=tool,qualifier,user_id my_dataset.my_table
其中工具、限定符和 user_id 是我希望 table 聚类的三列(按此顺序),table 是 my_dataset.my_table。
我在 bigquery 中有一个相当大的现有分区 table。我想让 table 成簇,至少对于新分区是这样。
根据文档:https://cloud.google.com/bigquery/docs/creating-clustered-tables,据说我们能够 Creating a clustered table when you load data
并且我已尝试使用聚类字段加载新分区:job_config.clustering_fields = ["event_type"]
.
加载成功完成,但是新分区似乎没有集群(我不太确定如何检查它是否集群,但是当我查询那个特定分区时它总是会扫描所有行).
有没有什么好的方法可以为现有的分区 table 创建聚类字段?
非常感谢任何评论、建议或回答。
非常感谢, 约瑟亚
这个答案不再有效/不正确
https://cloud.google.com/bigquery/docs/creating-clustered-tables#modifying-cluster-spec
您只能在创建 table 时指定聚簇列
因此,显然您不能指望现有的非集群 table,尤其是新分区成为集群
“解决方法”是创建新的 table 以进行正确分区/集群,并将数据从 Google 云存储 (GCS) 加载到其中。为此,您可以先将原始 table 中的数据导出到 GCS,这样整个过程都是免费的
BigQuery 支持将现有的非集群 table 更改为集群 table,反之亦然。您还可以更新集群 table.
的集群列集您可以通过以下方式更改集群规范:
调用 tables.update
或 tables.patch
API 方法。
使用 --clustering_fields
标志调用 bq 命令行工具的 bq update
命令。
参考
https://cloud.google.com/bigquery/docs/creating-clustered-tables#modifying-cluster-spec
我从上面的答案中遗漏的是一个真实的例子,所以这里是:
bq update --clustering_fields=tool,qualifier,user_id my_dataset.my_table
其中工具、限定符和 user_id 是我希望 table 聚类的三列(按此顺序),table 是 my_dataset.my_table。