Использование преобразования столбца, производного от потока данных ADF, для вложенных дельта-структур

#azure-data-factory-2 #azure-databricks

#azure-data-factory-2 #azure-databricks

Вопрос:

Я пытаюсь использовать преобразование производных столбцов в потоке данных ADF (Gen 2), где я использовал дельта-таблицу с вложенными структурами. Я борюсь с синтаксисом, необходимым для выравнивания этих структур, и информация о столбцах не отображается, несмотря на то, что я могу просматривать данные.

Такая структура будет:

 {
  "ContactId":"1002657",
  "Name":{
     "FirstName":"Donna",
     "FullName":"Donna Brittain",
     "LastName":"Brittain"
   }
}
  

Предварительный просмотр данных работает нормально:
Предварительный просмотр данных

Структура моей дельта-таблицы: структура дельта-таблицы

Ошибка, которую я получаю, пытаясь сослаться на вложенный столбец: задача производного столбца

Как я могу ссылаться на вложенный столбец, такой как Name.FirstName, чтобы сгладить его до FirstName и почему он не отображается ни в одном из сопоставлений?

Ответ №1:

Существует простой способ сгладить вложенные структуры. Во-первых, мы можем использовать операцию копирования в ADF, это автоматизирует выравнивание вложенного столбца.
Скопируйте данные в хранилище Azure, например в data Lake (здесь я использовал Azure Data Lake Storage Gen 2), затем мы можем использовать его в качестве источника данных в потоке данных.

  1. Мы можем создать файл txt или csv с заголовками в озере данных.

введите описание изображения здесь

  1. Затем мы можем определить действие копирования в ADF и установить сопоставление.

введите описание изображения здесь

  1. После запуска debug мы можем увидеть результат. Мы можем использовать его в качестве источника данных в потоке данных.

введите описание изображения здесь

Обновление: в приемнике мы можем установить значение Max rows per file параметра следующим образом:

введите описание изображения здесь

ADF разделит файл на несколько файлов

введите описание изображения здесь

Комментарии:

1. Я не думаю, что это сработает. Если у меня есть миллиард строк в моей дельта-структурированной сжатой таблице, и я затем записываю ее в формат txt / csv с целью ее выравнивания, все пойдет не так хорошо: (

2. Мы можем разделить его на несколько файлов формата txt / csv. Пожалуйста, просмотрите мой обновленный ответ.