Интеграция Azure Data Explorer с Фабрикой данных Azure

Фабрика данных Azure (ADF) — это облачная служба интеграции данных, которая позволяет интегрировать разные хранилища данных и выполнять множество действий с данными. ADF позволяет создавать управляемые данными рабочие процессы для оркестрации и автоматизации перемещения и преобразования данных. Azure Data Explorer — это одно из поддерживаемых хранилищ данных в Фабрике данных Azure.

Действия Фабрики данных Azure для Azure Data Explorer

Для пользователей Azure Data Explorer доступны различные интеграции с Фабрикой данных Azure.

Действие копирования

Действие копирования Фабрики данных Azure используется для передачи данных между хранилищами данных. Azure Data Explorer поддерживается как источник, когда данные копируются из Azure Data Explorer в любое поддерживаемое хранилище данных, и как приемник, когда данные копируются из любого поддерживаемого хранилища данных в Azure Data Explorer. Дополнительные сведения см. в статье Копирование данных в Azure Data Explorer или из Azure Data Explorer с помощью Фабрики данных Azure. Подробные пошаговые инструкции см. в статье Загрузка данных из Фабрика данных Azure в Azure Data Explorer. Azure Data Explorer поддерживается Azure IR (среда выполнения интеграции), используемой при копировании данных в Azure, и локальной средой выполнения интеграции, используемой при копировании данных из/в хранилище данных, расположенное локально или в сети с управлением доступом, в виртуальной сети Microsoft Azure. Дополнительные сведения см. в статье , которую следует использовать ir.

Совет

При использовании действия копирования и создании компонента Связанная служба или Набор данных выберите хранилище данных Azure Data Explorer (Kusto) , а не старое хранилище данных Kusto.

Действие Lookup

Действие поиска используется для выполнения запросов в Azure Data Explorer. Результат запроса будет возвращен как результат действия поиска и может быть использован в следующем действии в конвейере, как описано в документации по поиску в ADF.

В дополнение к ограничению размера ответа в 5000 строк и 2 МБ действие также имеет ограничение времени ожидания запроса, равное 1 часу.

Действие команды

Действие Command позволяет выполнять команды управления Data Explorer Azure. В отличие от запросов, команды управления могут потенциально изменять данные или метаданные. Некоторые команды управления предназначены для приема данных в azure Data Explorer с помощью таких команд, как .ingestили .set-or-append) или копирования данных из Azure Data Explorer во внешние хранилища данных с помощью таких команд, как .export. Подробные пошаговые инструкции см. в статье Использование действия Фабрика данных Azure команд для выполнения команд управления Azure Data Explorer. Использование команды управления для копирования данных иногда может быть быстрее и дешевле, чем действие Copy. Чтобы определить, когда использовать действие команды вместо действия копирования, см. раздел Выбор между действием копирования и действием команды при копировании данных.

Массовое копирование из шаблона базы данных

Массовое копирование из базы данных в Azure Data Explorer с использованием шаблона Фабрики данных Azure — это предопределенный конвейер Фабрики данных Azure. Шаблон используется для создания множества конвейеров для каждой базы данных или таблицы для более быстрого копирования данных.

Сопоставление потоков данных

Сопоставление потоков данных Фабрики данных Azure — это визуально разработанные преобразования данных, которые позволяют инженерам данных разрабатывать графическую логику преобразования данных без написания кода. Чтобы создать поток данных и принять данные в Azure Data Explorer, используйте следующий способ.

  1. Создайте поток данных для сопоставления.
  2. Экспортируйте данные в большой двоичный объект Azure.
  3. Определите компонент Сетка событий или Действие копирования ADF для приема данных в Azure Data Explorer.

Выбор между действием копирования и действием команды Azure Data Explorer при копировании данных

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

Для копирования данных из/в Azure Data Explorer в Фабрике данных Azure доступны два варианта.

  • Действие копирования.
  • Действие Azure Data Explorer Command, которое выполняет одну из команд управления, которые передают данные в Azure Data Explorer.

Копирование данных из Azure Data Explorer

Можно копировать данные из Azure Data Explorer с помощью действия копирования или команды .export. Команда .export выполняет запрос, а затем экспортирует результаты запроса.

