DataWorks百问百答64:数据集成如何同步Mongodb不同数据类型?

mongodb源端原始数据如下(数据无实际场景):
DataWorks百问百答64:数据集成如何同步Mongodb不同数据类型?

  • 同步一层子属性

例1:同步id:
{
"name": "id",
"type": "string"
}
例2:同步services:
{
"name": "services",
"type": "object"
},

  • 同步复杂类型的子属性:

同步services下的子属性optional:
{
"name": "services.optional",
"type": "document.string"
},
注意:array类型无法取到array下的具体数据,需要作为整体同步
          type值需要小写。

  • 多个字段合并成一个json串:

使用MongoDBReader插件读出数据时,支持将MongoDB里document中多个字段合并成一个json串;
举例来说将Mongo中的字段导入到ODPS,有字段如下(下文均省略了value使用key来代替整个字段)的三个document,其中 a b 是所有doc均有的公共字段, x_n是不固定字段:
   doc1:a b x_1 x_2
   doc2:  a b x_2 x_3 x_4
   doc3:  a b x_5
需要一一对应的字段在配置文件里明确指出,需要合并的字段则需另取名称(不可与document中已存在字段同名),并指定类型为 "combine" ,如:
"column": [
{
 "name": "a",
 "type": "string",
},
{
  "name": "b",
  "type": "string",
},
{
    "name": "doc",
"type": "combine",
 }
]
最终导出到ODPS效果为:

odps_column1 odps_column2 odps_column3
a b {x_1,x_2}
a b {x_1,x_2,x_3}
a b {x_5}

DataWorks百问百答历史记录 请点击这里查看>>

更多DataWorks技术和产品信息,欢迎加入【DataWorks钉钉交流群】

上一篇:DataWorks 2020-09 产品月刊


下一篇:DataWorks百问百答67:odps如何同步多个分区(附ODPS写插件指定分区技巧)?