Общие сведения о непрерывном экспорте данных
Область применения: ✅Microsoft Fabric✅Azure Data Explorer
В этой статье описывается непрерывный экспорт данных из Kusto во внешнюю таблицу с периодическим выполнением запроса. Результаты хранятся во внешней таблице, которая определяет назначение, например Хранилище BLOB-объектов Azure, и схему экспортированных данных. Этот процесс гарантирует, что все записи экспортируются "ровно один раз" с некоторыми исключениями.
По умолчанию непрерывный экспорт выполняется в распределенном режиме, где одновременно экспортируются все узлы, поэтому количество артефактов зависит от количества узлов. Непрерывный экспорт не предназначен для потоковых данных с низкой задержкой.
Чтобы включить непрерывный экспорт данных, создайте внешнюю таблицу и создайте определение непрерывного экспорта, указывающее на внешнюю таблицу.
В некоторых случаях необходимо использовать управляемое удостоверение для успешной настройки задания непрерывного экспорта. Дополнительные сведения см. в статье Об использовании управляемого удостоверения для выполнения задания непрерывного экспорта.
Разрешения
Для всех команд непрерывного экспорта требуются по крайней мере разрешения администратора базы данных.
Рекомендации по непрерывному экспорту
Схема вывода:
- Выходная схема запроса экспорта должна соответствовать схеме внешней таблицы, в которую вы экспортируете.
Частота:
Непрерывный экспорт выполняется в соответствии с периодом времени, настроенным для него в свойстве
intervalBetweenRuns
. Рекомендуемое значение для этого интервала составляет по крайней мере несколько минут в зависимости от задержки, которую вы хотите принять. Интервал времени может быть не более одной минуты, если скорость приема высока.Примечание.
Он
intervalBetweenRuns
служит только рекомендацией и не гарантирует точности. Непрерывный экспорт не подходит для экспорта периодических агрегатов. Например, конфигурацияintervalBetweenRuns
=1h
с почасовой агрегированием (T | summarize by bin(Timestamp, 1h)
) не будет работать должным образом, так как непрерывный экспорт не будет выполняться точно в течение часа. Таким образом, каждая почасовая ячейка получит несколько записей в экспортированных данных.
Количество файлов:
- Количество файлов, экспортированных в каждой итерации непрерывного экспорта, зависит от секционирования внешней таблицы. Дополнительные сведения см. в статье "Экспорт в внешнюю команду таблицы". Каждая итерация непрерывного экспорта всегда записывает новые файлы и никогда не добавляется к существующим. В результате количество экспортированных файлов также зависит от частоты выполнения непрерывного экспорта. Параметр частоты —
intervalBetweenRuns
.
- Количество файлов, экспортированных в каждой итерации непрерывного экспорта, зависит от секционирования внешней таблицы. Дополнительные сведения см. в статье "Экспорт в внешнюю команду таблицы". Каждая итерация непрерывного экспорта всегда записывает новые файлы и никогда не добавляется к существующим. В результате количество экспортированных файлов также зависит от частоты выполнения непрерывного экспорта. Параметр частоты —
Внешние учетные записи хранения таблиц:
- Для повышения производительности база данных и учетные записи хранения должны находиться в одном регионе Azure.
- Непрерывный экспорт работает в распределенном режиме, таким образом, что все узлы экспортируются одновременно. В больших базах данных и если экспортируемый том данных большой, это может привести к регулированию хранилища. Рекомендуется настроить несколько учетных записей хранения для внешней таблицы. Дополнительные сведения см. в разделе сбоях хранилища во времякоманд экспорта.
Ровно один раз экспорт
Чтобы гарантировать "ровно один раз", непрерывный экспорт использует курсоры базы данных. Запрос непрерывного экспорта не должен включать фильтр метки времени — механизм курсоров базы данных гарантирует, что записи не обрабатываются более одного раза. Добавление фильтра метки времени в запросе может привести к отсутствующим данным в экспортированных данных.
Политика IngestionTime должна быть включена во всех таблицах, на которые ссылается запрос, который должен обрабатываться "ровно один раз" в экспорте. Политика включена по умолчанию во всех созданных таблицах.
Гарантия экспорта "ровно один раз" доступна только для файлов, сообщаемых в команде show exported artifacts. Непрерывный экспорт не гарантирует, что каждая запись записывается только один раз во внешнюю таблицу. Если после начала экспорта возникает сбой, а некоторые артефакты уже были записаны во внешнюю таблицу, внешняя таблица может содержать дубликаты. Если операция записи была прервана до завершения, внешняя таблица может содержать поврежденные файлы. В таких случаях артефакты не удаляются из внешней таблицы, но они не сообщаются в показывать экспортированные артефакты. Использование экспортированных файлов с помощью show exported artifacts command
гарантий без дублирования и повреждений.
Экспорт из таблиц фактов и измерений
По умолчанию все таблицы, на которые ссылается запрос экспорта, считаются таблицами фактов. Таким образом, они ограничены курсором базы данных. Синтаксис явно объявляет, какие таблицы ограничены (факт) и которые не ограничены (измерение). Дополнительные сведения см. в описании параметра over
в команде Create.
Запрос экспорта содержит только записи, присоединенные после предыдущего выполнения экспорта. Запрос экспорта может содержать таблицы измерений, в которых все записи таблицы измерений включены во все запросы экспорта. При использовании соединений между таблицами фактов и измерений в непрерывном экспорте следует учитывать, что записи в таблице фактов обрабатываются только один раз. Если экспорт выполняется во время записи в таблицах измерений отсутствуют для некоторых ключей, записи соответствующих ключей либо отсутствуют, либо содержат значения NULL для столбцов измерения в экспортированных файлах. Возврат отсутствующих или пустых записей зависит от того, использует ли запрос внутреннее или внешнее соединение. Свойство forcedLatency
в определении непрерывного экспорта может быть полезно в таких случаях, когда таблицы фактов и измерений обрабатываются в то же время для сопоставления записей.
Примечание.
Непрерывный экспорт только таблиц измерений не поддерживается. Запрос экспорта должен содержать по крайней мере одну таблицу фактов.
Мониторинг непрерывного экспорта
Отслеживайте работоспособность заданий непрерывного экспорта, используя следующие метрики экспорта:
-
Continuous export max lateness
— максимальная задержка (в минутах) непрерывного экспорта в базе данных. Это время между временем до минимальногоExportedTo
времени всех заданий непрерывного экспорта в базе данных. Дополнительные сведения см.show continuous export
. в команде. -
Continuous export result
— Результат успешного или неудачного выполнения каждого непрерывного экспорта. Эта метрика может быть разделена по имени непрерывного экспорта.
.show continuous export failures
Используйте команду, чтобы просмотреть конкретные сбои непрерывного задания экспорта.
Предупреждение
Если непрерывный экспорт завершается сбоем в течение 7 дней из-за постоянного сбоя, экспорт будет автоматически отключен системой.
Постоянные ошибки включают: внешняя таблица не найдена, несоответствие между схемой непрерывного экспорта запросов и схемой внешней таблицы, учетная запись хранения недоступна.
После исправления ошибки можно повторно включить непрерывный экспорт с помощью .enable continuous export
команды.
Потребление ресурсов
- Влияние непрерывного экспорта на базу данных зависит от выполнения запроса непрерывного экспорта. Большинство ресурсов, таких как ЦП и память, используются выполнением запроса.
- Количество операций экспорта, которые могут выполняться параллельно, ограничено емкостью экспорта данных базы данных. Дополнительные сведения см. в разделе "Регулирование команд управления". Если база данных не имеет достаточной емкости для обработки всех непрерывных экспортов, некоторые начинают отстать.
- Команду show commands-and-queries можно использовать для оценки потребления ресурсов.
-
| where ClientActivityId startswith "RunContinuousExports"
Отфильтруйте, чтобы просмотреть команды и запросы, связанные с непрерывным экспортом.
-
Экспорт исторических данных
Непрерывный экспорт начинает экспорт данных только с точки его создания. Записи, которые будут приниматься до этого времени, следует экспортировать отдельно с помощью команды экспорта без непрерывного экспорта. Исторические данные могут быть слишком большими для экспорта в одной команде экспорта. При необходимости разделите запрос на несколько небольших пакетов.
Чтобы избежать повторяющихся данных, экспортированных путем непрерывного экспорта, используйте StartCursor
команду непрерывного экспорта и экспортирует только 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.
Чтобы определить непрерывный экспорт в разностную таблицу, сделайте следующее:
Создайте внешнюю разностную таблицу, как описано в разделе "Создание и изменение разностных внешних таблиц" в служба хранилища Azure.
Примечание.
Если схема не указана, Kusto попытается вывести ее автоматически, если в целевом контейнере хранилища уже определена разностная таблица.
Секционирование разностной таблицы не поддерживается.Определите непрерывный экспорт в эту таблицу с помощью команд, описанных в разделе "Создание или изменение непрерывного экспорта".
Внимание
Схема разностной таблицы должна быть синхронизирована с запросом непрерывного экспорта. Если базовая разностная таблица изменяется, экспорт может начаться сбоем с непредвиденным поведением.
Ограничения
General:
- В целевых таблицах разрешены следующие форматы:
CSV
, ,TSV
JSON
иParquet
. - Непрерывный экспорт не предназначен для работы над материализованных представлений, так как материализованное представление может быть обновлено, а данные, экспортированные в хранилище, всегда добавляются и никогда не обновляются.
- Непрерывный экспорт невозможно создать в базах данных подписчиков так как базы данных подписчиков доступны только для чтения и непрерывного экспорта требуют операций записи.
- Записи в исходной таблице должны быть приема непосредственно в таблицу, с помощью политики обновления или приема из команд запроса. Если записи перемещаются в таблицу с помощью экстентов перемещения или с помощью таблицы переименования, непрерывный экспорт может не обрабатывать эти записи. См. ограничения, описанные на странице "Курсоры базы данных".
- Если артефакты, используемые непрерывным экспортом, предназначены для активации уведомлений сетки событий, см. раздел известных проблем в документации по сетке событий.
Перекрестная база данных и межкластим:
- Непрерывный экспорт не поддерживает вызовы между кластерами.
- Непрерывный экспорт поддерживает вызовы между базами данных только для таблиц измерений. Все таблицы фактов должны находиться в локальной базе данных. Дополнительные сведения см. в статье "Экспорт из таблиц фактов и измерений".
- Если непрерывный экспорт включает вызовы между базами данных, его необходимо настроить с помощью управляемого удостоверения.
Межбазовый и межбазовый хранилище событий:
- Непрерывный экспорт не поддерживает вызовы между событиями.
- Непрерывный экспорт поддерживает вызовы между базами данных только для таблиц измерений. Все таблицы фактов должны находиться в локальной базе данных. Дополнительные сведения см. в статье "Экспорт из таблиц фактов и измерений".
Политики.
- Непрерывный экспорт нельзя включить в таблице с политикой безопасности на уровне строк, если не выполнены определенные условия. Дополнительные сведения см. в статье "Непрерывный экспорт из таблицы с безопасностью на уровне строк".
- Непрерывный экспорт нельзя настроить в таблице с политикой доступа с ограниченным представлением.