更新时间:2022-08-12 GMT+08:00

DDS输出流

功能描述

DLI将作业的输出数据输出到文档数据库服务(DDS)中。

文档数据库服务(Document Database Service,简称DDS)完全兼容MongoDB协议,提供安全、高可用、高可靠、弹性伸缩和易用的数据库服务,同时提供一键部署、弹性扩容、容灾、备份、恢复、监控和告警等功能。DDS的更多信息,请参见《文档数据库服务用户指南》。

前提条件

  • 请务必确保您的账户下已在文档数据库服务(DDS)里创建了DDS实例。

    如何创建DDS实例,请参考《文档数据库服务快速入门》中“快速购买文档数据库实例”章节。

  • 目前仅支持未开启SSL认证的集群实例,不支持副本集与单节点的类型实例。
  • 该场景作业需要运行在DLI的独享队列上,请确保已创建DLI独享队列。
  • 确保DLI独享队列与DDS集群建立跨源连接,且用户可以根据实际所需设置相应安全组规则。

    如何建立增强型跨源连接,请参考《数据湖探索用户指南》“增强型跨源连接”章节。

    如何设置安全组规则,请参见《虚拟私有云用户指南》中“安全组”章节。

语法格式

1
2
3
4
5
6
7
8
CREATE SINK STREAM stream_id (attr_name attr_type (',' attr_name attr_type)* )
  WITH (
    type = "dds",
    username = "",
    password = "",
    db_url = "",
    field_names = ""
  );

关键字

表1 关键字说明

参数

是否必选

说明

type

输出通道类型,dds表示输出到文档数据库服务中。

username

数据库连接用户名。

password

数据库连接密码。

db_url

DDS实例的访问地址,形如:ip1:port,ip2:port/database/collection。

field_names

待插入数据字段的key,具体形式如:"f1,f2,f3",并且保证与sink中数据列一一对应。

batch_insert_data_num

表示一次性批量写入的数据量,值必须为正整数,默认值为10。

示例

将流qualified_cars 的数据输出到文档数据库collectionTest。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
CREATE SINK STREAM qualified_cars (
  car_id STRING,
  car_owner STRING,
  car_age INT,
  average_speed INT,
  total_miles INT
)
  WITH (
    type = "dds",
    region = "xxx",
    db_url = "192.168.0.8:8635,192.168.0.130:8635/dbtest/collectionTest",
    username = "xxxxxxxxxx",
    password =  "xxxxxxxxxx",
    field_names = "car_id,car_owner,car_age,average_speed,total_miles",
    batch_insert_data_num = "10"
  );