DataWorks中JSON数组拆分多条 从MongoDB迁移至MaxCompute?
在DataWorks控制台中,选择要迁移数据的MongoDB数据源。
在MongoDB数据源页面中,选择“数据开发”选项卡。
在数据开发页面中,选择“JSON数据集”选项卡。
在JSON数据集页面中,选择要迁移的JSON文件,并设置文件的字段映射关系。
阿里云DataWorks提供了JSON数组拆分多条从MongoDB迁移至MaxCompute的功能。您可以在MongoDB中使用JSON操作符,如regex、regex、match、$substr等,将JSON数据进行拆分,并将拆分后的数据写入MaxCompute中。同时,您也可以使用DataWorks的数据质量检查功能,检查数据的质量,并在数据出现错误时及时进行处理。
登录DataWorks控制台。在DataWorks上创建目标表。用以接收从MongoDB迁移的数据。右键单击已创建的业务流程,选择新建 > MaxCompute > 表。在新建表页面,选择引擎类型并输入表名。在表的编辑页面,单击DDL模式。在DDL模式对话框,输入建表语句,单击生成表结构。create table mqdata (MQ data string);单击提交到生产环境。新增MongoDB数据源,详情请参见配置MongoDB数据源。创建离线同步节点。进入数据开发页面,右键单击指定业务流程,选择新建 > 数据集成 > 离线同步。在新建节点对话框中,输入节点名称,并单击提交。在顶部菜单栏上,单击
图标。在脚本模式下,单击顶部菜单栏上的
图标。在导入模板对话框中选择来源类型、数据源、目标类型及数据源,并单击确定。输入如下脚本。{"type": "job","steps": [{"stepType": "mongodb","parameter": {"datasource": "mongodb_userlog",//数据源名称。"column": [{"name": "store.bicycle.color", //JSON字段路径,本例中提取color值。"type": "document.String" //非一层子属性以最终获取的类型为准。假如您选取的JSON字段为一级字段,例如本例中的expensive,则直接填写string即可。}],"collectionName": "userlog" //集合名称。},"name": "Reader","category": "reader"},{"stepType": "odps","parameter": {"partition": "","isCompress": false,"truncate": true,"datasource": "odps_first","column": ["mq
https://help.aliyun.com/document_detail/98134.html
,此回答整理自钉群“DataWorks交流群(答疑@机器人)”
在DataWorks中,可以通过以下步骤将MongoDB中的JSON数组拆分多条,从MongoDB迁移至MaxCompute:
SELECT
json_column,
JSON_ARRAY_LENGTH(json_column) as array_length,
JSON_OBJECT(
CONCAT('json_column_element_', JSON_INDEX(json_column, i)),
JSON_OBJECT_VALUE(json_column, i)
) as element
FROM table_name
CROSS JOIN UNNEST(json_column) AS i
其中,json_column是存储JSON数组的字段名称,array_length是数组的长度,element是拆分后的元素。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。