Использование табличной функции azureBlobStorage в ClickHouse
Это один из наиболее эффективных и простых способов копирования данных из 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, клиент ClickHouse CLI или любой другой инструмент, который вы используете для запуска запросов. Как только у вас будут строка подключения и консоль запросов ClickHouse, вы можете начинать выполнять запросы к данным напрямую из Azure Blob Storage.
В следующем примере мы выполняем запрос ко всем данным, хранящимся в JSON-файлах в контейнере с именем data-container:
Если вы хотите скопировать эти данные в локальную таблицу ClickHouse (например, my_table),
можно использовать запрос INSERT INTO ... SELECT:
Это позволяет эффективно загружать внешние данные в ClickHouse без необходимости выполнения промежуточных ETL-этапов.
Простой пример с использованием набора данных Environmental Sensors
В качестве примера мы загрузим один файл из набора данных Environmental Sensors.
-
Загрузите пример файла из набора данных Environmental Sensors
-
В портале Azure создайте новую учетную запись хранилища, если у вас ее еще нет.
Убедитесь, что для вашей учетной записи хранилища включен параметр 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. Для более продвинутых вариантов и параметров конфигурации обратитесь к официальной документации: