Apache Iceberg vs Lance
Apache Iceberg
iceberg.apache.orgLance
lance.orgSide by side
| Figure | Apache Iceberg | Lance |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | Yes | — |
| macOS | Yes | — |
| Linux | Yes | — |
| API | Yes | — |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · Data Version Control Tools | 8.7 (#3) | 7.8 (#22) |
| Community support | The project provides community discussions through its dev mailing list and an Apache Iceberg Slack workspace. | The project links users to Discord and a mailing list for community communication. |
| Integrations | The documentation lists integrations including Kafka Connect, AWS Glue, AWS S3, Dell ECS, JDBC, and Nessie. | Documented integrations include DataFusion, Spark, DuckDB, Trino, PyTorch, TensorFlow, Ray, Hugging Face, PostgreSQL, and Flink. |
| License | The site identifies Apache License 2.0 as the license for Apache Iceberg. | The site identifies Lance as open source under the Apache-2.0 license. |
| Purpose | Apache Iceberg is an open table format for analytic datasets and a high-performance format for huge analytic tables. | Lance is an open lakehouse format for multimodal AI, built for data on object storage. |
| Schema evolution | Columns can be added, renamed, and reordered without rewriting the table. | Lance supports adding columns with backfill by writing new Lance files rather than rewriting the full table. |
| Support | The project community page lists public mailing lists, including user and developer lists. | The contributor guide directs users with questions to the Lance Discord for real-time support. |
Plans
In their own words
Apache Iceberg
Apache Iceberg is a free, open-source table format for analytic datasets, including very large analytic tables. It is self-hosted and works through APIs on Linux, macOS, and Windows, using storage you provide. Engines such as Spark, Trino, Flink, Presto, Hive, and Impala can use the same tables. SQL commands support merging new data, updating rows, and targeted deletes. Columns can be added, renamed, or reordered without rewriting a table. Hidden partitioning creates partition values and skips unnecessary partitions and files. Table snapshots can be queried by version or timestamp, and tables can be rolled back. Atomic updates, serializable isolation, consistent snapshot reads, and optimistic concurrency support multiple writers. Integrations include Kafka Connect and catalogs such as AWS Glue, JDBC, and Nessie. Encryption supports AWS, Azure, or GCP KMS clients, including custom clients. Version 1.12.0 removes Spark 3.4 and Flink 2.0 support. The Apache License 2.0 applies.