摘要: 本文为您介绍如何利用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
华为数字化转型实践体现在哪些方面