在azure数据工厂中执行复制活动时,无法跳过Excel中的一行



我有一个excel列作为复制活动中的源。我需要将列从源映射到接收器(MSSQLServer(。

我有一个限制,每当excel源中有一行空白时,我都应该停止复制活动。

我想复制空白行之前的所有列数据,忽略空白行之后的数据。

例如,如果我有这个数据集:

A B
ABC DEF
HIJ 荷航
NOP QRS

在ADF管道中,处理数据集内容的选项有限(可以添加列、删除列等(,但修改行本身很困难。您可以使用数据流来完成此操作,但由于接收器是mssqlserver,因此您可以使用row_number((查找任何空行,并将这些行保持为空行。

过程是:

  • 创建一个与目标表相同但包含定义为row INT IDENTITY(1,1) NOT NULL的行列的暂存表
  • 截断暂存表
  • 将数据写入临时表
  • 使用插入查询从暂存表写入主表:
SELECT * FROM staging_table 
WHERE rowid < 
(SELECT 
COALESCE(MIN(rowid), (SELECT MAX(rowid)+1 FROM staging_table)) FROM staging_table WHERE a IS NULL)

最新更新