Устранение неполадок - Azure DataFactory - Копирование таблиц назначения данных не было правильно настроено - PullRequest
0 голосов
/ 12 апреля 2019

Я настраиваю задание копирования данных SQL Azure с помощью фабрики данных. Для моего источника я выбираю точные данные, которые я хочу. Для моего назначения я выбираю использовать хранимую процедуру. Я не могу перейти со страницы отображения таблиц, поскольку она сообщает, что «одна или несколько таблиц назначения были правильно настроены» Из того, что я могу сказать. Все выглядит хорошо, так как я могу вручную запустить хранимую процедуру из SQL без проблем.

Я ищу советы по устранению неполадок, связанные с решением этой проблемы, поскольку портал, по-видимому, не предоставляет больше данных, чем сама ошибка.

Дополнительный, но не связанный с этим вопрос: какая польза от того, что я выполняю задание на копирование в фабрике данных по сравнению с тем, что фабрика данных вызывает хранимую процедуру?

Я пытался выполнить хранимую процедуру через SQL. Я обнаружил одну проблему с этим, так как у меня была LastUpdatedDate в TypeTable, но на самом деле это не входное значение. После исправления я могу выполнить SP без проблем.

Выбор данных из источника

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

Создать таблицу Тип

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

Создать пользовательскую хранимую процедуру

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

Datafactory UI при настройке адресата в хранимой процедуре сообщает "одна или несколько таблиц назначения были правильно настроены"

1 Ответ

0 голосов
/ 12 апреля 2019

Я считаю, что пользовательский интерфейс не работает при использовании Копировать данные. Мне удалось сопоставить непосредственно таблицу, чтобы создать задание на копирование, затем вручную отредактировать JSON, и все работало нормально. Возможно, пользовательский интерфейс является новым, и это объясняет, почему все документы поддержки относятся только к json? После игры с этим больше похоже, что пользовательский интерфейс видит тип таблицы как schema.type, но по какой-то причине отбрасывает схему. Простое редактирование в файле JSON исправляет это.

...