托管式 I/O 支持 BigQuery 的以下功能:
- 创建动态表
- 动态目标
- 对于读取,连接器使用 BigQuery Storage Read API。
对于写入,连接器使用以下 BigQuery 方法:
- 如果来源是无界限的且 Dataflow 使用的是流式“正好一次”处理,则连接器会使用 BigQuery Storage Write API 以“正好一次”传送语义的方式将数据写入 BigQuery。
- 如果来源是无界限的且 Dataflow 使用的是流式“至少一次”处理,则连接器会使用 BigQuery Storage Write API 以“至少一次”传送语义的方式将数据写入 BigQuery。
- 如果来源是有界限的,则连接器会使用 BigQuery 文件加载。
要求
以下 SDK 支持适用于 BigQuery 的托管式 I/O:
- Java 版 Apache Beam SDK 2.61.0 或更高版本
- Python 版 Apache Beam SDK 2.61.0 版或更高版本
配置
适用于 BigQuery 的托管式 I/O 支持以下配置参数:
BIGQUERY
读取
配置 | 类型 | 说明 |
---|---|---|
kms_key |
str
|
使用此 Cloud KMS 密钥加密数据 |
查询 |
str
|
要执行的 SQL 查询,用于从 BigQuery 表中读取数据。 |
row_restriction |
str
|
仅读取与此过滤条件匹配的行,该过滤条件必须与 Google 标准 SQL 兼容。通过查询读取时不支持此功能。 |
fields |
list[str]
|
仅从 BigQuery 表中读取指定的字段(列)。返回的字段可能不是按指定顺序排列的。如果未指定任何值,则返回所有字段。示例:“col1, col2, col3” |
表格 |
str
|
要从中读取数据的 BigQuery 表的完全限定名称。格式:[${PROJECT}:]${DATASET}.${TABLE} |
BIGQUERY
写入
配置 | 类型 | 说明 |
---|---|---|
表格 |
str
|
要写入的 BigQuery 表。格式:[${PROJECT}:]${DATASET}.${TABLE} |
drop |
list[str]
|
在写入之前要从输入记录中舍弃的字段名称列表。与“keep”和“only”互斥。 |
keep |
list[str]
|
输入记录中要保留的字段名称列表。系统会在写入之前舍弃所有其他字段。与“drop”和“only”互斥。 |
kms_key |
str
|
使用此 Cloud KMS 密钥加密数据 |
only |
str
|
应写入的单个记录字段的名称。与“keep”和“drop”互斥。 |
triggering_frequency_seconds |
int64
|
确定将进度“提交”到 BigQuery 的频率。默认值为每 5 秒一次。 |
后续步骤
如需了解详情和查看代码示例,请参阅以下主题: