文档首页 > > 常见问题> 转储相关问题>

DIS如何实现转储数据至DWS的特定列

DIS如何实现转储数据至DWS的特定列

分享
更新时间:2021/03/09 GMT+08:00

DIS支持将源数据类型为JSON格式的数据转储至DWS。转储前,需要配置源数据Schema。

源数据Schema,即用户的JSON数据样例,用于描述JSON数据格式。DIS可以根据此JSON数据样例生成Avro schema, 将通道内上传的JSON数据转换为Parquet或CarbonData格式。

  1. 参考创建源数据Schema,创建源数据Schema。如下以添加转储任务时创建源数据Schema为例进行说明。
    1. 选择源数据类型是Json的通道。
    2. 在通道详情页面的“转储任务”页签,单击“添加转储任务”
    3. 转储服务类型选择DWS,通过导入文件的方式配置源数据Schema。
    4. 输入源数据样例,单击“转换源数据样例”并提交,生成源数据Schema。
      图1 创建源数据Schema
  2. 配置Schema属性过滤功能。

    schema过滤功能,只针对源数据schema根节点或一级子节点非array类型,才有效。即管理源数据Schema创建的源数据schema,满足根节点或一级子节点非array类型,界面才呈现此配置。

    1. 打开Schema过滤开关。
    2. 在源数据属性名列表中,勾选对应的属性名,完成DWS表中指定列的映射。

      源数据属性名列表中的属性由源数据Schema的name字段生成,匹配DWS的列名称。

      图2 配置Schema属性
    3. 图2所示,源数据属性名只选择id,即少于对应表的总字段。

      DWS侧创建集群,并执行如下命令创建表。

      CREATE TABLE dis_test3(id TEXT,dev TEXT,online BIGINT,module TEXT default 'a',logTime TEXT,appId TEXT,event TEXT);

    4. DIS侧转储数据至DWS成功后,登录集群数据库查询dis_test3表格数据,可看到仅id列和module列插入数据,其中module列是默认数据。如图3所示。

    图3 Schema属性过滤结果
分享: