google-bigquery - BigQuery 表如何与分区和集群字段一起使用?
问题描述
将列指定TIMESTAMP
为分区时 - 将数据保存在磁盘上的分区允许每次访问。
现在,BigQuery 还允许定义多达 4 个列,这些列将用作集群字段。
如果我得到正确的分区就像PK
和集群字段就像indexes
.
那么这是否意味着集群字段与记录如何保存在磁盘上无关?
解决方案
如果我理解正确,分区就像 PK
这是不正确的,分区不用于标识表中的行,而是使 BigQuery 能够将每个分区数据存储在不同的段中,因此当您按分区扫描表时,您只扫描指定的分区,从而降低扫描成本
集群字段就像索引
这是正确的集群字段用作指向表中记录的指针,并且无论分区如何,都可以快速/最低成本地访问数据。这意味着使用集群字段,您可以以最低的成本查询表跨分区
我喜欢他的媒体帖子中的@Felipe 图片,它很好地可视化了数据的存储方式。
注意:分区发生在插入时,而集群作为 BigQuery 执行的后台作业发生
推荐阅读
- r - 根据一列中的模式选择数据直到最后
- algorithm - 关于给定算法的渐近障碍的问题
- python-3.x - 从 numpy 数组浮点数创建日期时间对象
- monaco-editor - 摩纳哥是否有能力只显示一些行
- arrays - 管道变换使用减少对象数组
- c# - 如何将派生类列表映射到 DTO?
- reactjs - 蚂蚁设计
带有互斥复选框 - customization - 在 Acumatica 的另一个定制项目中使用一个定制项目中的 DAC
- woocommerce - 在 WooCommerce 中显示基于客户邮政编码的自定义消息
- python - 由于操作系统错误无法初始化设备:无效的 Win32 应用程序