Перейти к основному содержанию
ClickHouse предоставляет табличные функции для выполнения запросов к данным, хранящимся в открытых табличных форматах, непосредственно в объектном хранилище. Для этого не требуется подключаться к внешнему каталогу — данные запрашиваются на месте, подобно тому, как AWS Athena читает их из S3. Вы передаёте путь в хранилище и учётные данные прямо в вызове функции, а ClickHouse берёт на себя всё остальное. Доступны весь синтаксис и все функции ClickHouse SQL, а запросы получают преимущества от параллельного выполнения в ClickHouse и эффективного нативного ридера Parquet.
Сервер, локально или chDBШаги в этом руководстве можно выполнить, используя существующую установку сервера ClickHouse. Для разовых запросов можно вместо этого использовать clickhouse-local и выполнить тот же процесс без запуска сервера. С небольшими изменениями этот процесс также можно выполнить с помощью in-process дистрибутива ClickHouse — chDB.
В следующих примерах используется датасет hits, хранящийся в S3 в каждом формате lakehouse. Для каждого формата lakehouse существуют отдельные функции для каждого провайдера объектного хранилища.
Табличная функция iceberg (псевдоним icebergS3) читает таблицы Iceberg напрямую из объектного хранилища. Для каждого бэкенда хранилища предусмотрены свои варианты: icebergS3, icebergAzure, icebergHDFS и icebergLocal.Пример синтаксиса:
Поддержка GCSДля Google Cloud Storage (GCS) можно использовать вариант функций для S3.
Пример:

Кластерный вариант

Функция icebergS3Cluster распределяет операции чтения между несколькими узлами кластера ClickHouse. Узел-инициатор устанавливает соединения со всеми узлами и динамически распределяет файлы данных. Каждый узел-воркер запрашивает и обрабатывает задачи до тех пор, пока не будут прочитаны все файлы. icebergCluster — псевдоним для icebergS3Cluster. Также существуют варианты для Azure (icebergAzureCluster) и HDFS (icebergHDFSCluster).Пример синтаксиса:
Пример (ClickHouse Cloud):

Движок таблицы

В качестве альтернативы использованию табличной функции в каждом запросе можно создать постоянную таблицу с помощью движка таблицы Iceberg. Данные по-прежнему хранятся в объектном хранилище и считываются по требованию — никакие данные не копируются в ClickHouse. Преимущество заключается в том, что определение таблицы хранится в ClickHouse и доступно всем пользователям в разных сеансах без необходимости каждый раз указывать путь к хранилищу и учётные данные. Для каждого типа backend-соединения предусмотрены варианты движка: IcebergS3 (или псевдоним Iceberg), IcebergAzure, IcebergHDFS и IcebergLocal.И движок таблицы, и табличная функция поддерживают кэширование данных, используя тот же механизм кэширования, что и движки хранилища S3, AzureBlobStorage и HDFS. Кроме того, кэш метаданных хранит в памяти информацию из файлов манифестов, сокращая повторные чтения метаданных Iceberg. Этот кэш включён по умолчанию через настройку use_iceberg_metadata_files_cache.Пример синтаксиса:Движок таблицы Iceberg — это псевдоним для IcebergS3.
Поддержка GCSДля Google Cloud Storage (GCS) можно использовать S3-вариант движка таблицы.
Пример:
Список поддерживаемых возможностей, включая отсечение партиций, эволюцию схемы, перемещение во времени, кэширование и другое, см. в матрице поддержки. Полную справочную информацию см. в документации по табличной функции iceberg и движку таблицы Iceberg.
Последнее изменение 1 июля 2026 г.