开发者社区 > 大数据与机器学习 > 大数据开发治理DataWorks > 正文

DataWorks中 我mongo 里面的数据结构式 我用 array 但是 parcels 里?

DataWorks中 我mongo 里面的数据结构式
{
_id: objectid("xxxxx"),
parcels: [
{
ref: object("xxxxx")
},
{
ref: object("xxxxx")
}
]
}
我用 array 但是 parcels 里面 的 ref 还是 不能变成string 而是变成 {date: xxxx, counter: xxxx} 的格式?

展开
收起
真的很搞笑 2023-07-31 10:37:38 63 0
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    如果您在DataWorks中使用MongoDB作为数据源,且数据中包含数组类型的字段,那么在同步数据时,可以使用DataWorks中的“分层抽取”功能,将数组类型的字段拆分成多个记录进行处理。具体来说,可以将数组类型的字段拆分成多个子字段,并在目标数据源中使用“分区表”等方式存储数据。

    例如,假设您的MongoDB数据源中包含一个名为“parcels”的文档,其中包含一个数组类型的字段“items”,可以使用以下方式将数组类型的字段拆分成多个记录进行处理:

    在数据集成任务中添加MongoDB数据源和ODPS数据目的地。

    在数据集成任务中添加“分层抽取”节点,并设置分层抽取规则。在规则中,可以将“items”字段拆分成多个子字段,并使用“分区表”等方式存储数据。

    在数据集成任务中添加数据同步节点,并将“分层抽取”节点的输出作为输入。在同步节点中,可以对数据进行加工处理,并将数据写入到ODP

    2023-07-31 23:50:48
    赞同 展开评论 打赏
  • 在DataWorks中,如果您从MongoDB同步数据到其他目标数据库时,想要将嵌套的对象数组转换为字符串形式,可以使用DataWorks的数据转换功能来实现。

    以下是一种可能的解决方案:

    1. 创建数据同步任务:在DataWorks中创建MongoDB到目标数据库的数据同步任务。

    2. 配置源数据源:选择MongoDB作为数据源,并配置正确的连接信息。

    3. 配置目标数据源:选择目标数据库,并配置与目标数据库的连接信息。

    4. 配置字段映射:在数据同步任务的字段映射设置中,将parcels.ref字段映射到目标数据库中的一个目标字段。

    5. 使用函数进行转换:在字段映射设置中,使用DataWorks提供的内置函数或自定义函数,将parcels.ref字段的值转换为所需的字符串格式。例如,可以使用字符串拼接函数将parcels.ref中的datecounter字段值拼接成一个字符串,然后将其映射到目标字段。

    6. 完成其他配置:根据需要配置其他的同步规则、过滤条件等。

    通过以上步骤,您可以在DataWorks中将MongoDB中的嵌套对象数组转换为字符串形式,并将其同步到目标数据库中。请注意,在具体的操作过程中,可能需要根据数据结构和逻辑进行细微调整。

    同时,建议查阅DataWorks的文档、教程或咨询阿里云技术支持,获取更详细的指导和帮助。

    阿里云DataWorks文档:https://help.aliyun.com/product/45325.html

    2023-07-31 11:45:05
    赞同 展开评论 打赏
  • 是的 这个是符合预期的 写入string的格式是长这个样子 如果期望提出具体的值可以在mc对数据再进行二次处理image.png
    ,此回答整理自钉群“DataWorks交流群(答疑@机器人)”

    2023-07-31 10:46:04
    赞同 展开评论 打赏

DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。

相关产品

  • 大数据开发治理平台 DataWorks
  • 相关电子书

    更多
    DataWorks数据集成实时同步最佳实践(含内测邀请)-2020飞天大数据平台实战应用第一季 立即下载
    DataWorks商业化资源组省钱秘籍-2020飞天大数据平台实战应用第一季 立即下载
    基于DataWorks数据服务构建疫情大屏-2020飞天大数据平台实战应用第一季 立即下载

    相关实验场景

    更多