В следующей таблице показано сравнение действия копирования и команды .export для копирования данных из Azure Data Explorer.

Действие копирования Команда .export
Описание потока ADF выполняет запрос в Kusto, обрабатывает результат и отправляет его в целевое хранилище данных.
(Хранилище данных приемника Azure Data Explorer > ADF>)
ADF отправляет .export команду управления в azure Data Explorer, которая выполняет команду и отправляет данные непосредственно в целевое хранилище данных.
(** Хранилище данных приемника > Azure Data Explorer**)
Поддерживаемые целевые хранилища данных Широкий выбор поддерживаемых хранилищ данных ADLS версии 2, большой двоичный объект Azure, база данных SQL
Производительность Централизованное управление
  • Распределенный (по умолчанию), экспорт данных из нескольких узлов одновременно
  • Повышение эффективности и COGS (стоимости проданных товаров).
Ограничения сервера Ограничения запросов можно расширить/отключить. По умолчанию запросы ADF содержат следующее.
  • Предельный размер 500 000 записей или 64 МБ.
  • Ограничение времени: 10 минут.
  • Для noTruncation задано значение false.
По умолчанию расширяет или отключает ограничения запросов.
  • Ограничения размера отключены.
  • Время ожидания сервера увеличено до 1 часа.
  • MaxMemoryConsumptionPerIterator и MaxMemoryConsumptionPerQueryPerNode расширяются до максимума (5 ГБ, TotalPhysicalMemory/2).

Совет

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

Копирование данных в Azure Data Explorer

Можно копировать данные в Azure Data Explorer с помощью операций копирования или команд приема, таких как прием из запроса (.set-or-append, .set-or-replace, .set, .replace) и прием из хранилища (.ingest).

В следующей таблице сравниваются действия копирования и команды приема для копирования данных в Azure Data Explorer.

