开发者社区 > 大数据与机器学习 > 大数据计算 MaxCompute > 正文

DataWorks中JSON数组拆分多条 从MongoDB迁移至MaxCompute?

DataWorks中JSON数组拆分多条 从MongoDB迁移至MaxCompute?

展开
收起
真的很搞笑 2023-10-10 18:23:18 162 0
4 条回答
写回答
取消 提交回答
  • 在DataWorks控制台中,选择要迁移数据的MongoDB数据源。
    在MongoDB数据源页面中,选择“数据开发”选项卡。
    在数据开发页面中,选择“JSON数据集”选项卡。
    在JSON数据集页面中,选择要迁移的JSON文件,并设置文件的字段映射关系。

    2023-10-13 16:52:52
    赞同 展开评论 打赏
  • 阿里云DataWorks提供了JSON数组拆分多条从MongoDB迁移至MaxCompute的功能。您可以在MongoDB中使用JSON操作符,如regex、regex、match、$substr等,将JSON数据进行拆分,并将拆分后的数据写入MaxCompute中。同时,您也可以使用DataWorks的数据质量检查功能,检查数据的质量,并在数据出现错误时及时进行处理。

    2023-10-13 15:31:23
    赞同 展开评论 打赏
  • 登录DataWorks控制台。在DataWorks上创建目标表。用以接收从MongoDB迁移的数据。右键单击已创建的业务流程,选择新建 > MaxCompute > 表。在新建表页面,选择引擎类型并输入表名。在表的编辑页面,单击DDL模式。在DDL模式对话框,输入建表语句,单击生成表结构。create table mqdata (MQ data string);单击提交到生产环境。新增MongoDB数据源,详情请参见配置MongoDB数据源。创建离线同步节点。进入数据开发页面,右键单击指定业务流程,选择新建 > 数据集成 > 离线同步。在新建节点对话框中,输入节点名称,并单击提交。在顶部菜单栏上,单击image.png
    图标。在脚本模式下,单击顶部菜单栏上的image.png
    图标。在导入模板对话框中选择来源类型、数据源、目标类型及数据源,并单击确定。输入如下脚本。{"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交流群(答疑@机器人)”

    2023-10-11 09:40:13
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在DataWorks中,可以通过以下步骤将MongoDB中的JSON数组拆分多条,从MongoDB迁移至MaxCompute:

    1. 在DataWorks控制台中,点击“数据开发”进入数据开发页面。
    2. 在数据开发页面中,点击“创建数据开发任务”按钮,进入任务创建页面。
    3. 在任务创建页面中,填写任务名称、任务描述等信息,然后选择“MongoDB Reader”作为任务类型。
    4. 在任务配置页面中,填写MongoDB的连接信息,然后点击“保存”按钮。
    5. 在MongoDB Reader任务的输出配置页面中,选择“MaxCompute Writer”作为输出类型。
    6. 在MaxCompute Writer任务的配置页面中,填写MaxCompute的连接信息,然后点击“保存”按钮。
    7. 在MaxCompute Writer任务的SQL配置页面中,编写将JSON数组拆分多条的SQL语句,例如:
    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是拆分后的元素。

    1. 在任务列表页面中,可以看到创建的任务。
    2023-10-10 22:25:49
    赞同 展开评论 打赏

MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。

相关产品

  • 云原生大数据计算服务 MaxCompute
  • 相关电子书

    更多
    Data as a Service - 数据即服务 -- MongoDB⾼级应⽤模式 立即下载
    阿里云MongoDB云服务构建 立即下载
    饿了么高级架构师陈东明:MongoDB是如何逐步提高可靠性的 立即下载