我有一个包含340 we数据的表,但我们只使用了过去一周的数据。因此,为了最大限度地降低成本,计划将这些数据移动到分区表或分片表中。
我用分片表和分区做了一些实验。我已经创建了分区表,加载了两天的数据(两个分区),并创建了两个分片表(单独的表)。我试着提取了过去两天的数据。
全表-27秒分区表- 33秒切片表- 91秒
请告诉我哪种方法最好。根据实验结果,当我在满表上运行时,速度很快,但满表将进行扫描。
谢谢,
发布于 2018-08-24 22:01:35
根据GCP关于Partitioning versus Sharding的官方文档,您应该使用分区表。
分区表的性能优于按日期划分的表。创建日期命名表时,BigQuery必须为每个日期命名表维护架构和元数据的副本。此外,当使用以日期命名的表时,可能需要BigQuery来验证每个查询表的权限。这种做法还会增加查询开销并影响查询性能。推荐的最佳实践是使用分区表而不是日期分割表。
发布于 2016-09-16 13:25:11
性能上的差异似乎是由于在未分区的表上运行了一些后台优化,但在分区的表上还没有运行(因为数据较新)。
https://stackoverflow.com/questions/39514899
复制相似问题