Действие копирования Прием из запроса
.set-or-append / .set-or-replace / .set / .replace
Прием из хранилища
.ingest
Описание потока ADF получает данные из исходного хранилища данных, преобразует их в табличный формат и вносит необходимые изменения в схему сопоставления. Затем ADF отправляет данные в большие двоичные объекты Azure, разбивает их на части, а затем загружает большие двоичные объекты, чтобы принять их в таблицу Azure Data Explorer.
(Хранилище исходных данных > Azure BLOB-объекты > Azure azure > Data Explorer)
Эти команды могут выполнять запрос или .show команду и принимать результаты запроса в таблицу (Azure Data Explorer > Azure Data Explorer). Эта команда принимает данные в таблицу, "вытягивая" данные из одного или нескольких артефактов облачного хранилища.
Поддерживаемые исходные хранилища данных множество вариантов ADLS 2-го поколения, BLOB-объекты Azure, SQL (с использованием подключаемого модуля sql_request(), Azure Cosmos DB (с помощью подключаемого модуля cosmosdb_sql_request) и любое другое хранилище данных, предоставляющее API-интерфейсы HTTP или Python. Файловая система, хранилище больших двоичных объектов Azure, ADLS 1-го поколения, ADLS 2-го поколения
Производительность Данные для приема размещаются в очереди и управляются, что обеспечивает небольшие размеры данных для приема и высокую доступность за счет балансировки нагрузки, повторных попыток и обработки ошибок.
  • Эти команды не были предназначены для импорта больших объемов данных.
  • Работа осуществляется в соответствии с ожиданиями и дешевле. Но для производственных сценариев и когда скорость трафика и объемы данных велики, используйте действие копирования.
Ограничения сервера
  • Нет ограничений размера.
  • Максимальное ограничение времени ожидания: один час на каждый прием большого двоичного объекта.
  • Существует только ограничение на размер части запроса, которое можно пропустить, указав noTruncation=true.
  • Максимальное время ожидания: один час.
  • Нет ограничений размера.
  • Максимальное время ожидания: один час.

Совет

  • При копировании данных из ADF в Azure Data Explorer используйте команды ingest from query.
  • Для больших наборов данных (>1 ГБ) используйте действие Copy.

Необходимые разрешения

В следующей таблице перечислены необходимые разрешения для различных этапов интеграции с Фабрикой данных Azure.

Шаг Операция Минимальный уровень разрешений Примечания
Создание связанной службы Навигация по базам данных Читатель базы данных
Пользователь, вошедший в систему, использующий ADF, должен иметь разрешение на чтение метаданных базы данных.
Пользователь может указать имя базы данных вручную.
Проверить подключение монитор базы данных или таблица для приема
Субъект-служба должен быть авторизован для выполнения команд .show уровня базы данных или приема на уровне таблицы.
  • TestConnection проверяет подключение к кластеру, но не к базе данных. Эту возможность можно использовать, даже если база данных не существует.
  • Разрешения администратора таблиц недостаточно.
Создание набора данных Навигация по таблицам монитор базы данных
Пользователь, вошедший в систему, использующий ADF, должен иметь права на выполнение команд .show уровня базы данных.
Пользователь может указать имя таблицы вручную.
Создание набора данных или Действие копирования Просмотр данных Читатель базы данных
Субъект-служба должен иметь права на чтение метаданных базы данных.
Импорт схемы Читатель базы данных
Субъект-служба должен иметь права на чтение метаданных базы данных.
Если Data Explorer Azure является источником табличной копии, ADF автоматически импортирует схему, даже если пользователь не импортирует схему явным образом.
Azure Data Explorer в качестве приемника Создание сопоставления столбцов по имени монитор базы данных
Субъект-служба должен иметь права на выполнение команд .show уровня базы данных.
  • Все обязательные операции работают с табличным ingestorом.
  • Некоторые необязательные операции могут завершаться ошибкой.
  • Создание сопоставления файлов CSV-файла в таблице
  • Удаление сопоставления
таблица приема или администратор базы данных
Субъект-служба должен иметь права на внесений изменений в таблицу.
Прием данных таблица приема или администратор базы данных
Субъект-служба должен иметь права на внесений изменений в таблицу.
Azure Data Explorer в качестве источника Выполнение запроса Читатель базы данных
Субъект-служба должен иметь права на чтение метаданных базы данных.
Команда Kusto Соответствует уровню разрешений каждой команды.

Производительность

Если Azure Data Explorer является источником и используется действие поиска, копирования или команды, содержащее запрос, см. рекомендации по выполнению запросов для получения сведений о производительности и документацию по ADF для получения сведений о действии копирования.

В этом разделе рассматривается использование действия копирования, при выполнении которого Azure Data Explorer является приемником. Расчетная пропускная способность приемника Azure Data Explorer составляет 11–13 Мбит/с. В следующей таблице подробно описаны параметры, влияющие на производительность приемника Azure Data Explorer.

Параметр Примечания
Географическая близость компонентов Расположите все компоненты в одном регионе:
  • источник и хранилища данных приемника.
  • Среда выполнения интеграции ADF.
  • Кластер Azure Data Explorer.
Убедитесь, что хотя бы ваша среда выполнения интеграции находится в том же регионе, что и кластер Azure Data Explorer.
Число DIU Одна виртуальная машина для каждых четырех diu, используемых ADF.
Увеличение diu помогает только в том случае, если источником является файловое хранилище с несколькими файлами. Каждая виртуальная машина будет обрабатывать разные файлы параллельно. Таким образом, копирование одного большого файла имеет более высокую задержку, чем копирование нескольких небольших файлов.
Объем и номер SKU кластера azure Data Explorer Большое количество узлов azure Data Explorer увеличивает время обработки приема. Использование номеров SKU при разработке сильно ограничивает производительность
Parallelism Чтобы скопировать большой объем данных из базы данных, разделите данные, а затем используйте цикл ForEach, который копирует каждую секцию параллельно, или используйте шаблон массового копирования из базы данных в Azure Data Explorer. Примечание. Настройка Параметры>Степень параллелизма в действии копирования не относится к Azure Data Explorer.
Сложность обработки данных Задержка зависит от формата исходного файла, сопоставления столбцов и сжатия.
Виртуальная машина, на которой запущена ваша среда выполнения интеграции
  • Для копии Azure нельзя изменить виртуальные машины Фабрики данных Azure и номера SKU компьютеров.
  • Для копирования из локальной среды в Azure определите, что виртуальная машина, на котором размещена локальная среда IR, достаточно надежна.

Советы и типичные проблемы

Мониторинг хода выполнения действий

  • При мониторинге хода выполнения действия свойство Data записанных данных может быть больше, чем свойство Чтение данных , так как чтение данных вычисляется в соответствии с размером двоичного файла, а записанные данные вычисляются в соответствии с размером в памяти после десериализации и распаковки данных.

  • При выполнении мониторинга ходом выполнения действия можно видеть, что данные записываются в приемник Azure Data Explorer. При запросе таблицы Azure Data Explore вы видите, что данные не получены. Это связано с тем, что копирование в Azure Data Explorer состоит из двух этапов.

    • На первом этапе считываются исходные данные, разбиваются на фрагменты по 900 МБ и каждый фрагмент загружается в большой двоичный объект Azure. Первый этап можно просмотреть в окне хода выполнения действия Фабрики данных Azure.
    • Второй этап начинается после загрузки всех данных в большие двоичные объекты Azure. Узлы кластера загружают большие двоичные объекты и поглотят данные в таблицу приемника. Затем данные отображаются в таблице Azure Data Explorer.

Сбой приема файлов CSV вследствие неправильного экранирования

Azure Data Explorer ожидает, что файлы CSV будут соответствовать RFC 4180. Ожидается следующее.

  • Поля, содержащие символы, требующие экранирования (например, " и новые строки), должны начинаться и заканчиваться символом " без пробелов. Все символы "внутри поля экранируются с использованием двойного символа " ( "" ). Например, "Hello, "World""" — это допустимый файл CSV с единственной записью, содержащей единственный столбец или поле с содержимым Hello, "World" .
  • Все записи в файле должны иметь одинаковое количество столбцов и полей.

Фабрика данных Azure допускает использование обратной косой черты (символ экранирования). Если создать файл CSV с обратной косой чертой с помощью Фабрики данных Azure, загрузка файла в Azure Data Explorer завершится ошибкой.

Пример

Следующие текстовые значения: Hello, "World"
ABC DEF
"ABC\D"EF
"ABC DEF

В правильном CSV-файле должны отображаться следующим образом: "Hello, ""World"""
"ABC DEF"
"""ABC\D""EF"
"""ABC DEF"

При использовании символа экранирования по умолчанию (обратная косая черта) следующий файл CSV не будет работать с Azure Data Explorer: "Hello, "World"".
"ABC DEF"
""ABC\D"EF"
""ABC DEF"

Вложенные объекты JSON

При копировании файла JSON в Azure Data Explorer обратите внимание на следующее.

  • Массивы не поддерживаются.
  • Если структура JSON содержит типы данных объекта, Фабрика данных Azure преобразует в плоскую структуру дочерние элементы объекта и попытается сопоставить каждый дочерний элемент с другим столбцом в таблице Azure Data Explorer. Если требуется, чтобы весь элемент объекта был сопоставлен с одним столбцом в Azure Data Explorer, выполните следующее.
    • Выполните прием всей строки JSON в один динамический столбец в Azure Data Explorer.
    • Вручную отредактируйте определение конвейера с помощью редактора JSON Фабрики данных Azure. В разделе Сопоставления выполните следующее.
      • Удалите несколько сопоставлений, которые были созданы для каждого дочернего элемента, и добавьте одно сопоставление, которое сопоставляет тип вашего объекта со столбцом таблицы.
      • После закрывающей квадратной скобки добавьте запятую, а затем:
        "mapComplexValuesToString": true.

Укажите дополнительные свойства при копировании в Azure Data Explorer

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

Как добавить свойства

  1. В Фабрике данных Azure выберите инструмент Разработка (значок карандаша).

  2. В разделе Конвейер выберите конвейер, в который требуется добавить дополнительные свойства приема.

  3. На холсте Действия выберите действие Копирование данных.

  4. В разделе сведений о действии выберите Приемник и разверните Дополнительные свойства.

  5. Выберите Создать, затем Добавить узел или Добавить массив, после чего укажите имя и значение свойства приема. Повторите это действие, если нужно добавить несколько свойств.

  6. Завершив добавление, сохраните и опубликуйте конвейер.

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