Веб-ноутбук для интерактивной аналитики данных: SQL, Scala, Python и другие интерпретаторы работают в общих документах.
apache/iceberg
Высокопроизводительный открытый табличный формат для больших аналитических наборов данных, позволяющий Spark, Trino, Flink и Hive безопасно работать с одними и теми же таблицами.
- Звёзды
- 9,412
- Форки
- 3,665
- Открытые issues
- 909
- Последний коммит
- вчера
Что это?
Apache Iceberg — табличный формат для больших аналитических наборов данных. Он обеспечивает озёрам данных надёжность и простоту SQL-таблиц, позволяя нескольким движкам обработки одновременно работать с одними и теми же таблицами без риска повредить данные.
В этом репозитории находится основная Java-библиотека — эталонная реализация спецификации Iceberg. Она разделена на модули: публичный API, базовая реализация с поддержкой Avro, дополнительные модули для Parquet, ORC и Arrow, каталог на основе Hive metastore, а также модуль для чтения и записи таблиц напрямую из приложений на JVM. Здесь также есть интеграции с движками Spark, Flink и Hive.
Реализации на других языках поддерживаются в отдельных репозиториях, в том числе для Go, Python (PyIceberg), Rust и C++. Проект собирается с помощью Gradle и работает на Java 17 или 21.
Ключевые возможности
- 01Обеспечивает таблицам в озере данных надёжность, сравнимую с SQL-таблицами.
- 02Позволяет нескольким движкам, например Spark, Flink и Hive, одновременно работать с одними и теми же таблицами.
- 03Поддерживает файлы данных в форматах Avro, Parquet и ORC с помощью дополнительных модулей.
- 04Включает реализацию таблиц на основе Hive metastore.
- 05Предоставляет Java API для чтения и записи таблиц из приложений на JVM.
Сценарии использования
- Создание озера данных, в котором Spark и Trino запрашивают одни и те же аналитические таблицы.
- Потоковая запись данных в аналитические таблицы с помощью Flink, пока пакетные задания читают их.
- Добавление надёжности на уровне таблиц к наборам данных Parquet или ORC в стеке на базе Hive.
Быстрый старт
- 1
Клонируйте репозиторий
- 2
Соберите проект и запустите тесты с помощью Gradle (требуется Java 17 или 21)
./gradlew build
Что важно знать
- Для сборки и запуска тестов требуются Java 17 или 21 и Docker для набора тестов.
- В этом репозитории находится библиотека Java; это не автономная база данных и не приложение для конечных пользователей.
Темы
Частые вопросы
- Что такое iceberg?
- Высокопроизводительный открытый табличный формат для больших аналитических наборов данных, позволяющий Spark, Trino, Flink и Hive безопасно работать с одними и теми же таблицами. Apache Iceberg — табличный формат для больших аналитических наборов данных. Он обеспечивает озёрам данных надёжность и простоту SQL-таблиц, позволяя нескольким движкам обработки одновременно работать с одними и теми же таблицами без риска повредить данные.
- iceberg можно использовать бесплатно? Какая у него лицензия?
- iceberg распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- iceberg всё ещё поддерживается?
- Активно поддерживается. Последний коммит в iceberg — 6 нояб. 2026 г..
- Для чего можно использовать iceberg?
- Создание озера данных, в котором Spark и Trino запрашивают одни и те же аналитические таблицы. Потоковая запись данных в аналитические таблицы с помощью Flink, пока пакетные задания читают их. Добавление надёжности на уровне таблиц к наборам данных Parquet или ORC в стеке на базе Hive.
- Как установить iceberg?
- Клонируйте репозиторий Соберите проект и запустите тесты с помощью Gradle (требуется Java 17 или 21): ./gradlew build
- Где скачать iceberg?
- Исходный код и инструкции по установке — на GitHub: https://github.com/apache/iceberg
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Фреймворк для разработки потоковых приложений и cloud-native control plane для запуска и управления заданиями Apache Flink и Spark.
Вычислительное ПО промежуточного слоя, связывающее приложения с такими движками обработки данных, как Spark, Hive и Flink, через REST/WS/JDBC-интерфейсы.
Trino — распределённый SQL-движок для быстрых аналитических запросов к большим объёмам данных из разных источников.
MPP-движок запросов с открытым исходным кодом для аналитики за доли секунды в lakehouse и собственном хранилище, поддерживающий протокол MySQL.
Примеры кода, руководства и утилиты для создания ETL-заданий и интеграционных конвейеров данных на AWS Glue.