Apache Iceberg — open table format для huge analytic tables. Added ACID transactions, schema evolution, time travel, partitioning flexibility к Parquet/ORC files на S3. Started at Netflix (2018), ASF top-level project. 2024 adoption: Snowflake Iceberg tables, BigQuery, Databricks, AWS S3 Tables native support. Competitor to Delta Lake (Databricks).
Ниже: подробности, пример, смежные термины, FAQ.
Бесплатный онлайн-инструмент — проверка HTTP-заголовков: результат мгновенно, без регистрации.
-- Spark + Iceberg
CREATE TABLE prod.db.sales (
id bigint,
date date,
amount decimal(18,2)
) USING iceberg
PARTITIONED BY (month(date));
-- Time travel
SELECT * FROM prod.db.sales
FOR TIMESTAMP AS OF '2026-03-01 00:00:00';
-- Schema evolution
ALTER TABLE prod.db.sales ADD COLUMN region string;Apache Iceberg — это формат таблиц для lakehouse-архитектур, который обеспечивает управление большими объемами данных, оптимизацию запросов и поддержку ACID-транзакций. Iceberg позволяет пользователям эффективно работать с данными, хранящимися в облачных хранилищах, таких как Amazon S3 и Google Cloud Storage, и предоставляет возможность обрабатывать данные с помощью различных движков, включая Apache Spark и Presto.
Apache Iceberg предлагает ряд преимуществ для пользователей, работающих с lakehouse-архитектурами:
Для того чтобы начать использовать Apache Iceberg, необходимо выполнить несколько шагов по настройке окружения. Рассмотрим пример настройки Iceberg с использованием Apache Spark.
Для работы с Iceberg вам потребуется установить необходимые библиотеки. В файле build.sbt добавьте следующие зависимости:
libraryDependencies += "org.apache.iceberg" %% "iceberg-spark3" % "0.13.0"После установки зависимостей можно создать таблицу Iceberg. Используйте следующий код:
import org.apache.iceberg.spark.SparkTableUtil
import org.apache.spark.sql.SparkSession
val spark = SparkSession.builder()
.appName("IcebergExample")
.config("spark.sql.extensions", "org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions")
.getOrCreate()
val df = spark.range(0, 1000)
.toDF("id")
df.write
.format("iceberg")
.mode("overwrite")
.save("my_catalog.db.my_table")Теперь вы можете выполнять запросы к созданной таблице:
val result = spark.read
.format("iceberg")
.load("my_catalog.db.my_table")
result.show()Таким образом, вы можете легко интегрировать Apache Iceberg в свои процессы обработки данных, используя стандартные инструменты, такие как Apache Spark.
Iceberg: open (ASF), multi-engine (Spark, Trino, Flink, Snowflake). Delta: Databricks-led, Spark-first. 2025+ convergence (Delta Uniform reads Iceberg).
Apache Spark, Trino, Dremio, Snowflake, Starburst, Presto, DuckDB, AWS Athena, Google BigQuery. Почти все analytic engines 2025+.
Yes — Netflix PB-scale с 2019. Apple, Expedia, Pinterest, Adobe — все используют. ACID delivered, schema evolution tested в prod.
Бесплатный тариф — 10 мониторов, проверки каждые 5 мин, без карты. Платные тарифы — интервал от 1 минуты и проверки из нескольких регионов.