带有接收器存储过程的 Azure SQL 数据工厂复制活动

时间:2021-03-10 04:10:09

标签: azure stored-procedures azure-data-factory azure-data-factory-pipeline

我无法解决这个问题,似乎在这个论坛上找不到解决方案。我是 Azure 的新手

我已成功建立了从 Prem SQL Server 到 Azure SQL 的直接 SQL 查询复制活动。 enter image description here

当我继续编辑以包含存储过程时,它失败了。我在 Azure Sql 中创建了如下数据类型和存储过程;

CREATE TYPE [dbo].[Patch] AS TABLE(
    [BaseKey] int,
    [GISKey] [varchar](10),
    [ActiveFrom] datetime
)
DROP PROC IF EXISTS dbo.spCopyPatch
GO
CREATE PROC dbo.spCopyPatch
@Patch dbo.Patch READONLY,
@BaseKey int,
@GISKey varchar(10),
@ActiveFrom datetime
AS
INSERT INTO dbo.Patch( BaseKey,GISKey,ActiveFrom)
VALUES(@BaseKey,@GISKey,@ActiveFrom);
GO

然后我继续编辑复制活动接收器。能够拾取存储过程OK;

enter image description here

但是这在调试时失败了:我做对了还是遗漏了什么?

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

我解决了这个问题并直接从 OnPrem SQL Server 写入 Azure SQL Server。

步骤 1. 使用从 SQL 中提取的数据集更新源。

enter image description here

第 2 步。 将我的存储过程更新为下面以绿色突出显示的内容

enter image description here

第 3 步。 按顺序填充 Sink 并如下所示

enter image description here

调试复制活动,您拥有它

enter image description here

答案 1 :(得分:-1)

通常有两种方法可以根据您看到的逻辑在 ADF 中进行数据转换:

对于 ELT:

  1. 复制活动,其中将数据按原样从源复制到目标,然后使用存储过程活动触发执行所需转换的存储过程。 因此,在您的情况下,您可以在接收器中创建一个表,并通过复制活动将源表映射到接收器表。 然后调用存储过程活动来进行转换

enter image description here

对于 ETL:

  1. 在数据流中,您可以在将数据加载到接收器之前对其进行转换