文档首页 > > SQL语法参考> 数据定义语句> 创建输出流> DIS输出流

DIS输出流

分享
更新时间:2020/09/29 GMT+08:00

概述

CS将作业的输出数据写入数据接入服务(DIS)中。适用于将数据过滤后导入DIS通道,进行后续处理的场景。

数据接入服务(Data Ingestion Service,简称DIS)为处理或分析流数据的自定义应用程序构建数据流管道,主要解决云服务外的数据实时传输到云服务内的问题。数据接入服务每小时可从数十万种数据源(如IoT数据采集、日志和定位追踪事件、网站点击流、社交媒体源等)中连续捕获、传送和存储数TB数据。DIS的更多信息,请参见《数据接入服务用户指南》

语法

语法格式

CREATE SINK STREAM stream_id (attr_name attr_type (',' attr_name attr_type)* )WITH (type = "dis",region = "",channel = "",partition_key = "",encode= "",field_delimiter= "");

语法说明

表1 语法说明

参数

是否必选

说明

type

输出通道类型,dis表示输出到数据接入服务。

region

数据所在的DIS所在区域。

channel

DIS通道。

partition_key

数据输出分组主键,多个主键用逗号分隔。当该参数没有配置的时候则随机派发。

encode

数据编码格式,可选为“csv”“json”“user_defined”

说明:
  • 若编码格式为“csv”,则需配置“field_delimiter”属性。
  • 若编码格式为“json”,则需使用“enable_output_null”来配置是否输出空字段,具体见示例。
  • 若编码格式为“user_defined”,则需配置“encode_class_name”“encode_class_parameter”属性。

field_delimiter

属性分隔符。

  • 当编码格式为csv时,需要设置属性分隔符,用户可以自定义,如:
  • 当编码格式为json时,则不需要设置属性之间的分隔符。

json_config

当编码格式为json时,用户可以通过该参数来指定json字段和流定义字段的映射关系,格式为“field1=data_json.field1; field2=data_json.field2”。

enable_output_null

当编码格式为json时,需使用该参数来配置是否输出空字段。

当该参数为true表示输出空字段(值为null),若为false表示不输出空字段。

encode_class_name

当encode为user_defined时,需配置该参数,指定用户自实现编码类的类名(包含完整包路径),该类需继承类DeserializationSchema。

encode_class_parameter

当encode为user_defined时,可以通过配置该参数指定用户自实现编码类的入参,仅支持一个string类型的参数。

注意事项

无。

示例

  • CSV编码格式:数据输出到DIS通道,使用csv编码,并且以逗号为分隔符,多个分区用car_owner做为key进行分发。数据输出示例:"ZJA710XC", "lilei", "BMW", 700000。
    CREATE SINK STREAM audi_cheaper_than_30w (
      car_id STRING,
      car_owner STRING,
      car_brand STRING,
      car_price INT
    )
    WITH (
      type = "dis",
      region = "cn-north-1" ,
      channel = "csoutput",
      encode = "csv",
      field_delimiter = ","
    ); 
  • JSON编码格式:数据输出到DIS通道,使用json编码,多个分区用car_owner,car_brand 做为key进行分发,“enableOutputNull”“true”表示输出空字段(值为null),若为“false”表示不输出空字段。数据示例:"car_id ":"ZJA710XC", "car_owner ":"lilei", "car_brand ":"BMW", "car_price ":700000。
    CREATE SINK STREAM audi_cheaper_than_30w (
      car_id STRING,
      car_owner STRING,
      car_brand STRING,
      car_price INT
    )
    WITH (
      type = "dis",
      channel = "csoutput",
      region = "cn-north-1" ,
      partition_key = "car_owner,car_brand",
      encode = "json",
      enable_output_null = "false"
    );
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问