Azure Stream Analytics — запись в таблицу Delta Lake

Delta Lake — это открытый формат, который обеспечивает надежность, качество и производительность озера данных. Azure Stream Analytics позволяет напрямую записывать потоковые данные в таблицы разностного озера без написания одной строки кода.

Задание stream analytics можно настроить для записи с помощью собственного соединителя выходных данных delta lake в новую или предварительно созданную таблицу Delta в учетной записи Azure Data Lake Storage 2-го поколения. Этот соединитель оптимизирован для приема высокоскоростных таблиц в разностных таблицах в режиме добавления, а также обеспечивает точно один раз семантику, которая гарантирует, что данные не будут потеряны или дублируются. Прием потоков данных в режиме реального времени из Центры событий Azure в разностные таблицы позволяет выполнять нерегламентную интерактивную или пакетную аналитику.

Конфигурация Delta Lake

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

Имя свойства Description
Формат сериализации событий Формат сериализации для выходных данных. Поддерживаются JSON, CSV, AVRO, Parquet. Delta Lake указан здесь как вариант. Данные отображаются в формате Parquet, если выбран Delta Lake.
Имя разностного пути Путь, используемый для записи таблицы delta lake в указанном контейнере. Он содержит имя таблицы. Дополнительные сведения см. в следующем разделе.
Столбец секционирования Необязательно. Имя {field} из выходных данных в секционирование. Поддерживается только один столбец секции. Значение столбца должно иметь тип строки

Полный список конфигурации ADLS 2-го поколения см. в обзоре ALDS 2-го поколения.

Имя разностного пути

Имя разностного пути используется для указания расположения и имени таблицы Delta Lake, хранящейся в Azure Data Lake Storage 2-го поколения.

Можно использовать один или несколько сегментов пути, чтобы определить путь к разностной таблице и имени разностной таблицы. Сегмент пути — это строка между последовательными символами разделителя (например, косой чертой /), соответствующей имени виртуального каталога.

Имя сегмента является буквенно-цифровым и может включать пробелы, дефисы и символы подчеркивания. Последний сегмент пути используется в качестве имени таблицы.

Ограничения на имя Delta Path включают следующие:

  • Имена полей нечувствительны к регистру. Например, служба не может различать столбцы ID и id.
  • Динамическое имя {field} не разрешено. Например, {ID} обрабатывается как текст {ID}.
  • Число сегментов пути, составляющих имя, не может превышать 254.

Примеры

Примеры имени пути Delta:

  • Пример 1. WestUS/CA/factory1/device-table
  • Пример 2. Тестирование и демонстрация
  • Пример 3: mytable

Выходные файлы примера:

  1. В выбранном контейнере путь к каталогу будет иметь имя WestEurope/CA/factory1 папки разностной таблицы.
  2. В выбранном контейнере путь к каталогу будет и Test имя папки разностной таблицы будет демонстрацией.
  3. В выбранном контейнере имя папки разностной таблицы будет mytable.

Создание новой таблицы

Если таблица Delta Lake еще не имеет того имени и в расположении, заданном именем Delta Path, по умолчанию Azure Stream Analytics создает новую разностную таблицу. Эта новая таблица создается со следующей конфигурацией:

Запись в таблицу

Если таблица Delta Lake уже существует с тем же именем и в расположении, указанном именем Delta Path, по умолчанию Azure Stream Analytics записывает новые записи в существующую таблицу.

Точно один раз доставка

Журнал транзакций позволяет Delta Lake гарантировать точно после обработки. Azure Stream Analytics также предоставляет точно один раз при выводе данных в Azure Data Lake Storage 2-го поколения во время выполнения одного задания.

Принудительное применение схем

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

Все записи выходных данных проецируются в схему существующей таблицы. Если выходные данные записываются в новую разностную таблицу, схема таблицы создается с первой записью. Если входящие данные имеют один дополнительный столбец по сравнению с существующей схемой таблицы, он записывается в таблицу без дополнительного столбца. Если входящие данные отсутствуют в одном столбце по сравнению с существующей схемой таблицы, она записывается в таблицу со значением NULL.

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

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

Точки проверка разностного журнала

Задание Stream Analytics периодически создает точки delta Log проверка points в формате V1. Точки разностного журнала проверка — это моментальные снимки разностной таблицы и обычно содержат имя файла данных, созданного заданием Stream Analytics. Если количество файлов данных большое, это приводит к большим проверка точкам, что может привести к проблемам с памятью в задании Stream Analytics.

Ограничения

  • Динамический ключ секции (указание имени столбца схемы записи в Delta Path) не поддерживается.
  • Несколько столбцов секционирования не поддерживаются. Если требуется несколько столбцов секционирования, рекомендуется использовать составной ключ в запросе, а затем указать его в качестве столбца секционирования.
    • Составной ключ можно создать в запросе, например SELECT concat (col1, col2) AS compositeColumn INTO [blobOutput] FROM [input].
  • Запись в Delta Lake добавляется только.
  • Схема проверка в тестировании запросов недоступна.
  • Небольшое сжатие файлов не выполняется Stream Analytics.
  • Все файлы данных создаются без сжатия.
  • Типы даты и десятичного разряда не поддерживаются.
  • Запись в существующие таблицы записи версии 7 или выше с помощью функций записи завершается ошибкой.
  • Когда задание Stream Analytics записывает пакет данных в Delta Lake, оно может создать несколько действий добавления файлов. Если для одного пакета создано слишком много действий добавления файлов, задание Stream Analytics может быть зависло.
    • Количество создаваемых действий добавления файлов определяется многими факторами:
    • Чтобы уменьшить количество действий добавления файлов, созданных для пакета, можно выполнить следующие действия.
      • Уменьшение конфигураций пакетной обработки минимальных строк и максимальное время
      • Уменьшите карта инальность значений столбца секционирования, переключив входные данные или выбрав другой столбец секции
  • Задания Stream Analytics могут считывать и записывать только одну часть контрольных точек версии 1. Многокомпонентные проверка точки и формат контрольных точек версии 2 не поддерживаются.

Следующие шаги