На этой странице представлены подробные матрицы поддержки для интеграций ClickHouse с озерами данных. Здесь описаны возможности, доступные для каждого открытого табличного формата, каталоги, к которым может подключаться ClickHouse, а также функции, поддерживаемые каждым каталогом.
Поддержка отдельно указана для ClickHouse Cloud и самоуправляемого ClickHouse. Экспериментальные возможности по умолчанию отключены в ClickHouse Cloud, и их необходимо запрашивать через службу поддержки. Доступность зависит от конкретной возможности, поэтому обратитесь в службу поддержки, чтобы подтвердить возможность включения нужной экспериментальной возможности. Конфигурация и ограничения, зависящие от развертывания, описаны в столбце Notes.
Поддержка открытых табличных форматов
ClickHouse интегрируется с четырьмя открытыми табличными форматами: Apache Iceberg, Delta Lake, Apache Hudi и Apache Paimon. Выберите формат ниже, чтобы посмотреть матрицу поддержки.
Условные обозначения: ✅ Поддерживается | ⚠️ Частично, экспериментально или устарело | ❌ Не поддерживается
| Возможность | ClickHouse Cloud | Самоуправляемое развёртывание | Примечания |
|---|---|---|---|
| Бэкенды хранилища | |||
| AWS S3 | ✅ | ✅ | Через icebergS3() или alias iceberg() |
| GCS | ✅ | ✅ | Через icebergS3() или alias iceberg() |
| Azure Blob Storage | ✅ | ✅ | Через icebergAzure() |
| HDFS | ❌ | ⚠️ Устарело | Через icebergHDFS() |
| Локальная файловая система | ❌ | ✅ | Через icebergLocal() |
| Способы доступа | |||
| Табличная функция | ✅ | ✅ | icebergS3() с вариантами для каждого бэкенда |
| Движок таблицы | ✅ | ✅ | IcebergS3 с вариантами для каждого бэкенда |
| Распределённое чтение по кластеру | ✅ | ✅ | icebergS3Cluster, icebergAzureCluster, icebergHDFSCluster |
| Named collections | ⚠️ | ✅ | Созданные через DDL named collections могут быть включены на отдельных сервисах ClickHouse Cloud. Чтобы подтвердить доступность, обратитесь в службу поддержки. |
| Возможности чтения | |||
| Поддержка чтения | ✅ | ✅ | Полная поддержка SELECT со всеми функциями ClickHouse SQL |
| Partition pruning | ✅ | ✅ | См. Partition pruning. |
| Скрытое партиционирование | ✅ | ✅ | Поддерживается партиционирование Iceberg на основе преобразований |
| Эволюция партиционирования | ✅ | ✅ | Поддерживается чтение таблиц, у которых спецификации партиционирования менялись со временем |
| Изменение схемы | ✅ | ✅ | Добавление, удаление и изменение порядка столбцов. См. Изменение схемы. |
| Повышение / расширение типов | ✅ | ✅ | int → long, float → double, decimal(P,S) → decimal(P',S), где P' > P. См. Изменение схемы. |
| Time travel / снимки | ✅ | ✅ | Через настройки iceberg_timestamp_ms или iceberg_snapshot_id. См. Time travel. |
| Position deletes | ✅ | ✅ | См. Обработка удалённых строк. |
| Equality deletes | ✅ | ✅ | Табличные функции и движки таблиц, начиная с v25.8+. См. Обработка удалённых строк. |
| Merge-on-read | ⚠️ | ⚠️ | Экспериментальная возможность. Поддерживается для операций удаления. |
| Версии формата | ⚠️ Частично | ⚠️ Частично | Поддерживаются v1 и v2. Поддержка V3 частичная: векторы удаления и компактизация манифестов не поддерживаются. |
| Column statistics | ✅ | ✅ | |
| Bloom-фильтры / файлы Puffin | ❌ | ❌ | Индексы на основе bloom-фильтров в файлах Puffin не поддерживаются |
| Виртуальные столбцы | ✅ | ✅ | _path, _file, _size, _time, _etag. См. Виртуальные столбцы. |
| Возможности записи | |||
| Создание таблицы | ⚠️ | ⚠️ | Экспериментальная возможность. Требуется allow_insert_into_iceberg = 1. Начиная с v25.7+. См. Создание таблицы. |
INSERT |
✅ бета | ✅ бета | Бета-версия с 26.2. Требуется allow_insert_into_iceberg = 1. См. Вставка данных. |
DELETE |
⚠️ | ⚠️ | Экспериментальная функция. Требуется allow_insert_into_iceberg = 1. Выполняется через ALTER TABLE ... DELETE WHERE. См. Удаление данных. |
ALTER TABLE (изменения схемы) |
⚠️ | ⚠️ | Экспериментальная функция. Требуется allow_insert_into_iceberg = 1. Добавление, удаление, изменение и переименование столбцов. См. Изменение схемы. |
| Компактация | ⚠️ | ⚠️ | Экспериментальная функция. Требуется allow_experimental_iceberg_compaction = 1. См. Компактация. |
UPDATE / MERGE |
❌ | ❌ | Не поддерживается. См. раздел «Компактация». |
| Копирование при записи | ❌ | ❌ | Не поддерживается |
| Удаление снимков | ⚠️ | ⚠️ | Экспериментальная функция. Требуются Iceberg v2, allow_insert_into_iceberg = 1 и allow_experimental_expire_snapshots = 1. См. Удаление снимков. |
| Удаление осиротевших файлов | ⚠️ | ⚠️ | Экспериментальная функция. Требуются Iceberg v2 или более поздней версии, allow_insert_into_iceberg = 1 и allow_iceberg_remove_orphan_files = 1. См. Удаление осиротевших файлов. |
| Запись партиций | ✅ бета | ✅ бета | Поддерживается при записи в Iceberg. |
| Изменение партиций | ❌ | ❌ | Изменение схемы партиционирования из ClickHouse не поддерживается. ClickHouse может записывать данные в таблицы Iceberg с изменённой схемой партиционирования. |
| Метаданные | |||
| Ветвление и тегирование | ❌ | ❌ | Ссылки на ветви и теги Iceberg не поддерживаются |
| Определение файла метаданных | ✅ | ✅ | Поддерживается определение через каталоги, просмотр содержимого каталога, version-hint и указанный путь. См. Определение файла метаданных. |
| Кэширование данных | ✅ | ✅ | Используется тот же механизм, что и для движков хранилищ S3/Azure/HDFS. См. Кэш данных. |
| Кэширование метаданных | ✅ | ✅ | Включено по умолчанию с помощью use_iceberg_metadata_files_cache. См. Кэш метаданных. |
Начиная с версии 25.6 ClickHouse читает таблицы Delta Lake с помощью ядра Delta Lake Rust, которое обеспечивает более широкую поддержку возможностей. Однако при доступе к данным в Azure Blob Storage возникают известные проблемы. Поэтому при чтении данных из Azure Blob Storage ядро отключено. Ниже указано, для каких возможностей требуется это ядро.
| Возможность | ClickHouse Cloud | Самоуправляемый | Примечания |
|---|---|---|---|
| Бэкенды хранилища | |||
| AWS S3 | ✅ | ✅ | Через deltaLake() или deltaLakeS3() |
| GCS | ✅ | ✅ | Через deltaLake() или deltaLakeS3() |
| Azure Blob Storage | ✅ | ✅ | Через deltaLakeAzure() |
| HDFS | ❌ | ❌ | Не поддерживается |
| Локальная файловая система | ❌ | ✅ | Через deltaLakeLocal() |
| Методы доступа | |||
| Табличная функция | ✅ | ✅ | deltaLake() с вариантами для каждого бэкенда |
| Движок таблицы | ✅ | ✅ | DeltaLake |
| Распределённое чтение по кластеру | ✅ | ✅ | deltaLakeCluster, deltaLakeAzureCluster |
| Именованные коллекции | ⚠️ | ✅ | Именованные коллекции, созданные с помощью DDL (named collections), могут быть включены в некоторых сервисах ClickHouse Cloud. Обратитесь в службу поддержки, чтобы подтвердить доступность. |
| Возможности чтения | |||
| Поддержка чтения | ✅ | ✅ | Полная поддержка SELECT со всеми функциями ClickHouse SQL |
| Отсечение партиций | ✅ бета | ✅ бета | Требуется Delta Kernel. |
| Изменение схемы | ✅ бета | ✅ бета | Требуется Delta Kernel. |
| Запросы к прошлым версиям | ✅ бета | ✅ бета | Требуется Delta Kernel. |
| Векторы удаления | ✅ | ✅ | |
| Сопоставление столбцов | ✅ | ✅ | |
| Поток изменений данных | ✅ бета | ✅ бета | Требуется Delta Kernel. |
| Виртуальные столбцы | ✅ | ✅ | _path, _file, _size, _time, _etag. См. Виртуальные столбцы. |
| Возможности записи | |||
INSERT |
✅ бета | ✅ бета | Требуется Delta Kernel. Запись поддерживается для S3 и GCS; запись в Azure не поддерживается. Начиная с v26.7 требуется allow_delta_lake_writes = 1; в более ранних версиях используйте allow_experimental_delta_lake_writes = 1. См. Запись в Delta Lake. |
DELETE / UPDATE / MERGE |
❌ | ❌ | Не поддерживается |
| Создание пустой таблицы | ❌ | ❌ | Операция CREATE TABLE предполагает, что таблица Delta Lake уже существует в объектном хранилище. |
| Кэширование | |||
| Кэширование данных | ✅ | ✅ | Тот же механизм, что и для движков хранилища S3/Azure/HDFS. См. Кэш данных. |
| Возможность | ClickHouse Cloud | Самоуправляемый | Примечания |
|---|---|---|---|
| Бэкенды хранилища | |||
| AWS S3 | ✅ | ✅ | Через hudi() |
| GCS | ✅ | ✅ | Через hudi() |
| Azure Blob Storage | ❌ | ❌ | Не поддерживается |
| HDFS | ❌ | ❌ | Не поддерживается |
| Локальная файловая система | ❌ | ❌ | Не поддерживается |
| Способы доступа | |||
| Табличная функция | ✅ | ✅ | hudi() |
| Движок таблицы | ✅ | ✅ | Hudi |
| Распределённое чтение из кластера | ✅ | ✅ | hudiCluster (только S3) |
| Именованные коллекции | ⚠️ | ✅ | Именованные коллекции, созданные с помощью DDL, можно включить для некоторых сервисов ClickHouse Cloud. Обратитесь в службу поддержки, чтобы уточнить доступность. |
| Возможности чтения | |||
| Поддержка чтения | ✅ | ✅ | Полная поддержка SELECT со всеми функциями ClickHouse SQL |
| Изменение схемы | ❌ | ❌ | Не поддерживается |
| Запросы к данным на определённый момент времени | ❌ | ❌ | Не поддерживается |
| Виртуальные столбцы | ✅ | ✅ | _path, _file, _size, _time, _etag. См. Виртуальные столбцы. |
| Возможности записи | |||
INSERT / DELETE / UPDATE |
❌ | ❌ | Интеграция доступна только для чтения |
| Кэширование | |||
| Кэширование данных | ❌ | ❌ | Не поддерживается |
| Возможность | ClickHouse Cloud | Самоуправляемый | Примечания |
|---|---|---|---|
| Бэкенды хранилищ | |||
| S3 | ⚠️ | ⚠️ | Экспериментальная возможность. Через paimon() или paimonS3() |
| GCS | ⚠️ | ⚠️ | Экспериментальная возможность. Через paimon() или paimonS3() |
| Azure Blob Storage | ⚠️ | ⚠️ | Экспериментальная возможность. Через paimonAzure() |
| HDFS | ❌ | ⚠️ | Экспериментальная и устаревшая возможность. Через paimonHDFS() |
| Локальная файловая система | ❌ | ⚠️ | Экспериментальная возможность. Через paimonLocal() |
| Методы доступа | |||
| Табличная функция | ⚠️ | ⚠️ | Экспериментальная возможность. paimon() с вариантами для каждого бэкенда |
| Движок таблицы | ⚠️ | ⚠️ | Экспериментальная возможность. Paimon с вариантами для каждого бэкенда. Требуется allow_experimental_paimon_storage_engine = 1. |
| Чтение с распределением по кластеру | ⚠️ | ⚠️ | Экспериментальная возможность. paimonS3Cluster, paimonAzureCluster, paimonHDFSCluster |
| Именованные коллекции | ⚠️ | ⚠️ | Экспериментальная возможность. Именованные коллекции, созданные с помощью DDL, можно включить в некоторых сервисах ClickHouse Cloud. Обратитесь в службу поддержки, чтобы уточнить доступность. |
| Возможности чтения | |||
| Поддержка чтения | ⚠️ | ⚠️ | Экспериментальная возможность. Полная поддержка SELECT со всеми функциями ClickHouse SQL |
| Изменение схемы | ❌ | ❌ | Не поддерживается |
| Запросы к прошлым версиям | ❌ | ❌ | Не поддерживается |
| Виртуальные столбцы | ⚠️ | ⚠️ | Экспериментальная возможность. _path, _file, _size, _time, _etag. См. Виртуальные столбцы. |
| Возможности записи | |||
INSERT / DELETE / UPDATE |
❌ | ❌ | Интеграция только для чтения |
| Кэширование | |||
| Кэширование данных | ❌ | ❌ | Не поддерживается |
Поддержка каталогов
ClickHouse может подключаться к внешним каталогам данных с помощью движка базы данных DataLakeCatalog, который представляет каталог в виде базы данных ClickHouse. Таблицы, зарегистрированные в каталоге, появляются автоматически, и их можно запрашивать с помощью стандартного SQL.
В настоящее время поддерживаются следующие каталоги. Полные инструкции по настройке см. в справочном руководстве для каждого каталога.
| Каталог | Форматы | Чтение | Создание таблицы | INSERT | Справочное руководство |
|---|---|---|---|---|---|
| Каталог AWS Glue | Iceberg | ✅ бета | ❌ | ❌ | Руководство по каталогу Glue |
| BigLake Metastore | Iceberg | ✅ бета | ❌ | ❌ | Руководство по BigLake Metastore |
| Databricks Unity Catalog | Delta, Iceberg | ✅ бета | ✅ бета | ✅ бета | Руководство по Unity Catalog |
| Iceberg REST | Iceberg | ✅ бета | ❌ | ❌ | Руководство по REST-каталогу |
| Lakekeeper | Iceberg | ✅ бета | ❌ | ❌ | Руководство по каталогу Lakekeeper |
| Project Nessie | Iceberg | ✅ экспериментальный | ❌ | ❌ | Руководство по каталогу Nessie |
| Microsoft OneLake | Iceberg | ✅ бета | ✅ бета | ✅ бета | Руководство по каталогу OneLake |
| SeaweedFS | Iceberg | ✅ бета | ✅ бета | ✅ бета | Руководство по каталогу SeaweedFS |
Для всех интеграций с каталогами в настоящее время требуется включить экспериментальную или бета-настройку. За исключением Microsoft OneLake, Databricks Unity Catalog и SeaweedFS, все каталоги предоставляют доступ только для чтения — таблицы можно запрашивать, но нельзя создавать или записывать в них данные через подключение к каталогу. Чтобы загружать данные из каталога в ClickHouse для ускорения аналитики, используйте INSERT INTO SELECT, как описано в руководстве по ускорению аналитики. Чтобы записывать данные обратно в открытые табличные форматы, создавайте автономные таблицы Iceberg, как описано в руководстве по записи данных.