Skip to main content

从 RisingWave 导出数据到 StarRocks

本文描述了如何将数据从 RisingWave 导出到 StarRocks。

StarRocks 是一个开源的大规模并行处理(MPP)数据库。有关如何开始使用 StarRocks 的详细信息,请参见快速开始指南。

StarRocks 流式加载(Stream Load)不支持 structjson 类型。

开始之前

在从 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.hostStarRocks 主机地址。
starrocks.mysqlport用于连接前端的 MySQL 客户端的地址。默认为 9030
starrocks.httpport用于数据导入的 http 端口。默认为 8030
starrocks.user用于访问 StarRocks 数据库的用户名。
starrocks.password与用户关联的密码。
starrocks.database目标表位于的 StarRocks 数据库
starrocks.table您想要导出数据到的 StarRocks 表。
type数据格式。允许的格式:
  • append-only: 以插入操作输出数据。
  • upsert: 作为变更日志流输出数据。在 StarRocks 中,必须选择主键表。
force_append_only如果为 true,即使不能做到也会强制 Sink 为 append-only
primary_key如果 typeupsert,则必填。下游表的主键。

示例

假设我们有一个物化视图,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 类型
BOOLEANBOOLEAN
SMALLINTSMALLINT
INTINTEGER
BIGINTBIGINT
FLOATREAL
DOUBLEDOUBLE
DECIMALDECIMAL
DATEDATE
VARCHARVARCHAR
不支持TIME
DATETIMETIMESTAMP WITHOUT TIME ZONE
不支持TIMESTAMP WITH TIME ZONE(可以在 RisingWave 中转换为 timestamp 后导入到 StarRocks)
不支持INTERVAL
不支持STRUCT
ARRAYARRAY
不支持BYTEA
不支持JSONB
BIGINTSERIAL