Skip to main content

从 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 存储目录包括账户、流名称和消费者名称。
  • 避免使用保留的文件名,如 NULLPT1
  • 注意文件系统中的大小写敏感性。为防止冲突,请确保流或账户名称由于大小写差异而不会发生冲突。例如,Foofoo 在 Windows 或 macOS 系统上会发生冲突。

参数

字段备注
server_url必填。NATS 服务器的 URL,格式为 address:port。如果指定了多个地址,请用逗号分隔。
subject必填。目标 NATS Subject。
connect_mode必填。连接的认证模式。允许的值有:plain:无认证;user_and_password:使用用户名和密码进行认证。选择此选项时,必须指定 usernamepasswordcredential:使用 JSON Web Token (JWT) 和 NKeys 进行认证。选择此选项时,必须指定 jwtnkey
jwtnkeyJWT 和 NKEY 用于认证。详情见 JWTNKeys
usernamepassword客户端的用户名和密码。当 connect_modeuser_and_password 时为必填项。