Azure 数据工厂 - 使用 Rest API 的复制任务仅在执行时返回第一行

Posted

技术标签:

【中文标题】Azure 数据工厂 - 使用 Rest API 的复制任务仅在执行时返回第一行【英文标题】:Azure Data Factory - copy task using Rest API is only returning first row upon execution 【发布时间】:2022-01-17 08:31:57 【问题描述】:

我在 ADF 中有一个复制任务,它将数据从 REST API 拉入 Azure SQL 数据库。我已经创建了映射,并拉入了一个集合引用,如下所示:

preview of json data

source

sink

mappings

output

您会注意到在运行复制任务时它只输出 1 行(第一行)。我知道这通常是因为您从嵌套的 JSON 数组中提取,其中集合引用应该解决这个问题以从数组中提取 - 但即使在设置集合之后,我也无法让它提取多条记录.

【问题讨论】:

【参考方案1】:

由于 Azure 数据工厂的设计限制,提取 JSON 数据并插入 Azure SQL 数据库并不是一个好方法。即使在使用“集体参考”之后,您也可能无法获得想要的结果。

推荐的方法是通过复制数据活动将 REST API 的输出作为 JSON 文件存储在 Azure Blob 存储中。然后您可以将该文件用作源并在数据流中进行转换。您还可以使用 Lookup 活动来获取 JSON 数据并调用存储过程将数据存储在 Azure SQL 数据库中(这种方式会更便宜,性能也会更好)。

使用flatten transformation 获取层次结构(如 JSON)中的数组值,并将它们展开为单独的行。此过程称为非规范化。

更多详情请参考third-party tutorial。

【讨论】:

以上是关于Azure 数据工厂 - 使用 Rest API 的复制任务仅在执行时返回第一行的主要内容,如果未能解决你的问题,请参考以下文章

Azure 数据工厂使用 REST Multipart/form-data 上传文件

使用 Rest Api 查询 Azure 表存储

使用 Rest-API 查询 Azure SQL 数据库

如何使用 REST API 创建 Azure 搜索索引器

将嵌套参数传递到 Azure 数据工厂

REST API 调用中的数据工厂动态内容