Как загрузить файлы из BLOB-объекта в sql DW с помощью фабрики данных azure? - PullRequest
0 голосов
/ 28 февраля 2020

Я пробовал так много способов загрузки данных из:

  1. Azure blob в azure sql synapse.

    Мое требование: Описание:

    (Input)Blob storage --->  Azure sql synapse(Output)
                   emp_dummy.csv----> emp_dummy table
                   dept_dummy.csv -----> dept_dummy table
                   sales_dummy.csv-----> sales_dummy table   and so on
    

    ...

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

Когда я пытался выполнить следующее действие, столкнулся с ошибкой: ADF конвейер Ошибка:

{
    "errorCode": "2200",
    "message": "ErrorCode=UserErrorMissingPropertyInPayload,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Required property 'fileName' is missing in payload.,Source=Microsoft.DataTransfer.ClientLibrary,'",
    "failureType": "UserError",
    "target": "Copy data1",
    "details": []
}

Надеюсь, я упомяну все детали, если понадобится еще, дайте мне знать.

Ответы [ 2 ]

0 голосов
/ 04 марта 2020

Я сделал поиск в Google для вас. Я нашел несколько действительно плохих уроков. Две ссылки ниже выглядят чертовски точными.

https://intellipaat.com/blog/azure-data-factory-tutorial/

https://medium.com/@adilsonbna / using- azure -data-lake-to- copy-data-from-csv-file-to-a- sql -database-712c243db658

Помните, что при копировании данных из хранилищ файлов с помощью Azure Data Factory вы теперь можно настроить фильтры файлов с подстановочными знаками, чтобы копировать активность можно только для файлов с определенным шаблоном именования, например «* .csv» или «??? 20180504. json».

Для справки посмотрите на изображение ниже.

enter image description here

Если вы хотите перебрать все файлы в разных папках, в среде BLOB-файлов вместо установки для этого параметра «Файл или папка»:

adfv2/SalesJan2009.csv

Для файла или папки можно установить следующее:

adfv2/Sales*2009.csv

Это объединит все данные о продажах за 2009 год в один фрейм данных, который вы сможете загрузить на SQL Сервер (хранилище данных, Synapse и т. Д. c).

0 голосов
/ 03 марта 2020

Я понял это.

Вот мой пример шагов: загрузить два файла CSV в ADW и автоматически создать таблицу с тем же именем и именем файла CSV.

Csv-файлы в хранилище BLOB-объектов:

enter image description here

Получить все имена файлов в контейнере BLOB-объектов 'backup' :

enter image description here

enter image description here

Настройки элемента Foreach:

@activity('Get Metadata2').output.childItems

enter image description here

Копирование активно в Foreach:

При копировании активно, используя другой источник BLOB-объекта, добавьте параметр в выберите файл: enter image description here enter image description here

Настройки источника:

enter image description here

Набор данных для мойки (ADW): enter image description here enter image description here

Настройки мойки:

enter image description here

выражение имени таблицы: @split(item().name, '.')[0]

Примечание: get метаданные получат полное имя файла, например 'test.csv', когда мы устанавливаем имя таблицы, мы нужно разделить его и установить имя таблицы как «тест».

Выполнить конвейер: enter image description here

Проверить данные в ADW : enter image description here

Хмель Это помогает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...