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 的复制任务仅在执行时返回第一行的主要内容,如果未能解决你的问题,请参考以下文章