![](/img/trans.png)
[英]How to convert SQL rows to an array of json objects in Azure Data Factory?
[英]How to get an array from JSON in the Azure Data Factory?
我的实际(工作不正常)设置有两个管道:
结果是 SQL 中正确的表数。 只有表格的内容不是我所希望的。 它们都包含 1 个名为 odata.metadata 的列和 1 个条目,即元数据的链接。 如果我从数据湖中的 JSON 中手动删除元数据,然后运行第二个管道,则 SQL 表就是我想要的。
有:
{ "odata.metadata":"https://test.com",
"value":[
{
"Key":"12345",
"Title":"Name",
"Status":"Test"
}]}
想:
[{
"Key":"12345",
"Title":"Name",
"Status":"Test"
}]
我试图在 API 调用中添加 $.['value'] 。 结果是没有 odata.metadata 行,但数组以 {value: 开头,这导致复制到 SQL 时出错
我还尝试使用映射(在接收器中)到 SQL。 这给出了我手动指定映射的数据集的所需结果,但仅适用于数组中具有相同列数的数据集。 我不想手动为 170 个电话做映射...
有谁知道如何在 ADF 中处理这个问题? 现在我觉得唯一的解决方案是在管道中添加一个 Python 步骤,但我希望有一种有点标准的 ADF 方式来做到这一点!
在将数据复制到 SQL 之前,您可以使用扁平格式化程序添加另一个带有数据流的管道以从 JSON 文件中删除内容。
在展平 JSON 文件之前:
这是我在将 JSON 数据复制到 SQL 数据库而不展平时所看到的:
展平 JSON 文件后:
添加了一个带有数据流的管道以flatten
JSON 文件以从数组中删除“odata.metadata”内容。
展平格式化程序:
从输入数组中选择值对象后,您只能在 Flatten 格式化程序预览中看到 value 下的值。
水槽预览:
将生成的文件作为输入复制到 SQL。
注意:如果您的输入文件架构不是恒定的,您可以启用Allow schema drift
以允许架构更改
参考: 映射数据流中的模式漂移
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.