您可能需要将 BigQuery 表分区为较小的片段,以提高查询性能并控制费用。由于 Datastream 不支持在 BigQuery 中对表进行分区,因此您需要先手动添加分区,然后才能启动数据流。有关分区的一般信息 请参阅分区表 BigQuery。
BigQuery 中的分区表
如需在 BigQuery 中对表进行分区,请使用下述选项之一 ,具体取决于您的应用场景。
选项 1:表已在 BigQuery 中存在,并包含在数据流中
- 从数据流的来源配置中排除该表。如需详细了解如何在源配置中包含和排除对象,请参阅配置源数据库。
- 等待几分钟,确保 Datastream 已完成处理表的所有事件。
- 在 BigQuery 中创建分区表。 如果您想保留原始 BigQuery 中已有的数据 请为该表提供其他临时名称。
- 将数据从原始表复制到新分区表。
- 删除或重命名原始表。
- 将新表的临时名称更改为原始表的名称。
- 将源表添加到数据流的配置中。
方法 2:BigQuery 中不存在此表
使用以下任一方法在 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)
创建分区表后,请确保其
max_staleness
值 根据您的要求进行设置如果未设置该值,则使用默认值 已设置0
的值。如需了解详情,请参阅使用 BigQuery 表 使用max_staleness
选项。(可选)如果您已为数据流设置手动回填,请为表启动回填。