我们正在尝试将 Business Central API 数据增量加载到 ADF 中的 Azure SQL 数据库。 ADF 似乎只允许您将 API 数据复制到目标源,但是当您尝试查找、过滤或隔离任何传入的 API 数据时,什么也不会发生...在这种情况下,我尝试通过水印表增量复制和现有的装载日期。如果代码错误,它会纠正你,但当它*正确时,它仍然只是加载整个 API 表,并且不会交互/过滤它。我不明白为什么会发生这种情况(微软BS)。我能够成功地与水印表或来自 SQL 源的数据进行交互,这是它唯一不喜欢的 BC API 传入数据。这使得构建此 ETL 变得不可能。
复制活动,对于每个活动,查找不会过滤 BC API 传入数据集
您可以像下面一样增量复制到目标表。
首先使用复制活动将 API 数据复制到 SQL 中的临时表。然后,使用查找活动来获取增量日期。查找活动后,使用复制活动,将临时 SQL 表作为源,将目标表作为目标。
在复制活动源查询中,使用以下查询过滤掉增量数据。
select * from table1 where mydate>'@{activity('Lookup1').output.value[0].date}'
稍后,您可以使用最近的时间戳更新查找表。这样,每次管道运行时,新数据都会被过滤并复制到目标表。
(或) 您可以使用以 API 为源的数据流。在数据流活动之前,对增量日期表进行查找,并使用数据流参数将日期传递到数据流。在数据流中,使用数据流参数的过滤器转换并过滤掉新数据。
然后,将目标 SQL 表作为数据流的接收器。