Azure 数据工厂中的数据协调

问题描述 投票:0回答:1

我是

ADF
的新手。 我的要求是我需要协调(比较)两个数据集之间的数据 -
Azure SQL
表和
HTTP API
(外部)。

我正在考虑使用

ADF Data Flows
来添加上述两个源,但是
HTTP
不支持作为
Data Flows
中的源(由于某些限制,无法使用
REST
连接器)。

我认为的解决方法是将 API 数据加载到某些

Blob storage/ADLS
,然后将其用作
Data Flows
中的源。

上述解决方法可以吗?或者任何其他方式来协调两个数据集,这可能是

ADF

azure-data-factory azure-mapping-data-flow reconciliation
1个回答
0
投票

我认为的解决方法是将 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;;

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.