Как экспортировать данные в облачное хранилище Azure из Azure Data Explorer с использованием языка Kusto (KQL)

Вопросы и ответы

У меня есть следующий простой запрос KUSTO (KQL), и я хотел бы экспортировать результаты этого запроса в Azure блоб-хранилище:

database('MyDatabase').GoldDatabase
| where isnotempty(Post)

Я наткнулся на следующий метод, но не знаю, как применить его к запросу

.export
  async compressed
  to csv (
    h@"https://storage1.blob.core.windows.net/containerName;secretKey",
    h@"https://storage1.blob.core.windows.net/containerName2;secretKey"
  ) with (
    sizeLimit=1000000000,
    namePrefix="export",
    includeHeaders="all",
    encoding="UTF8NoBOM"
  )
  <| 
  Logs | where id == "1234"

Есть какие-то мысли?

Я только что попробовал следующее с нашим местоположением abfss://

.export
  async compressed
  to csv (
    h@"abfss://[email protected]/InputFiles"
  ) with (
    sizeLimit=1000000000,
    namePrefix="gold_database_export",
    includeHeaders="all",
    encoding="UTF8NoBOM"
  )
  <|
  database('Silver').Marketing

Но не повезло.

Ответ

Чтобы экспортировать данные из Azure Data Explorer в Azure Blob Storage с помощью языка KQL (Kusto Query Language), вы можете использовать команду .export. Ваша первоначальная задача — экспортировать результаты простого запроса, который выбирает данные из базы данных GoldDatabase, где столбец Post не пуст.

Вот подробная инструкция, как это сделать:

  1. Убедитесь, что у вас есть доступ к Azure Blob Storage: Вам потребуется строка подключения с ключом доступа, чтобы иметь возможность записывать данные в указанный контейнер.

  2. Сформируйте ваш запрос для экспорта: Вам нужно будет использовать команду .export и подключить её к вашему запросу.

Вот пример того, как вы можете модифицировать ваш исходный запрос:

.export
  async compressed
  to csv (
    h@"https://storage1.blob.core.windows.net/containerName;secretKey"
  ) with (
    sizeLimit=1000000000,
    namePrefix="gold_database_export",
    includeHeaders="all",
    encoding="UTF8NoBOM"
  )
  <|
  database('MyDatabase').GoldDatabase
  | where isnotempty(Post)

Пояснение частей запроса:

  • .export: Начинает экспорт данных.
  • async compressed: Указывает, что экспорт будет асинхронным и данные будут сжаты.
  • to csv: Определяет формат, в который вы хотите экспортировать данные (в данном случае CSV).
  • h@"https://storage1.blob.core.windows.net/containerName;secretKey": Замените containerName на имя вашего контейнера в Azure Blob Storage и secretKey на ваш секретный ключ.
  • with (...): Устанавливает различные параметры экспорта:
    • sizeLimit: Максимальный размер файла экспорта, в данном случае 1 ГБ.
    • namePrefix: Префикс для имен экспортируемых файлов. В вашем примере это будет gold_database_export.
    • includeHeaders: Указывает, что заголовки столбцов должны быть включены.
    • encoding: Указывает кодировку, используемую для экспортируемых данных, здесь используется UTF8NoBOM.
  • |: Символ, который разделяет команду экспорта от вашего запроса.
  • database('MyDatabase').GoldDatabase | where isnotempty(Post): Ваш исходный запрос, который выбирает записи, где столбец Post не пуст.

Замечания:

  • Убедитесь, что вы используете правильные права доступа для записи в указанный контейнер.
  • Обратите внимание, что в случае больших объемов данных экспорт может занять некоторое время.

Пример выше должен помочь вам успешно экспортировать данные из Azure Data Explorer в Azure Blob Storage. Если у вас возникли проблемы, убедитесь, что ваше подключение к Azure Blob Storage корректно и что у вас есть все необходимые разрешения.

Оцените материал
Добавить комментарий

Капча загружается...