Общие сведения о непрерывном экспорте данных

В этой статье описывается непрерывный экспорт данных из Kusto во внешнюю таблицу с периодически выполняемым запросом. Результаты хранятся во внешней таблице, которая определяет назначение, например Хранилище BLOB-объектов Azure, и схему экспортированных данных. Этот процесс гарантирует, что все записи экспортируются "ровно один раз", за некоторыми исключениями. По умолчанию непрерывный экспорт выполняется в распределенном режиме, где все узлы экспортируются одновременно, поэтому количество артефактов зависит от количества узлов в кластере. Непрерывный экспорт не предназначен для потоковой передачи данных из кластера с низкой задержкой.

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

В некоторых случаях для успешной настройки задания непрерывного экспорта необходимо использовать управляемое удостоверение. Дополнительные сведения см. в статье Использование управляемого удостоверения для выполнения задания непрерывного экспорта.

Разрешения

Для всех команд непрерывного экспорта требуются по крайней мере разрешения Администратор базы данных.

Рекомендации по непрерывному экспорту

  • Схема выходных данных:

    • Выходная схема запроса на экспорт должна соответствовать схеме внешней таблицы, в которую выполняется экспорт.
  • Частота:

    • Непрерывный экспорт выполняется в соответствии с периодом времени, настроенным для него в свойстве intervalBetweenRuns . Рекомендуемое значение для этого интервала составляет не менее нескольких минут в зависимости от задержки, которую вы готовы принять. Интервал времени может составлять всего одну минуту, если скорость приема высока.

      Примечание

      Служит intervalBetweenRuns только рекомендацией и не гарантируется, что он будет точным. Непрерывный экспорт не подходит для экспорта периодических агрегатов. Например, конфигурация intervalBetweenRuns=1h с почасовой агрегацией (T | summarize by bin(Timestamp, 1h)) не будет работать должным образом, так как непрерывный экспорт не будет выполняться точно в час. Таким образом, каждая почасовая ячейка будет получать несколько записей в экспортированных данных.

  • Количество файлов:

    • Количество файлов, экспортированных в каждой непрерывной итерации экспорта, зависит от того, как секционируется внешняя таблица. Дополнительные сведения см. в статье Экспорт во внешнюю таблицу. Каждая непрерывная итерация экспорта всегда выполняет запись в новые файлы и никогда не добавляется к существующим. В результате количество экспортированных файлов также зависит от частоты выполнения непрерывного экспорта. Параметр frequency имеет значение intervalBetweenRuns.
  • Учетные записи хранения внешних таблиц:

    • Для оптимальной производительности кластер и учетные записи хранения должны располагаться в одном регионе Azure.
    • Непрерывный экспорт работает распределенно, так что все узлы в кластере экспортируются одновременно. В крупных кластерах, и если экспортируемый том данных большой, это может привести к регулированию хранилища. Рекомендуется настроить несколько учетных записей хранения для внешней таблицы. Дополнительные сведения см. в статье Сбои хранилища во время выполнения команд экспорта .

Ровно один раз экспорта

Чтобы гарантировать экспорт "ровно один раз", непрерывный экспорт использует курсоры базы данных. Запрос непрерывного экспорта не должен содержать фильтр меток времени. Механизм курсоров базы данных гарантирует, что записи не обрабатываются более одного раза. Добавление фильтра меток времени в запрос может привести к отсутствовать в экспортированных данных.

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

Гарантия экспорта "ровно один раз" предоставляется только для файлов, указанных в команде show exported artifacts. Непрерывный экспорт не гарантирует, что каждая запись будет записана во внешнюю таблицу только один раз. Если ошибка возникает после начала экспорта и некоторые артефакты уже записаны во внешнюю таблицу, внешняя таблица может содержать дубликаты. Если операция записи была прервана до завершения, внешняя таблица может содержать поврежденные файлы. В таких случаях артефакты не удаляются из внешней таблицы, но не будут отображаться в команде show exported artifacts. Использование экспортированных файлов с использованием show exported artifacts command гарантирует отсутствие дубликатов и повреждений.

Экспорт из таблиц фактов и измерений

По умолчанию все таблицы, на которые ссылается запрос на экспорт, считаются таблицами фактов. Таким образом, они ограничены курсором базы данных. Синтаксис явно объявляет, какие таблицы имеют область действия (факт), а какие — не являются областями (измерение). Дополнительные сведения см. в описании параметра over в команде Create.

Запрос на экспорт включает только записи, присоединенные с момента предыдущего выполнения экспорта. Запрос на экспорт может содержать таблицы измерений , в которых все записи таблицы измерений включаются во все запросы на экспорт. При использовании соединений между таблицами фактов и измерений при непрерывном экспорте следует помнить, что записи в таблице фактов обрабатываются только один раз. Если экспорт выполняется, когда записи в таблицах измерений отсутствуют для некоторых ключей, записи для соответствующих ключей либо будут пропущены, либо будут содержать значения NULL для столбцов измерения в экспортированных файлах. Возврат пропущенных или пустых записей зависит от того, используется ли в запросе внутреннее или внешнее соединение. Свойство forcedLatency в определении непрерывного экспорта может быть полезно в таких случаях, когда таблицы фактов и измерений приема данных в одно и то же время для сопоставления записей.

Примечание

Непрерывный экспорт только таблиц измерений не поддерживается. Запрос на экспорт должен включать по крайней мере одну таблицу фактов.

Мониторинг непрерывного экспорта

Отслеживайте работоспособность заданий непрерывного экспорта с помощью следующих метрик экспорта:

  • Continuous export max lateness — Максимальная задержка (в минутах) непрерывного экспорта в кластере. Это время между этим и минимальным ExportedTo временем всех непрерывных заданий экспорта в кластере. Дополнительные сведения см. в разделе .show continuous export Command.
  • Continuous export result — Результат успешного или неудачного выполнения каждого непрерывного экспорта. Эту метрику можно разделить по имени непрерывного экспорта.

Используйте команду , .show continuous export failures чтобы просмотреть конкретные сбои задания непрерывного экспорта.

Предупреждение

Если непрерывный экспорт завершается сбоем в течение более 7 дней из-за постоянного сбоя, этот экспорт будет автоматически отключен системой. К постоянным ошибкам относятся: внешняя таблица не найдена, несоответствие между схемой запроса непрерывного экспорта и схемой внешней таблицы, учетная запись хранения недоступна. После исправления ошибки можно повторно включить непрерывный экспорт с помощью .enable continuous export команды .

Потребление ресурсов

  • Влияние непрерывного экспорта на кластер зависит от запроса, выполняемого непрерывным экспортом. Большинство ресурсов, таких как ЦП и память, используются при выполнении запроса.
  • Количество операций экспорта, которые могут выполняться одновременно, ограничено емкостью экспорта данных кластера. Дополнительные сведения см. в разделе Регулирование команд управления. Если кластер не имеет достаточной емкости для обработки всех непрерывных операций экспорта, некоторые из них начнут отставать.
  • Команда show commands-and-queries может использоваться для оценки потребления ресурсов.
    • | where ClientActivityId startswith "RunContinuousExports" Выполните фильтрацию, чтобы просмотреть команды и запросы, связанные с непрерывным экспортом.

Экспорт исторических данных

Непрерывный экспорт начинает экспорт данных только с момента их создания. Записи, которые были загружены до этого времени, следует экспортировать отдельно с помощью команды непрестанного экспорта. Исторические данные могут быть слишком большими, чтобы их можно было экспортировать с помощью одной команды экспорта. При необходимости разделите запрос на несколько небольших пакетов.

Чтобы избежать дублирования с данными, экспортируемыми непрерывным экспортом, используйте StartCursor команду show continuous export и экспортирует where cursor_before_or_at только значение курсора. Пример:

.show continuous-export MyExport | project StartCursor
StartCursor
636751928823156645

А затем:

.export async to table ExternalBlob
<| T | where cursor_before_or_at("636751928823156645")

Непрерывный экспорт из таблицы с безопасностью на уровне строк

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

Непрерывный экспорт в разностную таблицу — предварительная версия

Непрерывный экспорт в разностную таблицу в настоящее время находится на этапе предварительной версии.

Важно!

Секционирование разностных таблиц не поддерживается при непрерывном экспорте данных.

Kusto не будет выполнять запись в существующие разностные таблицы, если версия модуля записи разностных протоколов превышает 1.

Чтобы определить непрерывный экспорт в разностную таблицу, выполните следующие действия.

  1. Создайте внешнюю разностную таблицу, как описано в статье Создание и изменение разностных внешних таблиц в службе хранилища Azure.

    Примечание

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

  2. Определите непрерывный экспорт в эту таблицу с помощью команд, описанных в разделе Создание или изменение непрерывного экспорта.

    Важно!

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

Ограничения

Общие

Между базами данных и кластерами:

  • Непрерывный экспорт не поддерживает межкластикционные вызовы.
  • Непрерывный экспорт поддерживает вызовы между базами данных только для таблиц измерений. Все таблицы фактов должны находиться в локальной базе данных. Дополнительные сведения см. в статье Экспорт из таблиц фактов и измерений.
  • Если непрерывный экспорт включает вызовы между базами данных, его необходимо настроить с помощью управляемого удостоверения.

Политики: