JSON数据从MongoDB迁移到MaxCompute最佳实践

摘要: 本文为您介绍如何利用dataworks数据集成直接从mongodb提取json字段到maxcompute。
数据及账号准备首先您需要将数据上传至您的mongodb数据库。本例中使用阿里云的云数据库 mongodb 版,网络类型为vpc(需申请公网地址,否则无法与dataworks默认资源组互通),测试数据如下。
{    store: {        book: [             {                category: reference,                author: nigel rees,                title: sayings of the century,                price: 8.95             },             {                category: fiction,                author: evelyn waugh,                title: sword of honour,                price: 12.99             },             {                 category: fiction,                 author: j. r. r. tolkien,                 title: the lord of the rings,                 isbn: 0-395-19395-8,                 price: 22.99             }          ],          bicycle: {              color: red,              price: 19.95          }    },    expensive: 10}登录mongodb的dms控制台,本例中使用的数据库为 admin,集合为 userlog,您可以在查询窗口使用db.userlog.find().limit(10)命令查看已上传好的数据,如下图所示。
此外,需提前在数据库内新建用户,用于dataworks添加数据源。本例中使用命令db.createuser({user:bookuser,pwd:123456,roles:[root]}),新建用户名为 bookuser,密码为 123456,权限为root。
使用dataworks提取数据到maxcompute新增mongodb数据源
进入dataworks数据集成控制台,新增mongodb类型数据源。
具体参数如下所示,测试数据源连通性通过即可点击完成。由于本文中mongodb处于vpc环境下,因此 数据源类型需选择 有公网ip。
访问地址及端口号可通过在mongodb管理控制台点击实例名称获取,如下图所示。
新建数据同步任务
在dataworks上新建数据同步类型节点。
新建的同时,在dataworks新建一个建表任务,用于存放json数据,本例中新建表名为mqdata。
表参数可以通过图形化界面完成。本例中mqdata表仅有一列,类型为string,列名为mq data。
完成上述新建后,您可以在图形化界面进行数据同步任务参数的初步配置,如下图所示。选择目标数据源名称为odps_first,选择目标表为刚建立的mqdata。数据来源类型为mongodb,选择我们刚创建的数据源mongodb_userlog。完成上述配置后, 点击转换为脚本,跳转到脚本模式。
脚本模式代码示例如下。
{    type: job,    steps: [        {            steptype: mongodb,            parameter: {                datasource: mongodb_userlog, //数据源名称                column: [                    {                        name: store.bicycle.color, //json字段路径,本例中提取color值                        type: document.document.string //本栏目的字段数需和name一致。假如您选取的json字段为一级字段,如本例中的expensive,则直接填写string即可。                    }                ],                collectionname //集合名称: userlog            },            name: reader,            category: reader        },        {            steptype: odps,            parameter: {                partition: ,                iscompress: false,                truncate: true,                datasource: odps_first,                column: [     //maxcompute表列名                 mqdata                ],                emptyasnull: false,                table: mqdata            },            name: writer,            category: writer        }    ],    version: 2.0,    order: {        hops: [            {                from: reader,                to: writer            }        ]    },    setting: {        errorlimit: {            record:         },        speed: {            concurrent: 2,            throttle: false,            dmu: 1        }    }}完成上述配置后,点击运行接即可。运行成功日志示例如下所示。
结果验证在您的业务流程中新建一个odps sql节点。
您可以输入 select * from mqdata;语句,查看当前mqdata表中数据。当然这一步您也可以直接在maxcompute客户端中输入命令运行。

“四化”环境之下的5G与WiFi究竟有何区别
激光雷达鼻祖Velodyne放弃中国市场
解析小间距LED屏在远程医疗领域的主要优势
pcb8层板层叠结构
使用NANOEDGE.AI工具完成人体姿态识别应用
JSON数据从MongoDB迁移到MaxCompute最佳实践
国内5G手机规模不断扩大,5G手机逐渐成为主流
能当蓝牙耳机用的华为手环
智慧医疗的发展前景如何
电磁感应产生感应电流的条件
利用捷变收发器来简化SDR平台设计复杂度并提高实际运算效能
造芯有“虎”赵伟国,推芯有“狼”柯荣城,国产半导体产业必然崛起!
电力电容器鼓包不严重还能继续用吗?
正弦和修正逆变器的区别
2019年安防行业将迎来新一轮的发展契机
全屋智能构建未来智能生活图景,拥抱HarmonyOS是顺势而为
英特尔14代酷睿处理器曝光:主频可达6.0GHz,预计10月发布
什么是usb phy?
面向ROS开发者的NVIDIA AI Perception
华为数字化转型实践体现在哪些方面