您可能需要将 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
选项。(可选)如果您已为数据流设置手动回填,请为表启动回填。