如何使用数据流在 blob 存储中获取 JSON 数组

时间:2021-02-12 05:45:43

标签: azure azure-data-factory azure-data-factory-2 azure-data-flow

我在数据工厂中使用 Azure Dataflow。 我有一个 Azure SQL 数据库作为源。以下是示例:

Firstname Lastname Age phone      mobile
Don       Bosco    56  34578970   134643455
Abraham   Lincoln  87  56789065   246643556

以下是数据流:

Source -> Sink (JSON Blob storage)

在接收器中,我得到一个文件,输出如下:

{"Firstname": "Don", "Lastname": Bosco, "Age": 56, "contact": [{"number": "34578970", "type": "phone"}, {"number": "134643455", "type": "mobile"}]}
{"Firstname": "Abraham", "Lastname": Lincoln, "Age": 87, "contact": [{"number": "56789065", "type": "phone"}, {"number": "246643556", "type": "mobile"}]}

相反,我需要得到如下输出:

[
    {"Firstname": "Don", "Lastname": Bosco, "Age": 56, "contact": [{"number": "34578970", "type": "phone"}, {"number": "134643455", "type": "mobile"}]},
    {"Firstname": "Abraham", "Lastname": Lincoln, "Age": 87, "contact": [{"number": "56789065", "type": "phone"}, {"number": "246643556", "type": "mobile"}]}
]

我知道如何在复制活动中执行此操作,但找不到任何使用数据流执行此操作的方法。我需要在数据流中执行此操作,因为复制数据活动不支持复杂类型,因此不支持 json 中的数组。 请帮忙解决这个问题。

1 个答案:

答案 0 :(得分:0)

您必须将其输出为数组而不是结构体。使用没有 group by 的聚合器并使用语法收集所有行(收集函数) - collect(@(FirstName = FirstName, Lastname = LastName.....)).

在这里你会得到一个结构数组。您可以将其写入 JSON 接收器。