Загрузка CSV-файла через Polybase без знания последовательности столбцов - PullRequest
0 голосов
/ 07 мая 2020

Я пытаюсь загрузить несколько файлов CSV из Azure Data Lake в Azure Synapse с помощью Polybase. В каждом CSV-файле есть фиксированный набор столбцов, и имена столбцов указаны в первой строке. Однако столбцы могут иметь разную последовательность упорядочения.

В Polybase мне нужно объявить внешнюю таблицу, для которой мне нужно знать точную последовательность столбцов во время разработки, и, следовательно, я не могу создать внешнюю таблицу. Есть ли другие способы загрузить файл CSV?

1 Ответ

1 голос
/ 11 мая 2020

Я не верю, что вы можете сделать это напрямую с помощью Polybase, потому что, как вы заметили, оператор CREATE EXTERNAL TABLE требует объявления столбцов. Во время выполнения данные CSV затем сопоставляются с этими именами столбцов.

Вы можете легко sh это сделать с помощью Azure Фабрики данных и потока данных (который использует Polybase под крышками для перемещения данных в Synapse ), разрешив потоку данных создать таблицу. Это работает, потому что таблица создается после того, как данные были прочитаны, а не раньше, как с EXTERNAL.

Для набора данных приемника создайте его с параметризованным именем таблицы [и, возможно, схемой]: enter image description here

В действии Sink укажите «Recreate table»: enter image description here

Передайте желаемое имя таблицы в набор данных приемника из конвейера: enter image description here

Имейте в виду, что все столбцы на основе строк будут определены как VARCHAR (MAX).

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