Bytehouse CDW Pipeline 连接器可以用作 Pipeline 的 Data Sink,将数据写入 Bytehouse CDW。 本文档介绍如何设置 Bytehouse CDW Pipeline 连接器。
从 MySQL 读取数据同步到 Bytehouse CDW 的 Pipeline 可以定义如下:
################################################################################ # Description: Sync MySQL all tables to BH CDW ################################################################################ source: type: mysql name: MySQL Source hostname: vedbm-xxx.pri.mysql.vedb.ivolces.com port: 3306 username: your-username password: your-password tables: app_db.\.* server-id: 5401-5420 sink: type: bytehouse-cdw name: Bytehouse CDW Sink region: VOLCANO_PRIVATE host: tenant-xxxx-cn-beijing.bytehouse.ivolces.com port: 19000 virtual-warehouse: test api-token: xxx:xxx sink.buffer-flush.interval: 5s sink.buffer-flush.max-rows: 10000 pipeline: name: MySQL to Bytehouse CDW Pipeline parallelism: 4 # 注意作业并发度以该参数为准,Flink 平台参数配置页面的并发度不生效
参数 | 是否必选 | 默认值 | 数据类型 | 描述 |
|---|---|---|---|---|
type | required | (none) | String | 指定要使用的连接器, 这里需要设置成 |
name | optional | (none) | String | Sink 的名称. |
region | optional |
| String | 指定 ByteHouse Gateway 的地域。
|
host | required | (none) | String | ByteHouse 网关的私有主机。前提是将 region 设置为 |
port | optional | 19000 | String | ByteHouse 网关的私有端口。前提是将 region 设置为 |
virtual-warehouse | required | (none) | String | 用于指定计算组的名称。 |
api-token | required | (none) | String | 连接器帐户的 API Token。 |
sink.mode | optional | upsert | String | 选择要接收的数据记录。支持的值包括:
|
sink.buffer-flush.interval | optional | 1s | Duration | 刷新时间间隔,最小值为 200 ms。 |
sink.buffer-flush.max-rows | optional | 50000 | Integer | 缓冲记录大小,最小值为 100。 |
sink.max-retries | optional | 15 | Integer | 最大写入重试次数,设置为 -1 表示无限次重试。 |
jdbc.max-retry-backoff | optional | 32s | Duration | 最大指数回退重试间隔,会从 1s 开始指数递增。默认为 32s,表示从 1s、2s、4s ...,一直递增到 32s 后,保持不变。 |
timestamp-offset | optional | (none) | Duration | TIMESTAMP 类型的附加时间偏移。 |
自动建表默认开启,会自动通过上游 DDL,完成在 Bytehouse CDW 的建表。
当前支持的功能:
注意:对于大表、对查询性能要求严格的表,推荐采用手动建表,并对 Bytehouse 建表参数进行调优,以满足查询和写入性能要求。这是由于自动建表只设置了 unique key 属性,其他属性没有设置,包括 order by、cluster by 等,如果性能严格较高,则推荐手动建表。
此外,支持透传 settings,在建表时提供更多的参数配置,使用方式如下:
需要在 sink option 里添加如下参数:
sink: type: bytehouse-cdw name: Bytehouse CDW Sink ... table.create.settings: enable_bucket_level_unique_keys=1,max_staged_part_rows_per_task=150000000000,storage_dialect_type='MYSQL',cloud_enable_staging_area=true
value 如果有多个配置,则通过逗号分隔。
另外,也可以通过 Transform 算子指定 table options:
transform: - source-table: app_db.orders_full projection: "*" table-options: storage_policy='cnch_default_hdfs',index_granularity=1024 description: auto creating table options example
table-options 的格式是 k1=v1,k2=v2,注意如果 value 是 string,需要用单引号括起来,如果是数字或者 bool 值,则不需要。
Bytehouse CDW 所有 table settings 的文档参见:https://www.volcengine.com/docs/6517/1555178
CDC type | Bytehouse CDW type | NOTE |
|---|---|---|
TINYINT | TINYINT | |
SMALLINT | SMALLINT | |
INT | INT | |
BIGINT | BIGINT | |
FLOAT | FLOAT | |
DOUBLE | DOUBLE | |
DECIMAL(p, s) | DECIMAL(p, s) | |
BOOLEAN | BOOLEAN | |
DATE | DATE | |
TIME | TIME | Bytehouse CDW Connector 目前不支持 TIME 类型写入,预计下个版本支持。 |
TIMESTAMP | DATETIME | |
TIMESTAMP_LTZ | DATETIME | |
CHAR(n) | STRING | |
VARCHAR(n) | STRING | |
STRING | STRING | |
ARRAY | ARRAY | Bytehouse CDW Connector 目前不支持 ARRAY 类型写入,预计下个版本支持。 |