首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Azure cosmos Db中的非结构化json文件转换为结构化表格?

如何将Azure cosmos Db中的非结构化json文件转换为结构化表格?
EN

Stack Overflow用户
提问于 2019-04-04 17:42:56
回答 1查看 328关注 0票数 0

我在Azure Cosmos Db (Mongo API)中有一个带有动态模式的json文件。我要读取此文件,将其转换为结构化sql表并存储在Azure SQL数据仓库中。我该如何实现这一点?

我已经尝试使用Copy Activity从Azure data Factory读取此非结构化数据,但ADF似乎无法读取非结构化数据。

来自我的Cosmos DB的样本数据是-

代码语言:javascript
复制
{
    "name" : "Dren",
    "details" : [
        {
            "name" : "Vinod",
            "relation" : "Father",
            "age" : 40,
            "country" : "India",
            "ph1" : "+91-9492918762",
            "ph2" : "+91-8769187451"
        },
        {
            "name" : "Den",
            "relation" : "Brother",
            "age" : 10,
            "country" : "India"
        },
        {
            "name" : "Vinita",
            "relation" : "Mother",
            "age" : 40,
            "country" : "India",
            "ph1" : "+91-9103842782"
        } ]
}

我希望那些值在json文件中不存在的列的值为空值。

EN

回答 1

Stack Overflow用户

发布于 2019-04-29 09:27:17

正如您已经注意到的,data Factory不操作非结构化数据。Relequestual正确地建议需要一个外部数据映射器,因为Azure数据仓库也不提供JSON操作。在Data Factory中有几种方法可以做到这一点。两者都涉及到调用另一个服务来为您处理映射。

1)让管道调用Azure Function来完成这项工作。流水线将无法将数据传入和传出函数-它将需要从Cosmos读取数据,并自行写入Azure DW。在这两者之间,您可以使用编写函数所用的任何语言进行映射。这样做的好处是它们编写起来相当简单,但您的缩放能力将受到您的函数在几分钟内可以处理的数据量的限制。

2)执行进出Azure Data Lake的临时跳跃。你可以将数据复制到存储帐户(有几个选项可以使用data Lake Analytics),调用USQL作业,然后将结果加载到Azure DW中。这样做的缺点是您会向存储帐户添加额外的读/写操作。但是,它确实允许您根据您的音量进行尽可能多的扩展。如果您喜欢的话,它还使用了一种类似SQL的语言。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55512737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档