对 BigQuery 表进行分区和聚簇

通过为 BigQuery 目标配置分区和聚簇,您可以优化查询性能并控制费用。通过分区和聚簇,您可以减少 BigQuery 在查询执行期间需要扫描的数据量。

表分区

表分区功能可将您的表分成多个区段(称为分区),从而更轻松地管理和查询数据。通过指定用于将表分段的分区列来对表进行分区。

Datastream 支持 BigQuery 表的三种分区类型:

  • 按提取时间进行分区:您可以根据 Datastream 将数据提取到 BigQuery 中的时间对表进行分区。您可以为提取时间分区选择每小时、每天、每月或每年的时间粒度。默认粒度为“每天”。

  • 按时间单位进行分区:您可以根据源列的数据类型对表进行分区,该数据类型由 Datastream 映射到以下某个 BigQuery 数据类型:DATEDATETIMETIMESTAMP。 如需了解 Datastream 如何将源数据类型映射到 BigQuery 数据类型,请参阅 BigQuery 中的数据类型映射

    根据源列映射到的 BigQuery 数据类型,您可以选择以下粒度类型之一:

    • DAYMONTHYEAR:适用于 DATE 数据类型。
    • HOURDAYMONTHYEAR:适用于 DATETIMETIMESTAMP 数据类型。

  • 按整数范围分区:您可以按���据���列对表进行分区,Datastream ������会将该列的数据类型映射到 BigQuery INTEGER 数据类型。您需要提供以下信息:

    • 起始值:第一个分区范围(含)的起始值。
    • 结束值:最后一个分区范围的结束值(不含)。
    • 间隔值:每个分区范围的宽度。

    如需了解详情,请参阅整数范围分区

如需了解如何为数据流配置分区,请参阅配置有关数据流的来源数据库的信息

表聚簇

聚簇会根据聚簇列中的值对表中的数据进行排序,并将具有相似值的数据共置。按聚簇列过滤的查询只会扫描相关数据块,而不是整个表或表分区。这有助于提高查询性能并降低查询费用。

您最多可以按四个列对 BigQuery 表进行聚簇。您指定列的顺序决定了数据的排序顺序。

您可以基于数据类型的源列对表进行聚类,Datastream 会将该数据类型映射到以下某个 BigQuery 数据类型:

  • BIGNUMERIC
  • BOOLEAN
  • DATE
  • DATETIME
  • GEOGRAPHY
  • INT64
  • NUMERIC
  • RANGE
  • STRING
  • TIMESTAMP

如需了解 Datastream 如何将源数据类型映射到 BigQuery 数据类型,请参阅 BigQuery 中的数据类型映射

如需了解如何为数据流配置聚类,请参阅配置有关数据流的来源数据库的信息

限制

  • 如需了解 BigQuery 中的分区限制,请参阅分区表简介

  • 如需了解 BigQuery 中的聚簇限制,请参阅聚簇表简介

  • 如需了解适用于 BigQuery 分区表的配额限制,请参阅配额和限制

  • 此外,使用 Datastream 时,还存在以下限制:

    • 只有在 Datastream 创建新的 BigQuery 表时,才会应用分区和聚簇。如果您想为已存在的表配置或修改分区和聚类设置,请先从 BigQuery 中删除该表,然后在 Datastream 中配置或修改其���置。
    • 对于 MongoDB 来源,您只能按提取时间对表进行分区。
    • MongoDB 数据库不支持聚簇。

后续步骤