Использование функции таблицы 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, вам понадобится строка подключения с ключом доступа.
-
В портале Azure перейдите к вашему Учетной записи хранения.
-
В левом меню выберите Ключи доступа в разделе Безопасность + сеть.
-
Выберите либо key1, либо key2, и нажмите кнопку Показать рядом с полем Строка подключения.
-
Скопируйте строку подключения — вы будете использовать ее как параметр в функции таблицы azureBlobStorage.
Запрос данных из Azure Blob Storage
Откройте предпочитаемую консоль запросов ClickHouse — это может быть веб-интерфейс ClickHouse Cloud, клиент CLI ClickHouse или любой другой инструмент, который вы используете для выполнения запросов. Как только у вас будут готовы строка подключения и консоль запросов ClickHouse, вы можете начать запрашивать данные непосредственно из Azure Blob Storage.
В следующем примере мы запрашиваем все данные, хранящиеся в файлах JSON, расположенных в контейнере с именем data-container:
Если вы хотите скопировать эти данные в локальную таблицу ClickHouse (например, my_table), вы можете использовать оператор INSERT INTO ... SELECT
:
Это позволяет вам эффективно извлекать внешние данные в ClickHouse без необходимости промежуточных шагов ETL.
Простой пример с использованием набора данных сенсоров окружающей среды
В качестве примера мы загрузим один файл из набора данных сенсоров окружающей среды.
-
Загрузите образец файла из набора данных сенсоров окружающей среды.
-
В портале Azure создайте новую учетную запись хранения, если у вас ее еще нет.
Убедитесь, что для вашей учетной записи хранения включен доступ с использованием ключа учетной записи, в противном случае вы не сможете использовать ключи учетной записи для доступа к данным.
-
Создайте новый контейнер в вашей учетной записи хранения. В этом примере мы назовем его sensors. Вы можете пропустить этот шаг, если используете существующий контейнер.
-
Загрузите ранее загруженный файл
2019-06_bmp180.csv.zst
в контейнер. -
Следуйте шагам, описанным ранее, чтобы получить строку подключения к Azure Blob Storage.
Теперь, когда все настроено, вы можете запрашивать данные непосредственно из Azure Blob Storage:
- Чтобы загрузить данные в таблицу, создайте упрощенную версию схемы, использованной в оригинальном наборе данных:
Для получения дополнительной информации о параметрах конфигурации и выводе схемы при запросе внешних источников, таких как Azure Blob Storage, смотрите Автоматический вывод схемы из входных данных.
- Теперь вставьте данные из Azure Blob Storage в таблицу sensors:
Ваша таблица sensors теперь заполнена данными из файла 2019-06_bmp180.csv.zst
, хранящегося в Azure Blob Storage.
Дополнительные ресурсы
Это всего лишь базовое введение в использование функции azureBlobStorage. Для получения более продвинутых опций и деталей конфигурации, пожалуйста, ознакомьтесь с официальной документацией: