azure - 如何使用数据流在 blob 存储中获取 JSON 数组
问题描述
我在数据工厂中使用 Azure 数据流。我有一个 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 中的数组。请帮助解决这个问题。
解决方案
您必须将其输出为数组而不是结构。使用没有分组依据的聚合器并使用语法收集所有行(收集函数) - collect(@(FirstName = FirstName, Lastname = LastName.....))。
在这里,您将获得一组结构。您可以将其写入 JSON 接收器。