天天看点

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}
{x_1,x_2,x_3}
{x_5}

DataWorks百问百答历史记录

请点击这里查看>>

更多DataWorks技术和产品信息,欢迎加入

【DataWorks钉钉交流群】