使用 Datastream 将数据注入 BigQuery 中的分区表

您可能需要将 BigQuery 表分区为较小的片段,以提高查询性能并控制费用。由于 Datastream 不支持在 BigQuery 中对表进行分区,因此您需要先手动添加分区,然后才能启动数据流。有关分区的一般信息 请参阅分区表 BigQuery

BigQuery 中的分区表

如需在 BigQuery 中对表进行分区,请使用下述选项之一 ,具体取决于您的应用场景。

选项 1:表已在 BigQuery 中存在,并包含在数据流中

  1. 从数据流的来源配置中排除该表。如需详细了解如何在源配置中包含和排除对象,请参阅配置源数据库
  2. 等待几分钟,确保 Datastream 已完成处理表的所有事件。
  3. 在 BigQuery 中创建分区表。 如果您想保留原始 BigQuery 中已有的数据 请为该表提供其他临时名称。
  4. 将数据从原始表复制到新分区表。
  5. 删除或重命名原始表。
  6. 将新表的临时名称更改为原始表的名称。
  7. 将源表添加到数据流的配置中。

方法 2:BigQuery 中不存在此表

  1. 使用以下任一方法在 BigQuery 中创建表:

    • 使用 BigQuery Migration Toolkit
    • 手动创建与 Datastream 兼容的 BigQuery 表。例如,如果您想创建表并基于 TIMESTAMP 列对数据进行分区,可以使用类似于以下内容的查询:

      CREATE TABLE dataset.partitioned_table (
      'id' INT64,
      'name' STRING
      'update_date' DATETIME,
      'datastream_metadata' STRUCT<'uuid' STRING, 'source_timestamp' INT64>,
      PRIMARY KEY ('id') NOT ENFORCED
      )
      PARTITION BY TIMESTAMP(update_date)
      
  2. 创建分区表后,请确保其 max_staleness 值 根据您的要求进行设置如果未设置该值,则使用默认值 已设置 0 的值。如需了解详情,请参阅使用 BigQuery 表 使用 max_staleness 选项。

  3. 将源表添加到数据流配置中

  4. (可选)如果您已为数据流设置手动回填,请为表启动回填。