Использование табличной функции 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, клиент ClickHouse CLI или любой другой инструмент, который вы используете для выполнения запросов. После того как вы подготовили строку подключения и консоль запросов 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. Для более сложных опций и подробности конфигурации, пожалуйста, обратитесь к официальной документации: