BigQuery 中的分区表
Posted
技术标签:
【中文标题】BigQuery 中的分区表【英文标题】:Partitioned tables in BigQuery 【发布时间】:2018-02-09 00:11:28 【问题描述】:我想知道在 BigQuery 中使用分区表的用途是什么。似乎大多数查询似乎都需要大约相同的时间才能完成,而不管大小(忽略极端情况,我在概括),这主要是使用它来降低处理字节的成本,还是主要用途是什么BQ分区表的情况?
https://cloud.google.com/bigquery/docs/creating-column-partitions
【问题讨论】:
查询当然更便宜。此外,使用旧的日期分片表方式 (_YYYYMMDD) 查询起来很麻烦/笨拙,而且您也很快达到了它的限制。它通过只向用户显示一个而不是数百个表来简化查询。 @GrahamPolley 明白了,感谢您的评论。您是否发现自己在使用 BQ 分区?如果是这样,您的示例用例是什么。 是的,一直都是。例如cloud.google.com/bigquery/docs/doubleclick-publisher-transfer 【参考方案1】:有多种好处,主要是成本。
通过编写只读查询,例如:7 天的分区而不是 7 年,您可以降低成本 超过 90 天未接触的分区成本更低 显然,您可以轻松地重新加载一天的数据,而不是费力地解决问题 仍然建议您使用 YEARly 表,例如 mytable_2018,但您不再需要每天表,例如:mytable_20180101,这进一步导致查询更简单,读取超过 1000 个表也不再是问题(即硬性限制)。 当您修改架构时,您需要修改几个表,您不再需要在数千个表上编写更改脚本 这也意味着它的情人字节被处理并且在云平台中可以得到更好的优化并且需要更少的资源 通过将数据重新组织到分区表中,查询时间将在未来受益。随着客户移动数据,云工程团队将优化服务以更好地使用。 如果您的现有数据至少有几 TB,您就会看到明显的成本效益。【讨论】:
以上是关于BigQuery 中的分区表的主要内容,如果未能解决你的问题,请参考以下文章
从 Dataflow python 作业写入 bigquery 中的分区表