Матрица поддержки
Эта страница содержит сводные матрицы совместимости lakehouse-интеграций ClickHouse. В них перечислены доступные возможности для каждого формата lakehouse-таблиц, каталоги, к которым может подключаться ClickHouse, а также функции, поддерживаемые каждым каталогом.
Поддержка lakehouse-форматов
ClickHouse интегрируется с четырьмя lakehouse-форматами таблиц: Apache Iceberg, Delta Lake, Apache Hudi и Apache Paimon. Выберите формат ниже, чтобы просмотреть матрицу поддержки.
Условные обозначения: ✅ Поддерживается | ⚠️ Частично / экспериментально | ❌ Не поддерживается
- Apache Iceberg
- Delta Lake
- Apache Hudi
- Apache Paimon
| Возможность | Статус | Примечания |
|---|---|---|
| Хранилища | ||
| AWS S3 | ✅ | Через icebergS3() или алиас iceberg() |
| GCS | ✅ | Через icebergS3() или псевдоним iceberg() |
| Azure Blob Storage | ✅ | Через icebergAzure() |
| HDFS | ⚠️ | Через icebergHDFS() (функция устарела). |
| Локальная файловая система | ✅ | С помощью icebergLocal() |
| Методы доступа | ||
| Табличная функция | ✅ | icebergS3() с вариантами для разных бэкендов |
| Движок таблицы | ✅ | IcebergS3 с вариантами для разных бэкендов |
| Распределённое чтение по кластеру | ✅ | icebergS3Cluster, icebergAzureCluster, icebergHDFSCluster |
| Именованные коллекции | ✅ | Определение именованной коллекции |
| Функции чтения | ||
| Поддержка чтения | ✅ | Полная поддержка SELECT со всеми SQL‑функциями ClickHouse |
| Отсечение партиций | ✅ | См. раздел Partition pruning. |
| Скрытое партиционирование | ✅ | Поддерживается партиционирование, основанное на преобразованиях Iceberg |
| Эволюция партиций | ✅ | Поддерживается чтение таблиц со спецификациями партиций, меняющимися со временем |
| Эволюция схемы | ✅ | Добавление, удаление и изменение порядка столбцов. См. раздел Эволюция схемы. |
| Повышение / расширение типов | ✅ | int → long, float → double, decimal(P,S) → decimal(P',S), где P' > P. См. Эволюция схемы. |
| Time travel / снимки состояний | ✅ | Через параметры iceberg_timestamp_ms или iceberg_snapshot_id. См. раздел Путешествие во времени. |
| Удаления по позиции | ✅ | См. раздел Обработка удалённых строк. |
| Удаление по условию равенства | ✅ | Только для табличного движка, начиная с версии v25.8+. См. Processing deleted rows. |
| Merge-on-read | ⚠️ | Экспериментально. Поддерживается для операций удаления. |
| Версии формата | ⚠️ | Поддерживаются версии v1 и v2. V3 не поддерживается. |
| Статистика столбцов | ✅ | |
| Фильтры Блума / файлы Puffin | ❌ | Индексы по фильтрам Блума в файлах Puffin не поддерживаются |
| Виртуальные столбцы | ✅ | _path, _file, _size, _time, _etag. См. виртуальные столбцы. |
| Возможности записи | ||
| Создание таблиц | ✅ | Экспериментально. Требует allow_insert_into_iceberg = 1. С версии 25.7 и выше. См. раздел Creating a table. |
| 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. Объединяет файлы position delete с файлами data. См. Compaction. Другие операции компакции в Iceberg не поддерживаются. |
| UPDATE / MERGE | ❌ | Не поддерживается. См. раздел «Компакция». |
| Copy-on-write | ❌ | Не поддерживается. |
| Удаление устаревших снимков (снапшотов) | ❌ | Не поддерживается. |
| Удаление осиротевших файлов | ❌ | Не поддерживается. |
| Перезапись партиций | ✅ | Поддерживается. |
| Изменение партиций | ❌ | Смена схемы партиционирования из ClickHouse не поддерживается. ClickHouse может выполнять запись в таблицы Iceberg, в которых схема партиционирования уже изменена. |
| Метаданные | ||
| Ветвление и тегирование | ❌ | Ссылки на ветви и теги Iceberg не поддерживаются |
| Обнаружение файлов метаданных | ✅ | Поддерживается определение метаданных через каталоги, простое перечисление содержимого каталога, использование 'version-hint' и явного пути. Настраивается с помощью iceberg_metadata_file_path и iceberg_metadata_table_uuid. См. Определение файлов метаданных. |
| Кэширование данных | ✅ | Такой же механизм, как у движков хранения S3/Azure/HDFS. См. Кэш данных. |
| Кэширование метаданных | ✅ | Файлы манифестов и метаданных кэшируются в памяти. Включено по умолчанию параметром use_iceberg_metadata_files_cache. См. раздел Metadata cache. |
Начиная с версии 25.6, ClickHouse читает таблицы Delta Lake с использованием ядра Delta Lake, написанного на Rust, что обеспечивает более широкую поддержку возможностей; однако известны проблемы при доступе к данным в Azure Blob Storage. По этой причине это ядро отключено при чтении данных в Azure Blob Storage. Ниже указано, какие функции требуют этого ядра.
| Возможность | Статус | Примечания |
|---|---|---|
| Бэкенды хранения | ||
| AWS S3 | ✅ | Через deltaLake() или deltaLakeS3() |
| GCS | ✅ | Через deltaLake() или deltaLakeS3() |
| Azure Blob Storage | ✅ | Через deltaLakeAzure() |
| HDFS | ❌ | Не поддерживается |
| Локальная файловая система | ✅ | Через deltaLakeLocal() |
| Методы доступа | ||
| Табличная функция | ✅ | deltaLake() с вариантами для каждого бэкенда |
| Табличный движок | ✅ | DeltaLake |
| Распределённое чтение в кластере | ✅ | deltaLakeCluster, deltaLakeAzureCluster |
| Именованные коллекции | ✅ | Именованная коллекция |
| Возможности чтения | ||
| Поддержка чтения | ✅ | Полная поддержка SELECT со всеми SQL-функциями ClickHouse |
| Обрезка партиций (partition pruning) | ✅ | Требуется Delta Kernel. |
| Эволюция схемы | ✅ | Требуется Delta Kernel. |
| Путешествие во времени (time travel) | ✅ | Требуется Delta Kernel. |
| Векторы удаления | ✅ | |
| Отображение столбцов (column mapping) | ✅ | |
| Лента изменений данных (change data feed) | ✅ | Требуется Delta Kernel. |
| Виртуальные столбцы | ✅ | _path, _file, _size, _time, _etag. См. Virtual columns. |
| Возможности записи | ||
| INSERT | ✅ | Экспериментально. Требуется allow_experimental_delta_lake_writes = 1. См. DeltaLake engine. Требуется Delta Kernel. |
| DELETE / UPDATE / MERGE | ❌ | Не поддерживается |
| CREATE пустой таблицы | ❌ | Создание новой пустой таблицы Delta Lake не поддерживается. Операция CREATE TABLE предполагает существование уже созданной таблицы Delta Lake в объектном хранилище. |
| Кэширование | ||
| Кэширование данных | ✅ | Тот же механизм, что и у движков хранения S3/Azure/HDFS. См. Data cache. |
| Возможность | Статус | Примечания |
|---|---|---|
| Бэкэнды хранилища | ||
| AWS S3 | ✅ | Через hudi() |
| GCS | ✅ | Через hudi() |
| Azure Blob Storage | ❌ | Не поддерживается |
| HDFS | ❌ | Не поддерживается |
| Локальная файловая система | ❌ | Не поддерживается |
| Способы доступа | ||
| Табличная функция | ✅ | hudi() |
| Табличный движок | ✅ | Hudi |
| Распределённое чтение на кластере | ✅ | hudiCluster (только S3) |
| Именованные коллекции | ✅ | Аргументы Hudi |
| Возможности чтения | ||
| Поддержка чтения | ✅ | Полная поддержка SELECT со всеми SQL‑функциями ClickHouse |
| Эволюция схемы | ❌ | Не поддерживается |
| Time travel | ❌ | Не поддерживается |
| Виртуальные столбцы | ✅ | _path, _file, _size, _time, _etag. См. Виртуальные столбцы. |
| Возможности записи | ||
| INSERT / DELETE / UPDATE | ❌ | Интеграция только для чтения |
| Кэширование | ||
| Кэширование данных | ❌ | Не поддерживается |
| Возможность | Статус | Примечания |
|---|---|---|
| Хранилища (backends) | ||
| S3 | ✅ | Экспериментально. Через paimon() или paimonS3() |
| GCS | ✅ | Экспериментально. Через paimon() или paimonS3() |
| Azure Blob Storage | ✅ | Экспериментально. Через paimonAzure() |
| HDFS | ⚠️ | Экспериментально. Через paimonHDFS(). Помечено как устаревшее. |
| Локальная файловая система | ✅ | Экспериментально. Через paimonLocal() |
| Методы доступа | ||
| Табличная функция | ✅ | Экспериментально. paimon() с вариантами для каждого backend |
| Табличный движок | ❌ | Отдельный табличный движок отсутствует |
| Распределённое чтение по кластеру | ✅ | Экспериментально. paimonS3Cluster, paimonAzureCluster, paimonHDFSCluster |
| Именованные коллекции | ✅ | Экспериментально. Определение именованной коллекции |
| Возможности чтения | ||
| Поддержка чтения | ✅ | Экспериментально. Полная поддержка SELECT со всеми SQL-функциями ClickHouse |
| Эволюция схемы | ❌ | Не поддерживается |
| Time travel | ❌ | Не поддерживается (доступ к прошлым версиям данных) |
| Виртуальные столбцы | ✅ | Экспериментально. _path, _file, _size, _time, _etag. См. Виртуальные столбцы. |
| Возможности записи | ||
| INSERT / DELETE / UPDATE | ❌ | Интеграция только для чтения |
| Кэширование | ||
| Кэширование данных | ❌ | Не поддерживается |
Поддержка каталогов
ClickHouse может подключаться к внешним каталогам данных с помощью движка баз данных DataLakeCatalog, который представляет каталог как базу данных ClickHouse. Таблицы, зарегистрированные в каталоге, появляются автоматически и к ним можно выполнять запросы с помощью стандартного SQL.
В настоящее время поддерживаются следующие каталоги. Для получения подробных инструкций по настройке см. справочное руководство соответствующего каталога.
| Каталог | Форматы | Чтение | Создание таблицы | INSERT | Справочное руководство |
|---|---|---|---|---|---|
| AWS Glue | Iceberg | ✅ Бета | ❌ | ❌ | Руководство по каталогу Glue |
| Databricks Unity | Delta, Iceberg | ✅ Экспериментальный | ❌ | ❌ | Руководство по каталогу Unity |
| Iceberg REST | Iceberg | ✅ Бета | ❌ | ❌ | Руководство по REST-каталогу |
| Lakekeeper | Iceberg | ✅ Экспериментальный | ❌ | ❌ | Руководство по каталогу Lakekeeper |
| Project Nessie | Iceberg | ✅ Экспериментальный | ❌ | ❌ | Руководство по каталогу Nessie |
| Microsoft OneLake | Iceberg | ✅ Бета | ❌ | ❌ | Руководство по каталогу OneLake |
Для всех интеграций с каталогами в настоящее время требуется включение экспериментальной или бета-настройки, и они предоставляют доступ только для чтения — таблицы можно запрашивать, но нельзя создавать или записывать в них через подключение к каталогу. Чтобы загрузить данные из каталога в ClickHouse для более быстрой аналитики, используйте INSERT INTO SELECT, как описано в руководстве по ускорению аналитики. Чтобы записывать данные обратно в открытые табличные форматы, создавайте отдельные таблицы Iceberg, как описано в руководстве по записи данных.