我是
ADF
的新手。
我的要求是我需要协调(比较)两个数据集之间的数据 - Azure SQL
表和 HTTP API
(外部)。
我正在考虑使用
ADF Data Flows
来添加上述两个源,但是 HTTP
不支持作为 Data Flows
中的源(由于某些限制,无法使用 REST
连接器)。
我认为的解决方法是将 API 数据加载到某些
Blob storage/ADLS
,然后将其用作 Data Flows
中的源。
上述解决方法可以吗?或者任何其他方式来协调两个数据集,这可能是
ADF
?
我认为的解决方法是将 API 数据加载到某些
,然后将其用作Blob storage/ADLS
中的源Data Flows
如果您的 API 数据很大,那么此解决方法可能是实现您的要求的更好选择,因为数据流具有连接和并集转换,您可以将其用于比较。
如果API数据小于5000行,这种情况下您可以尝试以下方法。
首先对源 HTTP JSON 数据集使用 查找活动,然后取消选中 仅第一行选项。
查找活动将以 JSON 数组形式提供数据。现在,使用复制活动,将 SQL 表数据集作为源,将目标作为接收器。在复制活动的来源中,选择查询选项。
openjson()
和 with
将其与您的表连接或合并。
这里是使用
openjson()
连接 SQL 表和 API 数据的示例查询。
declare @json1 nvarchar(max) = N'@{activity('Lookup1').output.value}';
SELECT t.* FROM
OPENJSON (@json1)
WITH (
albumId int '$.albumId' ,
id int '$.id',
title varchar(max) '$.title',
url varchar(max) '$.url',
thumbnailUrl varchar(max) '$.thumbnailUrl'
) t inner join table1 on t.id=table1.id;;