Перейти к основному содержимому
Перейти к основному содержимому

Использование табличной функции azureBlobStorage в ClickHouse

Это один из самых эффективных и простых способов скопировать данные из Azure Blob Storage или Azure Data Lake Storage в ClickHouse. С помощью этой табличной функции вы можете сообщить ClickHouse подключиться напрямую к Azure хранилищу и читать данные по мере необходимости.

Она предоставляет интерфейс, похожий на таблицу, который позволяет вам выбирать, вставлять и фильтровать данные непосредственно из источника. Функция сильно оптимизирована и поддерживает множество широко используемых форматов файлов, включая CSV, JSON, Parquet, Arrow, TSV, ORC, Avro и другие. Полный список см. в разделе "Форматы данных".

В этом разделе мы рассмотрим простое руководство по передаче данных из Azure Blob Storage в ClickHouse, а также важные аспекты эффективного использования этой функции. Для получения более подробной информации и дополнительных опций, обратитесь к официальной документации: Табличная функция azureBlobStorage

Получение ключей доступа к Azure Blob Storage

Чтобы разрешить ClickHouse доступ к вашему Azure Blob Storage, вам потребуется строка подключения с ключом доступа.

  1. В портале Azure перейдите к своему Учетной записи хранения.

  2. В левом меню выберите Ключи доступа в разделе Безопасность и сетевое взаимодействие.

  3. Выберите либо key1, либо key2, и нажмите кнопку Показать рядом с полем Строка подключения.

  4. Скопируйте строку подключения — вы будете использовать ее как параметр в табличной функции azureBlobStorage.

Запрос данных из Azure Blob Storage

Откройте свою любимую консоль запросов ClickHouse — это может быть веб-интерфейс ClickHouse Cloud, клиент ClickHouse CLI или любой другой инструмент, который вы используете для выполнения запросов. После того как вы подготовили строку подключения и консоль запросов ClickHouse, вы можете начать запрашивать данные непосредственно из Azure Blob Storage.

В следующем примере мы запрашиваем все данные, хранящиеся в JSON-файлах, находящихся в контейнере с именем data-container:

Если вы хотите скопировать эти данные в локальную таблицу ClickHouse (например, my_table), вы можете использовать команду INSERT INTO ... SELECT:

Это позволяет вам эффективно загружать внешние данные в ClickHouse без необходимости в промежуточных этапах ETL.

Простой пример с использованием набора данных об экологических датчиках

В качестве примера мы загрузим один файл из Набора данных об экологических датчиках.

  1. Скачайте пример файла из Набора данных об экологических датчиках

  2. В портале Azure создайте новую учетную запись хранения, если у вас ее еще нет.

осторожно

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

  1. Создайте новый контейнер в вашей учетной записи хранения. В этом примере мы назовем его sensors. Вы можете пропустить этот шаг, если используете существующий контейнер.

  2. Загрузите ранее скачанный файл 2019-06_bmp180.csv.zst в контейнер.

  3. Следуйте описанным ранее шагам, чтобы получить строку подключения к Azure Blob Storage.

Теперь, когда все настроено, вы можете запрашивать данные непосредственно из Azure Blob Storage:

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

Для получения дополнительной информации о параметрах конфигурации и выводе схемы при запросах к внешним источникам, таким как Azure Blob Storage, см. Автоматический вывод схемы из входных данных

  1. Теперь вставьте данные из Azure Blob Storage в таблицу sensors:

Ваша таблица sensors теперь заполнена данными из файла 2019-06_bmp180.csv.zst, сохраняемого в Azure Blob Storage.

Дополнительные ресурсы

Это лишь базовое введение в использование функции azureBlobStorage. Для более сложных опций и подробности конфигурации, пожалуйста, обратитесь к официальной документации: