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

dataworks mongo文档同步到hive 内嵌的文档数组能拆分到多个hive表里吗?

dataworks mongo文档同步到hive 内嵌的文档数组能拆分到多个hive表里吗?

展开
收起
cuicuicuic 2023-09-30 16:17:12 58 0
1 条回答
写回答
取消 提交回答
  • DataWorks支持从MongoDB同步数据到Hive,但是对于内嵌的文档数组,需要进行一些特殊的配置才能拆分到多个Hive表里。具体的方法如下:

    • 如果想将MongoDB中的数组类型转换为Hive中的数组类型,可以在column中配置type为array或document.array,并指定splitter为分隔符。例如,如果有一个字段为tags,其值为["a","b","c"],可以这样配置:
    {
        "name": "tags",
        "type": "array",
        "splitter": ","
    }
    
    • 如果想将MongoDB中的数组类型转换为Hive中的多个字段,您可以在column中配置type为arrays,并指定index为数组元素的索引。例如,如果有一个字段为tags,其值为["a","b","c"],可以这样配置:
    {
        "name": "tag1",
        "type": "arrays",
        "index": 0
    },
    {
        "name": "tag2",
        "type": "arrays",
        "index": 1
    },
    {
        "name": "tag3",
        "type": "arrays",
        "index": 2
    }
    
    • 如果想将MongoDB中的嵌套文档转换为Hive中的多个字段,可以在column中配置type为document,并指定path为文档属性的路径。例如,如果有一个字段为user,其值为{"name":"Alice","age":20},可以这样配置:
    {
        "name": "user_name",
        "type": "document",
        "path": ["user","name"]
    },
    {
        "name": "user_age",
        "type": "document",
        "path": ["user","age"]
    }
    
    • 如果想将MongoDB中的嵌套文档转换为Hive中的JSON字符串,可以在column中配置type为array.json或document.json,并指定path为文档属性的路径。例如,如果有一个字段为user,其值为{"name":"Alice","age":20},可以这样配置:
    {
        "name": "user_json",
        "type": "document.json",
        "path": ["user"]
    }
    
    2023-10-20 14:24:28
    赞同 1 展开评论 打赏

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

相关产品

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

    更多
    Hive Bucketing in Apache Spark 立即下载
    spark替代HIVE实现ETL作业 立即下载
    2019大数据技术公开课第五季—Hive迁移到MaxCompute最佳实践 立即下载

    相关实验场景

    更多