Поделиться через


Рекомендации по записи в файлы озера данных с помощью потоков данных

ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure Azure Synapse Analytics

Совет

Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !

Если вы еще не работали с фабрикой данных Azure, ознакомьтесь со статьей Введение в фабрику данных Azure.

В этом учебнике вы узнаете о рекомендациях, которые можно применять при записи файлов в ADLS 2-го поколения или Хранилище BLOB-объектов Azure с помощью потоков данных. Вам потребуется доступ к учетной записи Хранилища BLOB-объектов Azure или учетной записи Azure Data Lake Storage 2-го поколения для чтения PARQUET-файла и последующего сохранения результатов в папках.

Необходимые компоненты

  • Подписка Azure. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
  • Учетная запись хранения Azure. Хранилище ADLS используется в качестве хранилища данных источника и приемника. Если у вас нет учетной записи хранения, создайте ее, следуя действиям в этом разделе.

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

Создание фабрики данных

На этом этапе вы создадите фабрику данных и откроете пользовательский интерфейс службы "Фабрика данных" для создания конвейера в фабрике данных.

  1. Откройте Microsoft Edge или Google Chrome. Сейчас пользовательский интерфейс Фабрики данных поддерживают только браузеры Microsoft Edge и Google Chrome.

  2. В меню слева последовательно выберите элементы Создать ресурс>Интеграция>Фабрика данных.

  3. На странице Новая фабрика данных в поле Имя введите ADFTutorialDataFactory.

  4. Выберите подписку Azure, в рамках которой вы хотите создать фабрику данных.

  5. Для группы ресурсов выполните одно из следующих действий:

    a. Выберите Использовать существующуюи укажите существующую группу ресурсов в раскрывающемся списке.

    b. Выберите Создать и введите имя группы ресурсов. Дополнительные сведения см. в статье об использовании групп ресурсов для управления ресурсами Azure.

  6. В качестве версии выберите V2.

  7. В поле Расположение выберите расположение фабрики данных. В раскрывающемся списке отображаются только поддерживаемые расположения. Хранилища данных (например, служба хранилища Azure и База данных SQL) и вычислительные ресурсы (например, Azure HDInsight), используемые фабрикой данных, могут располагаться в других регионах.

  8. Нажмите кнопку создания.

  9. После завершения создания вы увидите уведомление в центре уведомлений. Нажмите кнопку Перейти к ресурсу, чтобы открыть страницу фабрики данных.

  10. Выберите Создание и мониторинг, чтобы запустить на отдельной вкладке пользовательский интерфейс фабрики данных.

Создание конвейера с помощью действия потока данных

На этом этапе вы создадите конвейер, содержащий действие потока данных.

  1. На домашней странице пользовательского интерфейса Фабрики данных выберите элемент Оркестрация.

    Снимок экрана: домашняя страница фабрики данных с выделенной кнопкой Orchestrate.

  2. На вкладке Общие для конвейера введите DeltaLake в качестве имени конвейера.

  3. На верхней панели фабрики переместите ползунок Data Flow debug (Отладка Потока данных) во включенное положение. Режим отладки позволяет в интерактивном режиме тестировать логику преобразования в динамическом кластере Spark. Подготовка кластеров Потоков данных занимает 5–7 минут, поэтому пользователям рекомендуем сначала включить отладку, если планируется разработка Потока данных. Дополнительные сведения см. в статье Режим отладки.

    Действие

  4. В области Действия разверните меню "гармошка" Move and Transform (Перемещение и преобразование). Перетащите действие Поток данных из области на холст конвейера.

    Снимок экрана: холст конвейера, на который можно перетащить действие Потока данных.

  5. Во всплывающем окне Adding Data Flow (Добавление Потока данных) выберите Create new Data Flow (Создать Поток данных) и присвойте ему имя DeltaLake. По завершении нажмите кнопку Готово .

    Снимок экрана: присваивание имени создаваемому потоку данных.

Встраивание логики преобразования в холст потока данных

Вы получите исходные данные (в этом учебнике мы будем использовать источник PARQUET-файлов) и преобразование приемника для получения данных в формате PARQUET, используя наиболее эффективные механизмы для извлечения, преобразования и загрузки озера данных.

Итоговый поток

