从 RisingWave 导出数据到 NATS
本文介绍如何使用 RisingWave 中的 NATS Sink 连接器将数据导出到 NATS Subject。
NATS 是一个为云原生应用设计的开源消息系统。它提供了一个轻量级的发布-订阅架构,用于高性能消息传递。
测试版功能
RisingWave 中的 NATS Sink 连接器目前处于测试版。如果您遇到任何问题或有任何反馈,请联系我们。
开始之前
在从 RisingWave 导出数据到 NATS 之前,请确保以下条件已满足:
- RisingWave 集群正在运行。
- NATS 服务器正在运行,并且可以从您的 RisingWave 集群访问。
- 创建一个目标 NATS Subject。
- 您有权限向 NATS Subject 发布数据。
句法
要从 RisingWave 导出数据到 NATS Subject,请使用以下句法创建一个 Sink:
CREATE SINK [ IF NOT EXISTS ] sink_name
[FROM sink_from | AS select_query]
WITH (
connector='nats',
server_url='<your nats server>:<port>', [ <another_server_url_if_available>, ...]
subject='<your subject>',
-- 可选参数
connect_mode=<connect_mode>
username='<your user name>',
password='<your password>'
jwt=`<your jwt>`,
nkey=`<your nkey>`
)
FORMAT PLAIN ENCODE JSON;
创建 Sink 后,RisingWave 将持续以 Append-only 模式将数据导出到 NATS Subject。
note
RisingWave 中的 NATS Sink 连接器提供至少一次交付语义。在失败的情况下,事件可能会被重新发送。
note
根据 NATS 文档,流的名称必须遵循 Subject 命名规则,并且对文件系统友好。这里是流名称的推荐指南:
- 使用字母数字值。
- 避免使用空格、制表符、句点(
.
)、大于符号(>
)或星号(*
)。 - 不包含路径分隔符(正斜杠或反斜杠)。
- 将名称长度限制在 32 个字符以内,因为 JetStream 存储目录包括账户、流名称和消费者名称。
- 避免使用保留的文件名,如
NUL
或LPT1
。 - 注意文件系统中的大小写敏感性。为防止冲突,请确保流或账户名称由于大小写差异而不会发生冲突。例如,
Foo
和foo
在 Windows 或 macOS 系统上会发生冲突。
参数
字段 | 备注 |
---|---|
server_url | 必填。NATS 服务器的 URL,格式为 address:port。如果指定了多个地址,请用逗号分隔。 |
subject | 必填。目标 NATS Subject。 |
connect_mode | 必填。连接的认证模式。允许的值有:plain :无认证;user_and_password :使用用户名和密码进行认证。选择此选项时,必须指定 username 和 password ;credential :使用 JSON Web Token (JWT) 和 NKeys 进行认证。选择此选项时,必须指定 jwt 和 nkey 。 |
jwt 、 nkey | JWT 和 NKEY 用于认证。详情见 JWT 和 NKeys。 |
username 和 password | 客户端的用户名和密码。当 connect_mode 为 user_and_password 时为必填项。 |