Использование табличной функции ClickHouse azureBlobStorage
Это один из наиболее эффективных и простых способов копирования данных из Azure Blob Storage или Azure Data Lake Storage в ClickHouse. С помощью этой табличной функции вы можете указать ClickHouse подключиться напрямую к хранилищу Azure и считывать данные по требованию.
Функция предоставляет табличный интерфейс, который позволяет выбирать,
вставлять и фильтровать данные непосредственно из источника. Функция высоко
оптимизирована и поддерживает многие широко используемые форматы файлов, включая
CSV, JSON, Parquet, Arrow, TSV, ORC, Avro и другие. Полный список см. в разделе "Data formats".
В этом разделе мы рассмотрим простой стартовый пример переноса
данных из Azure Blob Storage в ClickHouse, а также важные аспекты
эффективного использования этой функции. Для получения дополнительных сведений и описания расширенных параметров
обратитесь к официальной документации —
странице документации по табличной функции azureBlobStorage.
Получение ключей доступа Azure Blob Storage
Чтобы ClickHouse мог получить доступ к вашему Azure Blob Storage, вам понадобится строка подключения с ключом доступа.
-
В портале Azure перейдите к своей учетной записи хранения (Storage Account).
-
В меню слева выберите Access keys в разделе Security + networking.

-
Выберите key1 или key2 и нажмите кнопку Show рядом с полем Connection string.

-
Скопируйте строку подключения — вы будете использовать её как параметр в табличной функции azureBlobStorage.
Выполнение запросов к данным в Azure Blob Storage
Откройте удобную для вас консоль для выполнения запросов к ClickHouse — это может быть веб-интерфейс ClickHouse Cloud, CLI‑клиент ClickHouse или любой другой инструмент, который вы используете для запуска запросов. Как только у вас будут готовы строка подключения и консоль запросов ClickHouse, вы можете начинать выполнять запросы к данным напрямую из Azure Blob Storage.
В следующем примере мы выполняем запрос ко всем данным, хранящимся в JSON‑файлах в контейнере с именем data-container:
Если вы хотите скопировать эти данные в локальную таблицу ClickHouse (например, my_table),
можно использовать запрос INSERT INTO ... SELECT:
Это позволяет эффективно загружать внешние данные в ClickHouse без необходимости выполнять промежуточные шаги ETL.
Простой пример с использованием набора данных Environmental sensors
В качестве примера мы скачаем один файл из набора данных Environmental Sensors.
-
Скачайте пример файла из набора данных Environmental Sensors.
-
В Azure Portal создайте новую учётную запись хранилища, если у вас её ещё нет.
Убедитесь, что для вашей учётной записи хранилища включён параметр Allow storage account key access, иначе вы не сможете использовать ключи учётной записи для доступа к данным.
-
Создайте новый контейнер в своей учётной записи хранилища. В этом примере мы назовём его sensors. Вы можете пропустить этот шаг, если используете существующий контейнер.
-
Загрузите ранее скачанный файл
2019-06_bmp180.csv.zstв контейнер. -
Выполните шаги, описанные ранее, чтобы получить строку подключения для Azure Blob Storage.
Теперь, когда всё настроено, вы можете выполнять запросы к данным напрямую из Azure Blob Storage:
- Чтобы загрузить данные в таблицу, создайте упрощённую версию
схемы, используемой в исходном наборе данных:
Для получения дополнительной информации о параметрах конфигурации и автоматическом определении схемы при выполнении запросов к внешним источникам, таким как Azure Blob Storage, см. раздел Automatic schema inference from input data
- Теперь вставьте данные из Azure Blob Storage в таблицу sensors:
Теперь таблица sensors заполнена данными из файла 2019-06_bmp180.csv.zst,
хранящегося в Azure Blob Storage.
Дополнительные материалы
Это лишь базовое введение в использование функции azureBlobStorage. Для более продвинутых возможностей и подробной информации о настройке обращайтесь к официальной документации: