如何解决-Azure DataFactory-复制数据目标表未正确配置

时间:2019-04-12 03:38:06

标签: azure azure-data-factory

我正在使用Data Factory设置SQL Azure复制数据作业。对于我的来源,我正在选择所需的确切数据。对于我的目的地,我选择使用存储过程。我无法从表映射页面继续前进,因为它报告“一个或多个目标表已正确配置”。据我所知。一切看起来不错,因为我可以从SQL手动运行存储过程而没有问题。

我正在寻找有关如何解决此问题的疑难解答建议,因为门户似乎没有提供比错误本身更多的数据。

另一个但无关的问题:与在数据工厂中调用存储过程相比,在数据工厂中执行复制作业有什么好处?

我尝试通过SQL执行存储过程。我发现了一个问题,因为我在TypeTable中有LastUpdatedDate,但实际上它不是输入值。修复之后,我可以执行SP了。

从源中选择数据

SELECT
                p.EmployeeNumber, 
                p.EmailName, 
            FROM PersonFeed AS p

创建表格类型

CREATE TYPE [person].[PersonSummaryType] AS TABLE(
    [EmployeeNumber] [int] NOT NULL,
    [EmailName] [nvarchar](30) NULL
)

创建UserDefined存储过程

CREATE PROCEDURE spOverwritePersonSummary @PersonSummary [person].[PersonSummaryType] READONLY
AS
BEGIN
      MERGE [person].[PersonSummary] [target]
        USING @PersonSummary [source]
        ON [target].EmployeeNumber = [source].EmployeeNumber
        WHEN MATCHED THEN UPDATE SET
            [target].EmployeeNumber = [source].EmployeeNumber,
            [target].EmailName = [source].EmailName,
            [target].LastUpdatedDate = GETUTCDATE()
        WHEN NOT MATCHED THEN INSERT (
            EmployeeNumber, 
            EmailName, 
            LastUpdatedDate)
        VALUES(
            [source].EmployeeNumber, 
            [source].EmailName, 
            GETUTCDATE());
END

在存储过程中设置目标时,数据工厂用户界面报告“已正确配置一个或多个目标表”

1 个答案:

答案 0 :(得分:0)

我相信使用“复制数据”时用户界面已损坏。我能够直接映射到表以创建复制作业,然后手动编辑JSON,一切正常。也许用户界面是新的,这解释了为什么所有支持文档仅只引用json吗?在玩了更多之后,UI似乎将表类型视为schema.type,但是由于某种原因它删除了模式。只需在JSON文件中进行简单的编辑即可对其进行纠正。