Копирование данных из BLOB-объекта в SQL через фабрику данных Azure

У меня есть два примера файлов в blob, как sample1.csv и sample2.csv, как показано ниже.

образец данных

Имя таблицы SQL sample2, с именем столбца, идентификатором, фамилией, суммой

Создан поток ADF без схемы, он выглядит следующим образом

данные предварительного просмотра

исходные настройки позволяют проверять отклонение схемы. В настройках приемника включено автоматическое сопоставление. Разрешить вставку отмечен. таблица действие нет.

Я также попытался установить схему определения в наборе данных, ее результат такой же.

любая помощь здесь?

мой ожидаемый результат: данные в sample1 будут вставлены null в столбец «фамилия»


person Awo Ningan    schedule 10.06.2020    source источник
comment
Привет, Аво Нинган! Если мой ответ полезен для вас, не могли бы вы принять его как ответ (щелкните галочку рядом с ответом, чтобы переключить его с серого на заполненный)? Это может быть полезно для других членов сообщества. Спасибо.   -  person Leon Yue    schedule 24.06.2020


Ответы (2)


Если я правильно понимаю, вы сказали: «Моим ожидаемым результатом будет то, что данные в sample1 будут вставлены null в столбец last name», вам нужно только добавить производный столбец в файл sample1.csv.

Вы можете следовать моим шагам:

  1. Я создаю файл sample1.csv в хранилище BLOB-объектов и таблицу sample2 в своей базе данных SQL: введите описание изображения здесь  введите описание изображения здесь

  2. Использование DerivedColumn для создания нового столбца last name со значением null:

выражение: toString(null())  введите описание изображения здесь

  1. Настройки приемника:  введите описание изображения здесь

  2. Запустите конвейер и проверьте данные в таблице:  введите описание изображения здесь

Надеюсь это поможет.

person Leon Yue    schedule 15.06.2020
comment
thz Леон, это будет работать только тогда, когда источник - из одного файла, и это не сработает, если источник содержит оба файла, поскольку у меня есть несколько файлов в контейнере больших двоичных объектов. - person Awo Ningan; 15.06.2020
comment
@AwoNingan Мы не можем скопировать несколько файлов с разной схемой в одну таблицу Sink. Исходная схема должна иметь такую ​​же схему с приемником. - person Leon Yue; 15.06.2020
comment
@AwoNingan Даже в потоке данных мы можем использовать Активное соединение только для получения данных / схемы из двух исходных наборов данных, а затем создать новый DerivedColumn для изменения схемы и данных. - person Leon Yue; 15.06.2020
comment
thz, это означает, что мне нужно разделить источник в соответствии с разницей в схеме. - person Awo Ningan; 16.06.2020
comment
@AwoNingan Да, это так. Если мой ответ полезен для вас, не могли бы вы принять его как ответ (щелкните галочку рядом с ответом, чтобы переключить его с серого на заполненный). Это может быть полезно для других членов сообщества. Спасибо. - person Leon Yue; 17.06.2020
comment
Привет @AwoNingan, у вас есть еще вопросы? Буду рада Вам помочь. - person Leon Yue; 18.06.2020

Вы не можете смешивать схемы из одного источника при выполнении одного и того же потока данных.

Schema Drift будет обрабатывать изменения схемы для каждого выполнения.

Но если вы читаете несколько разных схем из папки, вы получите недетерминированные результаты.

Вместо этого, если вы последовательно просматриваете эти файлы в конвейере ForEach один за другим, поток данных сможет обрабатывать развивающуюся схему.

person Mark Kromer MSFT    schedule 10.06.2020
comment
спасибо, даже подумал, что исправил схему в источнике с 4 столбцами, она все еще не работает. кажется, что он отображал данные в соответствии с порядком столбцов, а не именами столбцов. Я отключил смещение столбцов и автоматическое сопоставление, результаты те же - person Awo Ningan; 11.06.2020
comment
Очистите схему в источнике, не используйте здесь установленную схему - person Mark Kromer MSFT; 11.06.2020
comment
я сделал, он возвращает тот же результат, независимо от того, есть ли у меня схема исправления в источнике или оставлю ее пустой. любая идея? - person Awo Ningan; 15.06.2020