Регулярный автоматический экспорт данных Kusto в лучший запрашиваемый формат?

#azure-data-explorer

#azure-data-explorer

Вопрос:

У нас есть два кластера Kusto / Azure Data Explorer с определенными таблицами, которые содержат данные, которые я хочу предоставить через веб-API.

На данный момент я использую Kusto.Data.Net.Client (https://www.nuget.org/packages/Microsoft .Azure.Kusto.Data/) для извлечения этой информации из одного из кластеров.

Проблемы:

  • 2-й кластер не разрешает программный доступ.
  • Запросы выполняются медленно, и мне не нужно много накладных расходов. Kusto предназначен для больших объемов данных, мне нужны только крошечные биты.

Возможное решение:

Регулярно и автоматически экспортируйте части данных Kusto (на основе запроса) в другую базу данных (Postgres, Cosmos DB) и позвольте API работать над этим.

Вопросы:

  • Это рекомендуемый подход?
  • Как бы я это сделал (создал этот автоматический экспорт)? Какие инструменты использовать?

Комментарии:

1. Что вы подразумеваете под тем, что 2- й кластер не разрешает программный доступ. ?

2. Я могу запросить его только при входе в свою личную учетную запись. Не допускается «пользователь приложения».

Ответ №1:

Я могу предложить два варианта:

  1. Вы можете использовать непрерывный экспорт, который будет периодически экспортировать данные из вашего кластера в учетную запись хранилища. Затем вы можете создать сетку событий во втором кластере для чтения из этой учетной записи хранения в свой кластер kusto.
  2. Создайте кластер последователей, который будет отслеживать только определенные таблицы, которые вам нужны, из первого кластера. Это автоматически получит данные из первого кластера (он же лидер), и запрос последователя не повлечет за собой каких-либо задержек. Более подробная информация здесь

Комментарии:

1. Я посмотрел на вариант 2, потому что, похоже, это то, что я ищу. Однако этот синтаксис cluster('leader.westus.kusto.windows.net').database('MyDatabase').table('MyTable') выдает ошибку. Ведущий кластер не разрешает такой доступ.

2. Это правильный синтаксис: cluster('leader.westus.kusto.windows.net').database('MyDatabase').MyTable (нет необходимости в ‘table («…’ )

Ответ №2:

Вероятно, то, что вы ищете, — это команды политики обновления, которые, согласно документам:

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

Это хороший подход для уменьшения объема данных.