通过 Azure 数据工厂中的数据流将嵌套 JSON 对象映射到 SQL 表

问题描述 投票:0回答:1

我有一个 JSON 对象,其中包含一个没有键的嵌套数组。我想从这个嵌套数组中提取所有元素,将每个元素分配给具有适当名称的单独列,并将数据放入 SQL 表中。目标是为每个“name”和“display_name”对生成一条记录。

下面是输入的 JSON 对象。

{
"took": 573,
"_revision": "8ac1368",
"response": {
    "accounts": {
        "hits": [{
                "name": "Nilesh",
                "display_name": "Nilesh",
                "selected_fields": [
                    "Class",
                    null,
                    10,
                    "Physics",
                    17,
                    14,
                    "Rohit"
                ]
            },
            {
                "name": "Ronak",
                "display_name": "Ronak",
                "selected_fields": [
                    "Class",
                    null,
                    10,
                    "Chemistry",
                    18,
                    14,
                    "Rahul"
                ]
            },
            {
                "name": "Puneet",
                "display_name": "Puneet",
                "selected_fields": [
                    "Class",
                    null,
                    10,
                    "Mathematics",
                    13,
                    15,
                    "Priyam"
                ]
            },
            {
                "name": "Sanyam",
                "display_name": "Sanyam",
                "selected_fields": [
                    "Class",
                    null,
                    10,
                    "English",
                    14,
                    15,
                    "Priyanshu"
                ]
            }
        ],
        "stats": {},
        "total_hits": 5811
    }
},
"service_id": "25163",
"_type": "status",
"_version": 1,
"status": "success"

}

下面是我正在寻找的输出: enter image description here

我正在数据流中尝试以下方法: enter image description here

我被困在这一点上,并努力将行数据扩展到列(参见上面的输出屏幕截图)。我正在寻找有关后续步骤的指导。

json azure mapping azure-data-factory google-cloud-dataflow
1个回答
0
投票

要根据输出展平数组数据,您需要在 ADF 数据流中进行以下设置。

  • 采用源旁边的展平变换。将展开依据和展开根值指定为
    response.accounts.hits[]
    数组。
  • 然后仅映射以下三列。
name = response.accounts.hits.name,
Display_name = response.accounts.hits.display_name,
response = response.accounts.hits.selected_fields

  • 然后采用导出的列转换将每个数组元素转换为新列。
identify = response[1],
{Blood group} = response[2],
Standard = response[3],
Subject = response[4],
{Roll no} = response[5],
Age = response[6],
{Class Teacher} = response[7]

  • 然后进行选择转换并从中取消选择响应数组。 选择转换的输出:
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.