Цели руководства

  1. Выбор любого из исходных наборов данных в новом потоке данных. 1. Использование потоков данных для эффективного секционирования набора данных приемника.
  2. Размещение секционированных данных в папки озера данных ADLS 2-го поколения.

Начало работы с пустым холстом потока данных

Сначала давайте настроим среду потока данных для каждого из механизмов, описанных ниже, для размещения данных в ADLS 2-го поколения.

  1. Щелкните преобразование источника .
  2. Нажмите кнопку "Создать" рядом с набором данных в нижней области.
  3. Выберите набор данных или создайте новый. В этой демонстрации мы будем использовать набор данных Parquet с именем User Data.
  4. Добавьте преобразование "Производный столбец". Мы будем использовать его в качестве способа динамического задания имен для нужных папок.
  5. Добавьте преобразование приемника.

Выходные данные иерархической папки

Очень часто используются уникальные значения в данных для создания иерархий папок для секционирования данных в озере данных. Это очень оптимальный способ организации и обработки данных в озере данных и в Spark (модуль вычислений для потоков данных). Тем не менее для упорядочения выходных данных таким образом появятся небольшие потери производительности. При использовании этого механизма в приемнике будет ожидаемое небольшое снижение общей производительности конвейера.

  1. Вернитесь к конструктору потока данных и измените поток данных, созданный выше. Щелкните преобразование приемника.
  2. Щелкните "Оптимизировать > Задать секционирование > Ключ".
  3. Выберите столбцы, которые вы хотите использовать, чтобы задать структуру иерархии папок.
  4. Обратите внимание, что в примере ниже год и месяц используются в качестве столбцов для именования папок. Результатом будут папки вида releaseyear=1990/month=8.
  5. При доступе к секциям данных в источнике потока данных вы будете указывать только на папку верхнего уровня выше releaseyear и использовать шаблон с подстановочными знаками для каждой последующей папки, например **/**/*.parquet.
  6. Для управления значениями данных или даже при необходимости создания искусственных значений для имен папок используйте преобразование "Производный столбец", чтобы создать значения, которые нужно использовать в именах папок.

Секционирование по ключу

Имя папки в качестве значений данных

Немного более эффективным методом приемника для данных озера с использованием ADLS 2-го поколения без такого преимущества, как секционирование по ключу или значению, является Name folder as column data. В то время как стиль секционирования по ключу иерархической структуры позволяет упростить обработку срезов данных, этот метод является преобразованием в плоскую структуру папок, что позволит быстрее записывать данные.

  1. Вернитесь к конструктору потока данных и измените поток данных, созданный выше. Щелкните преобразование приемника.
  2. Щелкните "Оптимизировать > Задать секционирование > Использовать текущее секционирование".
  3. Щелкните "Параметры > Именование папки как данных столбца".
  4. Выберите столбец, который вы хотите использовать для создания имен папок.
  5. Для управления значениями данных или даже при необходимости создания искусственных значений для имен папок используйте преобразование "Производный столбец", чтобы создать значения, которые нужно использовать в именах папок.

Параметр папки

Имя файла в качестве значений данных

Методы, перечисленные выше, являются хорошим вариантом использования при создании категорий папок в озере данных. Схема именования файлов по умолчанию, применяемая этими методами, заключается в использовании идентификатора задания для исполнителя Spark. Иногда может потребоваться задать имя выходного файла в приемнике текста потока данных. Этот метод рекомендуется использовать только с маленькими файлами. Процесс объединения файлов секций в один выходной файл является длительным.

  1. Вернитесь к конструктору потока данных и измените поток данных, созданный выше. Щелкните преобразование приемника.
  2. Щелкните "Оптимизировать > Задать секционирование > Одна секция". Именно это требование одной секции создает узкое место в процессе выполнения при объединении файлов. Рекомендуем использовать этот параметр только для маленьких файлов.
  3. Щелкните "Параметры > Именование файла как данных столбца".
  4. Выберите столбец, который вы хотите использовать для создания имен файлов.
  5. Для управления значениями данных или даже при необходимости создания искусственных значений для имен файлов используйте преобразование "Производный столбец", чтобы создать значения, которые нужно использовать в именах файлов.

Дополнительные сведения о приемниках потока данных.