Apache Iceberg Query Engine Support Matrix
Comprehensive comparison of 16 query engines supporting Apache Iceberg table format with detailed feature analysis
Apache Spark 3.3+
The reference implementation for Apache Iceberg with comprehensive read/write support
Apache Flink 1.18+
The reference implementation for CDC to Iceberg with comprehensive streaming support, exactly-once semantics, and advanced FLIP-27 incremental reads
Apache Hive 4.0+
Traditional data warehouse with first-class Iceberg support, full SQL DML, hidden partitioning, and Ranger-based governance for batch analytics
Trino 475+
High-performance distributed SQL query engine with advanced DML, time travel, and native Iceberg optimization for interactive analytics
ClickHouse v25.4
Rapidly evolving OLAP database with experimental Iceberg read support, time travel, REST catalogs, and comprehensive write capabilities planned for 2025
Presto 0.288+
Distributed SQL query engine with REST/Nessie catalogs, row-level DELETE, time travel, and configurable MoR/CoW modes for interactive analytics
Dremio v26
Full Iceberg authoring engine with built-in Polaris catalog, complete DML including MERGE, Arctic git-like branching, and Data Reflections acceleration
StarRocks v3.2/3.3
Vectorized OLAP engine with read-write Iceberg support, async materialized views, CBO optimization, and strong analytical performance for lakehouse analytics
Amazon Athena (Engine v3)
Serverless AWS-native query engine with complete DML operations, Lake Formation governance, time travel, and deep AWS ecosystem integration for Iceberg tables
Google BigQuery
Serverless Google Cloud data warehouse with managed Iceberg tables, automatic optimization, Storage Write API streaming, and deep GCP ecosystem integration
Snowflake
Enterprise cloud data warehouse with native Iceberg catalog, automatic optimization, Snowpipe Streaming, UniForm interoperability, and full integration with Snowflake features
Apache Doris v2.1+
MPP analytical database with comprehensive Iceberg read/write capabilities, vectorized execution, materialized view acceleration, and multi-catalog support for lake ingestion and analytics
DuckDB v1.3+
A light-weight, read-only analytics engine for Iceberg with SQL time travel, external file caching, and REST catalog support
Databricks Runtime 14.3 LTS+
UniForm technology enables multi-format lakehouse with read-only Iceberg views of Delta tables via Unity Catalog REST endpoint
Starburst Enterprise SEP 414-E+
End-to-end Iceberg analytics platform with comprehensive catalog support, full DML operations, enterprise governance, and advanced optimization features
Apache Impala v4.4+
High-performance analytics engine with Iceberg v2 support, row-level operations via position deletes, and deep HMS integration for enterprise environments
Query Engine | Catalogs Catalog Support | R/W Read/Write | DML DML Operations | MoR/CoW MoR/CoW | Stream Streaming | V3 Format V3 | Time Travel Time Travel | Security Security | Score |
---|---|---|---|---|---|---|---|---|---|
Apache Spark 3.3+General Purpose The reference implementation for Apache Iceberg with comprehensive read/write support | Catalog Support Hive Metastore, Hadoop warehouse, REST, AWS Glue, JDBC, Nessie, plus custom plug-ins | Read/Write Full table scans, metadata-table reads, INSERT INTO, atomic INSERT OVERWRITE, DataFrame writeTo, and stored procedures | DML Operations MERGE INTO, UPDATE, DELETE via Spark Session Extensions; Iceberg 0.14+ emits position/equality-delete files | MoR/CoW Copy-on-Write default; Merge-on-Read enabled when delete files are written | Streaming Incremental reads with stream-from-timestamp; append/complete Structured Streaming writes | Format V3 GA read + write on Spark 3.5 with Iceberg 1.8+; Deletion Vectors, Row Lineage columns, new types supported | Time Travel SQL VERSION AS OF / TIMESTAMP AS OF supported since Spark 3.3 | Security Delegates ACLs to underlying catalog (Hive Ranger, AWS IAM, Nessie policies) | 30 / 32 |
Apache Flink 1.18+Streaming The reference implementation for CDC to Iceberg with comprehensive streaming support, exactly-once semantics, and advanced FLIP-27 incremental reads | Catalog Support Hive Metastore, Hadoop catalog, REST catalog (incl. Nessie), AWS Glue, JDBC, plus any custom implementation via catalog-impl | Read/Write Batch and streaming jobs read snapshots or incremental DataStreams; Iceberg Sink commits on each Flink checkpoint with exactly-once semantics | DML Operations INSERT append always available; row-level changes via write.upsert.enabled=true on spec v2 tables; MERGE INTO not supported in Flink SQL | MoR/CoW Copy-on-Write for static batch rewrites; Merge-on-Read for streaming/UPSERT with delete files instead of partition rewrites | Streaming Reference engine for CDC → Iceberg: consume Debezium/Kafka changelogs, upsert with exactly-once semantics, FLIP-27 source for incremental reads | Format V3 GA read + write with Flink 1.18+ and Iceberg 1.8+; Binary Deletion Vectors, Row Lineage (_row_id, _last_updated_sequence_number), new data types, multi-argument transforms | Time Travel Filter push-down + partition pruning automatic; point-in-time reads via source options: start-snapshot-id, start-snapshot-timestamp, branch, tag | Security Inherits ACLs from underlying catalog (Hive Ranger, AWS IAM, Nessie authorization); REST catalog secured with credential/token properties | 30 / 32 |
Apache Hive 4.0+General Purpose Traditional data warehouse with first-class Iceberg support, full SQL DML, hidden partitioning, and Ranger-based governance for batch analytics | Catalog Support Hive Metastore default via HiveIcebergStorageHandler; Hadoop, REST/Nessie, AWS Glue, JDBC, or custom catalogs configurable | Read/Write SELECT, INSERT INTO, atomic INSERT OVERWRITE, CTAS, CREATE TABLE LIKE; works through Tez or MapReduce jobs | DML Operations SQL DELETE, UPDATE, and MERGE INTO supported when Hive runs on Tez; operations rewrite whole files (CoW) | MoR/CoW Copy-on-Write for all Hive writes; Merge-on-Read delete files are readable but not produced by Hive | Streaming No native streaming; ingest via micro-batch jobs only; CDC pipelines typically rely on Spark/Flink then query with Hive | Format V3 Not supported. Hive 4 bundles Iceberg 1.4.3, predating spec v3. Cannot write or reliably read v3 tables until upgrade to Iceberg ≥ 1.8.0 | Time Travel Hidden partitioning supported (PARTITIONED BY SPEC); time-travel via snapshot/branch properties, not SQL clauses | Security Inherits Ranger/SQL-standard policies from Hive Metastore; Ranger policies can target Iceberg tables and storage-handler paths | 20 / 32 |
Trino 475+General Purpose High-performance distributed SQL query engine with advanced DML, time travel, and native Iceberg optimization for interactive analytics | Catalog Support iceberg.catalog.type= hive_metastore, glue, jdbc, rest, nessie, or snowflake; each catalog exposes the same tables to Trino once configured | Read/Write Ad-hoc SQL reads with filter, projection, and partition pruning; writes via INSERT, CREATE TABLE AS, CREATE OR REPLACE TABLE, and INSERT OVERWRITE | DML Operations Supports UPDATE, DELETE, and MERGE INTO, emitting position/equality delete files instead of rewriting entire partitions when possible | MoR/CoW Default Merge-on-Read for row-level DML (writes compact delete files, queries merge on-the-fly). CTAS/INSERT OVERWRITE follow Copy-on-Write semantics | Streaming Trino is batch/interactive only; happily reads Iceberg tables updated by streaming engines, but does not run continuous ingestion jobs itself | Format V3 Not yet GA; spec v3 read/write tracked but connector currently supports only spec v1/v2; deletion vectors & row lineage planned | Time Travel Automatic hidden partition pruning; time travel via FOR VERSION AS OF and FOR TIMESTAMP AS OF (also to branches/tags) | Security Delegates ACLs to underlying catalog (Hive Ranger, AWS IAM, Nessie policies); supports snapshot isolation; commit metadata visible for audit | 24 / 32 |
ClickHouse v25.4General Purpose Rapidly evolving OLAP database with experimental Iceberg read support, time travel, REST catalogs, and comprehensive write capabilities planned for 2025 | Catalog Support Path (Hadoop-style) since 24.3, REST catalog (Nessie, Polaris/Unity, Glue REST) in 24.12; HMS experimental & AWS Glue in testing; R2 catalog on roadmap | Read/Write Read-only: ENGINE=Iceberg tables and icebergS3()/icebergCluster() functions; full SQL on Parquet files. Writes/compaction scheduled Q3 2025 | DML Operations Reading of position & equality deletes supported since 24.12; queries merge delete files on-the-fly (MoR). No DELETE/UPDATE/MERGE writers until write support lands | MoR/CoW Copy-on-Write always readable; Merge-on-Read readable from 24.12 (non-materialized delete files) | Streaming No native streaming ingestion; users poll Iceberg or ingest with ClickHouse Kafka engine; roadmap includes ClickPipe Iceberg-CDC for near-real-time sync | Format V3 Not yet supported - engine rejects DV tables; v3 reader/writer planned post-spec-v2 completeness; DV/lineage scheduled Q3 2025 | Time Travel Time-travel since 25.4 with SET iceberg_timestamp_ms=<epoch> or iceberg_snapshot_id; partition pruning via use_iceberg_partition_pruning=1 | Security Relies on object-store credentials (AWS_ACCESS_KEY_ID, S3 V4 tokens) or catalog credential vending; ClickHouse RBAC controls database/table access; no column-masking yet | 12 / 32 |
Presto 0.288+General Purpose Distributed SQL query engine with REST/Nessie catalogs, row-level DELETE, time travel, and configurable MoR/CoW modes for interactive analytics | Catalog Support Hive Metastore, AWS Glue, REST/Nessie (0.277+ with OAuth2), Hadoop (file-based); JDBC possible via same properties | Read/Write Reads all Iceberg v1/v2 tables; INSERT, CTAS, DELETE (row & partition) available since 0.277-0.282. Presto C++ is read-only | DML Operations INSERT, CTAS, DELETE (row-level, partition); UPDATE experimental; MERGE not yet supported. Presto C++ has no DML | MoR/CoW Table props write.delete.mode/write.update.mode choose COPY_ON_WRITE or MERGE_ON_READ; readers honor MoR with enable-merge-on-read-mode=true | Streaming None - batch queries only; external engines handle CDC and streaming ingestion | Format V3 Roadmap: read Deletion Vectors & Row Lineage after Iceberg 1.8 libraries land; write DV planned post-0.295. Currently supports v1/v2 only | Time Travel AS OF TIMESTAMP / @snapshot_id=... syntax (0.282+). Snapshot procedures: rollback, expire, remove orphan files | Security Relies on Hive/Glue/Nessie ACLs; Presto logs for audit; iceberg.security configuration for authorization | 20 / 32 |
Dremio v26General Purpose Full Iceberg authoring engine with built-in Polaris catalog, complete DML including MERGE, Arctic git-like branching, and Data Reflections acceleration | Catalog Support Polaris/Dremio Catalog (built-in REST, Nessie-backed), Generic Iceberg REST Catalog, Arctic (Nessie) sources, HMS, AWS Glue, Hadoop (file-based), Nessie stand-alone | Read/Write Full DDL & DML (CREATE/ALTER/DROP, CTAS, INSERT, MERGE, UPDATE, DELETE) on Iceberg tables in S3/ADLS/GCS or Polaris/Arctic; HDFS/Hive may remain read-only | DML Operations INSERT, COPY INTO, UPDATE, DELETE (row & partition), MERGE (insert/update/delete branches since 25.1; uses MoR) | MoR/CoW Default CoW; merge-on-read available via write.delete.mode=merge-on-read & write.merge.mode=merge-on-read (v25+). OPTIMIZE can merge delete files | Streaming No native streaming; queries always see latest committed snapshot. External engines ingest → Dremio queries/MERGE applies changes | Format V3 Planned (2025) - roadmap calls for reading Deletion Vectors & row-lineage columns first; writer support (DV emission) to follow once Iceberg 1.8+ library adopted | Time Travel Via Arctic/Nessie branches & tags (table@branch); or query $history/$snapshots tables to locate snapshot id, then ROLLBACK or branch/tag for analysis | Security Honors catalog ACLs (Glue IAM, Hive Ranger, Nessie RBAC). Dremio role/column masking applies to Iceberg (v26). Arctic commit log gives audit trail | 24 / 32 |
StarRocks v3.2/3.3General Purpose Vectorized OLAP engine with read-write Iceberg support, async materialized views, CBO optimization, and strong analytical performance for lakehouse analytics | Catalog Support Hive Metastore, AWS Glue, REST (Nessie/Tabular) with credential vending support | Read/Write Full reads including MoR; INSERT/INSERT OVERWRITE, CREATE/DROP DB & TABLE (v3.1+). No UPDATE/DELETE/MERGE operations | DML Operations Supports INSERT & INSERT OVERWRITE (partition-level). No UPDATE/DELETE/MERGE operations available | MoR/CoW Reads MoR (position & equality-delete files). Writes CoW only (partition overwrite) | Streaming No native streaming. Supports Async Materialized Views for incremental ingest patterns | Format V3 Not yet GA. Currently supports Iceberg v1 & v2 (Parquet & ORC) only | Time Travel No SQL "AS OF" in v3.2/3.3 - use separate catalog pointing at older snapshot. SQL time travel supported from v3.4.0+ | Security Catalog ACLs respected (IAM/HMS). StarRocks RBAC on external catalogs for fine-grained access control | 16 / 32 |
Amazon Athena (Engine v3)General Purpose Serverless AWS-native query engine with complete DML operations, Lake Formation governance, time travel, and deep AWS ecosystem integration for Iceberg tables | Catalog Support Only AWS Glue Data Catalog supported for Iceberg. Hive, REST, Nessie, or JDBC catalogs not recognized | Read/Write SELECT, CREATE TABLE STORED AS ICEBERG, CTAS, INSERT INTO. All writes create new snapshots and become immediately queryable | DML Operations Engine v3 supports INSERT INTO, UPDATE, DELETE, and MERGE INTO. UPDATE/DELETE/MERGE write position-delete files (Iceberg v2) for row-level changes | MoR/CoW Athena operates Iceberg tables in merge-on-read mode only; DML produces delete files, not full rewrites. Copy-on-write is not configurable | Streaming No built-in streaming ingestion or CDC APIs. External tools (Glue ETL, Flink) must land data in Iceberg; Athena queries latest committed snapshot | Format V3 Not yet supported; Athena uses Iceberg 1.2.x libraries, spec v3 features (DV, lineage) not available. Creates/writes only spec v2 tables | Time Travel FOR TIMESTAMP AS OF and FOR VERSION AS OF clauses let you query historical snapshots with millisecond precision | Security Access enforced through IAM plus AWS Lake Formation policies (column-, row-, and cell-level). Lake Formation filters govern metadata table visibility | 20 / 32 |
Google BigQueryGeneral Purpose Serverless Google Cloud data warehouse with managed Iceberg tables, automatic optimization, Storage Write API streaming, and deep GCP ecosystem integration | Catalog Support BigQuery-managed Iceberg (internal catalog) and BigLake external Iceberg (Dataplex, HMS, AWS Glue via GCS). No direct REST/Nessie support | Read/Write Managed tables: full CREATE, CTAS, INSERT, DML. External tables: SELECT + limited INSERT via Dataflow/Storage Write API | DML Operations Managed tables: INSERT, UPDATE, DELETE, MERGE with GoogleSQL semantics. External tables: limited INSERT support via Dataflow/Spark | MoR/CoW Operations generate position/equality delete files (MoR). Automatic compaction, clustering, and garbage collection (CoW) in background | Streaming High-throughput streaming via Storage Write API (Preview) - Dataflow, Beam, Spark. No built-in CDC apply; use Datastream + Dataflow patterns | Format V3 Not yet supported. v2 required for managed tables, recommended for external. v3 evaluation planned for 2025 on public roadmap | Time Travel Managed tables: FOR SYSTEM_TIME AS OF syntax translating to snapshots. External BigLake tables: no SQL time travel currently | Security IAM permissions like native BigQuery tables. Column-level security & masking on managed Iceberg. External via BigLake/Dataplex policy tags | 18 / 32 |
SnowflakeGeneral Purpose Enterprise cloud data warehouse with native Iceberg catalog, automatic optimization, Snowpipe Streaming, UniForm interoperability, and full integration with Snowflake features | Catalog Support Snowflake catalog (native) with full read/write. External catalogs (Glue, Open Table Catalog) read-only via catalog integration objects | Read/Write Full SELECT, DML & DDL on Snowflake-catalog tables including COPY INTO, CTAS, multi-statement transactions. External catalogs read-only | DML Operations INSERT, UPDATE, DELETE, MERGE INTO fully ACID on Snowflake-catalog tables. Position-delete files, equality-delete in preview. External tables read-only | MoR/CoW DML writes merge-on-read delete files. Automatic Storage Optimization compacts files & merges delete files, switching to copy-on-write during clustering | Streaming Snowpipe Streaming & Storage Write API for real-time ingestion (GA). Streams & Tasks supported on Snowflake-catalog tables. No built-in CDC ingestion | Format V3 Not yet supported. Snowflake-catalog tables use spec v2; external v3 tables readable if future reader upgrades land. Roadmap evaluation ongoing | Time Travel Query snapshots with AT(SNAPSHOT => id) or AT(TIME => ts). Zero-Copy Clones work on Iceberg tables. External tables require explicit REFRESH | Security Full Snowflake RBAC, column masking, row-access policies, tag-based masking. Query activity in ACCOUNT_USAGE & ACCESS_HISTORY. Customer-managed IAM roles | 20 / 32 |
Apache Doris v2.1+General Purpose MPP analytical database with comprehensive Iceberg read/write capabilities, vectorized execution, materialized view acceleration, and multi-catalog support for lake ingestion and analytics | Catalog Support CREATE CATALOG supports hive metastore, glue, rest, hadoop, dlf, s3tables with metastore URIs/REST endpoints plus credentials | Read/Write Full SELECT and write-back: INSERT, INSERT OVERWRITE, CTAS. Doris writes Parquet/ORC files and commits Iceberg snapshots as lake-ingestion engine | DML Operations INSERT INTO (append), INSERT OVERWRITE, UPDATE & DELETE via Iceberg-v2 delete files (v2.1+). MERGE not yet single statement but emulated with patterns | MoR/CoW Reads: applies position and equality delete files (MoR) automatically. Writes: generates position/equality delete files for UPDATE/DELETE; INSERT OVERWRITE rewrites files (CoW) | Streaming No native streaming/CDC writer; use external tools (Flink-Iceberg) to land data, then query with sub-second latency. Routine Load only targets internal tables | Format V3 Supports Iceberg spec v1 & v2 only. Spec v3 work follows upstream Iceberg roadmap - no GA support yet | Time Travel Query historical data with FOR TIMESTAMP AS OF / FOR VERSION AS OF or iceberg_meta() function. System tables ($snapshots, $manifests, $history) exposed | Security Doris RBAC plus underlying catalog/storage IAM. Ranger/Lake Formation policies apply at metastore/storage; Doris adds row-policies & column masking on query | 20 / 32 |
DuckDB v1.3+Analytics A light-weight, read-only analytics engine for Iceberg with SQL time travel, external file caching, and REST catalog support | Catalog Support Hadoop (file-system) and Iceberg REST catalogs supported via rest option with bearer/OAuth tokens; no native Hive/Glue catalog yet | Read/Write Full SELECT support with predicate evaluation, manifest pruning and external file-cache to avoid re-downloading S3/GCS objects; write operations not available | DML Operations iceberg_scan() and CREATE VIEW for reads; metadata helper functions available; no INSERT/UPDATE/DELETE/MERGE operations | MoR/CoW Reading tables with deletes is not yet supported; only Copy-on-Write tables without delete files can be read | Streaming Batch-only analytics engine; no built-in streaming ingestion or CDC subscribe APIs | Format V3 DuckDB 1.3 only reads v1 & v2 tables; v3 metadata changes will be evaluated post-GA of the spec | Time Travel Convenient SQL syntax: SELECT * FROM tbl AT (VERSION => 314159) or AT (TIMESTAMP => '2025-05-01 10:15:00'); older function-style still works | Security Uses DuckDB's standard S3/Azure creds in httpfs extension; REST-catalog tokens may be supplied per-session; no built-in RBAC/row-masking | NaN / 32 |
Databricks Runtime 14.3 LTS+UniForm technology enables multi-format lakehouse with read-only Iceberg views of Delta tables via Unity Catalog REST endpoint | Catalog Support Unity Catalog exposes Iceberg REST catalog at /api/2.1/unity-catalog/iceberg for external engines; UniForm tables generate Iceberg metadata on Delta commits | Read/Write Full reads via REST catalog or direct metadata paths; writes supported for Managed Iceberg Tables via external engines, but UniForm Delta tables are read-only for Iceberg clients | DML Operations Full DML (INSERT, MERGE, UPDATE, DELETE) available for Delta users inside Databricks; Iceberg clients can only read through REST catalog | MoR/CoW Copy-on-Write (CoW) semantics for Delta commits; no Iceberg delete files produced; external readers see fully merged snapshots | Streaming Spark Structured Streaming and Delta Change Data Feed available inside Databricks; Iceberg REST interface does not expose streaming ingestion or CDC endpoints | Format V3 UniForm currently targets Iceberg spec v2 only; no public roadmap for v3 support announced yet | Time Travel External engines can time-travel by snapshot-ID or timestamp using standard Iceberg syntax; includes converted_delta_version and converted_delta_timestamp properties | Security Unity Catalog RBAC governs access; Iceberg REST clients receive temporary, scoped cloud-storage credentials via credential vending during handshake | NaN / 32 |
Starburst Enterprise SEP 414-E+Analytics End-to-end Iceberg analytics platform with comprehensive catalog support, full DML operations, enterprise governance, and advanced optimization features | Catalog Support Hive Metastore, AWS Glue, JDBC, REST, Nessie, Snowflake, and Starburst Galaxy managed metastore with flexible configuration via iceberg.catalog.type | Read/Write Complete read & write capabilities including CREATE TABLE, CTAS, INSERT, and all query operations with atomic metadata swap for consistency | DML Operations INSERT, UPDATE, DELETE, MERGE all supported; partition-aligned predicates become partition deletes, otherwise writes Iceberg v2 position/equality-delete files | MoR/CoW Default copy-on-write for large rewrites; fine-grained updates create separate delete files (MoR) merged at query time; handles both position & equality deletes | Streaming No built-in streaming ingestion; queries Iceberg snapshots produced by external tools; materialized-view refreshes can approximate micro-batch CDC | Format V3 Supports Iceberg spec v1 & v2; can read v3 preview metadata under feature flag but no v3 writes; production v3 GA on roadmap for 2025 | Time Travel Query past snapshots using FOR VERSION AS OF or FOR TIMESTAMP AS OF; metadata tables $snapshots, $history, $manifests; procedures for rollback, expire, orphan cleanup | Security Built-in access-control engine with table/column-level ACLs; integrates with LDAP/OAuth; honors Lake Formation permissions and HMS Ranger policies | 25 / 32 |
Apache Impala v4.4+Analytics High-performance analytics engine with Iceberg v2 support, row-level operations via position deletes, and deep HMS integration for enterprise environments | Catalog Support HiveCatalog (HMS), HadoopCatalog, HadoopTables; other catalog-impl values can be registered in Hive site-config but no direct Glue/REST/Nessie support | Read/Write Full SELECT/INSERT/CTAS/ALTER/DROP on Iceberg tables with ACID snapshot-isolation on every commit | DML Operations INSERT INTO & INSERT OVERWRITE, DELETE (v2 position-delete files), UPDATE (v2 position deletes); MERGE planned/preview in CDW 1.5.5 | MoR/CoW Copy-on-Write for overwrites; Merge-on-Read for row-level UPDATE/DELETE with position-delete files; equality deletes not supported | Streaming No built-in streaming ingestion or CDC apply; reads latest Iceberg snapshot at query start time only | Format V3 Supports spec v1 and v2 tables only; spec v3 features like deletion vectors, row lineage, and new catalog RPCs not supported | Time Travel Manual snapshot queries via FOR SYSTEM_TIME AS OF / FOR SYSTEM_VERSION AS OF; DESCRIBE HISTORY & EXPIRE SNAPSHOTS commands available | Security Relies on Hive Metastore + Apache Ranger ACLs; storage-layer permissions (HDFS/S3/Ozone) apply; integrates with enterprise security infrastructure | NaN / 32 |