通过为 BigQuery 目标配置分区和聚簇,您可以优化查询性能并控制费用。通过分区和聚簇,您可以减少 BigQuery 在查询执行期间需要扫描的数据量。
表分区
表分区功能可将您的表分成多个区段(称为分区),从而更轻松地管理和查询数据。通过指定用于将表分段的分区列来对表进行分区。
Datastream 支持 BigQuery 表的三种分区类型:
按提取时间进行分区:您可以根据 Datastream 将数据提取到 BigQuery 中的时间对表进行分区。您可以为提取时间分区选择每小时、每天、每月或每年的时间粒度。默认粒度为“每天”。
按时间单位进行分区:您可以根据源列的数据类型对表进行分区,该数据类型由 Datastream 映射到以下某个 BigQuery 数据类型:
DATE、DATETIME或TIMESTAMP。 如需了解 Datastream 如何将源数据类型映射到 BigQuery 数据类型,请参阅 BigQuery 中的数据类型映射。根据源列映射到的 BigQuery 数据类型,您可以选择以下粒度类型之一:
DAY、MONTH、YEAR:适用于DATE数据类型。HOUR、DAY、MONTH、YEAR:适用于DATETIME和TIMESTAMP数据类型。
按整数范围分区:您可以按���据���列对表进行分区,Datastream ������会将该列的数据类型映射到 BigQuery
INTEGER数据类型。您需要提供以下信息:- 起始值:第一个分区范围(含)的起始值。
- 结束值:最后一个分区范围的结束值(不含)。
- 间隔值:每个分区范围的宽度。
如需了解详情,请参阅整数范围分区。
如需了解如何为数据流配置分区,请参阅配置有关数据流的来源数据库的信息。
表聚簇
聚簇会根据聚簇列中的值对表中的数据进行排序,并将具有相似值的数据共置。按聚簇列过滤的查询只会扫描相关数据块,而不是整个表或表分区。这有助于提高查询性能并降低查询费用。
您最多可以按四个列对 BigQuery 表进行聚簇。您指定列的顺序决定了数据的排序顺序。
您可以基于数据类型的源列对表进行聚类,Datastream 会将该数据类型映射到以下某个 BigQuery 数据类型:
BIGNUMERICBOOLEANDATEDATETIMEGEOGRAPHYINT64NUMERICRANGESTRINGTIMESTAMP
如需了解 Datastream 如何将源数据类型映射到 BigQuery 数据类型,请参阅 BigQuery 中的数据类型映射。
如需了解如何为数据流配置聚类,请参阅配置有关数据流的来源数据库的信息。
限制
如需了解 BigQuery 中的分区限制,请参阅分区表简介。
如需了解 BigQuery 中的聚簇限制,请参阅聚簇表简介。
如需了解适用于 BigQuery 分区表的配额限制,请参阅配额和限制。
此外,使用 Datastream 时,还存在以下限制:
- 只有在 Datastream 创建新的 BigQuery 表时,才会应用分区和聚簇。如果您想为已存在的表配置或修改分区和聚类设置,请先从 BigQuery 中删除该表,然后在 Datastream 中配置或修改其���置。
- 对于 MongoDB 来源,您只能按提取时间对表进行分区。
- MongoDB 数据库不支持聚簇。
后续步骤
- 如需详细了解 BigQuery 中的分区,请参阅分区表简介和管理分区表。
- 如需详细了解 BigQuery 中的聚簇,请参阅聚簇表简介和管理聚簇表。
- 如需详细了解数据流,请参阅数据流生命周期。
- 如需了解如何创建数据流,请参阅创建数据流。
- 如需详细了解 BigQuery,请参阅 BigQuery 目标平台。