从 RisingWave 导出数据到 StarRocks
本文描述了如何将数据从 RisingWave 导出到 StarRocks。
StarRocks 是一个开源的大规模并行处理(MPP)数据库。有关如何开始使用 StarRocks 的详细信息,请参见快速开始指南。
StarRocks 流式加载(Stream Load)不支持 struct
和 json
类型。
开始之前
在从 RisingWave 导出数据到 StarRocks 之前,请确保满足以下条件:
- 可以从 RisingWave 访问您想要导出到的目标 StarRocks 数据库。
- 确保您有一个可以从中导出数据的上游物化视图或 Source。
句法
CREATE SINK [ IF NOT EXISTS ] sink_name
[FROM sink_from | AS select_query]
WITH (
connector='starrocks',
connector_parameter = 'value', ...
);
参数
除非另有说明,否则所有参数都是必填的。
参数名称 | 描述 |
---|---|
starrocks.host | StarRocks 主机地址。 |
starrocks.mysqlport | 用于连接前端的 MySQL 客户端的地址。默认为 9030 。 |
starrocks.httpport | 用于数据导入的 http 端口。默认为 8030 。 |
starrocks.user | 用于访问 StarRocks 数据库的用户名。 |
starrocks.password | 与用户关联的密码。 |
starrocks.database | 目标表位于的 StarRocks 数据库 |
starrocks.table | 您想要导出数据到的 StarRocks 表。 |
type | 数据格式。允许的格式:
|
force_append_only | 如果为 true ,即使不能做到也会强制 Sink 为 append-only 。 |
primary_key | 如果 type 为 upsert ,则必填。下游表的主键。 |
示例
假设我们有一个物化视图,bhv_mv
。
CREATE SINK bhv_starrocks_sink
FROM bhv_mv WITH (
connector = 'starrocks',
type = 'append-only',
starrocks.host = 'starrocks-fe',
starrocks.mysqlport = '9030',
starrocks.httpport = '8030',
starrocks.user = 'users',
starrocks.password = '123456',
starrocks.database = 'demo',
starrocks.table = 'demo_bhv_table',
force_append_only='true'
);
数据类型映射
以下表格显示了在创建 Sink 时应指定的对应 RisingWave 数据类型。有关 RisingWave 原生数据类型的详细信息,请参见数据类型概览。
StarRocks 类型 | RisingWave 类型 |
---|---|
BOOLEAN | BOOLEAN |
SMALLINT | SMALLINT |
INT | INTEGER |
BIGINT | BIGINT |
FLOAT | REAL |
DOUBLE | DOUBLE |
DECIMAL | DECIMAL |
DATE | DATE |
VARCHAR | VARCHAR |
不支持 | TIME |
DATETIME | TIMESTAMP WITHOUT TIME ZONE |
不支持 | TIMESTAMP WITH TIME ZONE(可以在 RisingWave 中转换为 timestamp 后导入到 StarRocks) |
不支持 | INTERVAL |
不支持 | STRUCT |
ARRAY | ARRAY |
不支持 | BYTEA |
不支持 | JSONB |
BIGINT | SERIAL |