我一直在尝试创建一个 ADF 管道,将数据从我们的一个数据库移动到 azure 存储文件夹中 - 但我似乎无法使转换正常工作。
我正在使用复制数据任务,并将源和接收器设置为数据集,并且数据从一个数据集流向另一个数据集,这只是困扰我的格式。
在我们的数据库中,我们有一个包含 JSON 对象的字段,需要将其映射到接收器对象,但没有列名称,它只是基本对象。
我的输出需要如下所示
[
{
"ID": 123,
"Field":"Hello World",
"AnotherField":"Foo"
},
{
"ID": 456,
"Field":"Don't Panic",
"AnotherField":"Bar"
}
]
但是,复制数据任务似乎只接受直接源 -> 接收器映射,并且还将 SQL Server 字段视为 VARCHAR(我认为是这样)。所以结果我把它从另一边拿出来
[
{
"Json": "{\"ID\": 123,\"Field\":\"Hello World\",\"AnotherField\":\"Foo\"}"
},
{
"Json": "{\"ID\": 456,\"Field\":\"Don't Panic\",\"AnotherField\":\"Bar\"}"
}
]
我尝试在源字段上使用内部 @json() 解析函数,但这会导致管道中出现错误。我也无法让接收器直接映射为输出数组内的对象。
我有一种感觉,我不应该使用复制数据,或者复制数据不支持我想要执行的转换级别。有人能让我走上正确的道路吗?
最佳答案
使用 JSON 数据集作为数据流中的源允许您设置五个附加设置。这些设置可以在“源选项”选项卡的 JSON 设置 Accordion 下找到。对于文档格式设置,您可以选择“单个文档”、“每行文档”和“文档数组”类型之一。
选择文档表单作为文档数组。
引用 - https://learn.microsoft.com/en-us/azure/data-factory/format-json
关于json - 数据工厂将数据源复制为接收器对象的主体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71384486/