Облачная платформаEvolution

Nessie

Эта статья полезна?

Nessie — сервис для отслеживания изменений и управления версиями данных. Разработан на базе решения с открытым исходным кодом Project Nessie от Apache Software Foundation и включает интеграцию с форматом таблиц Iceberg.

В Nessie используются операции, аналогичные методам Git: ветвление, тегирование, атомарные коммиты.

Метаданные Nessie включают данные о таблицах, схемах, партициях, манифесты файлов, версии метаданных (снапшоты).

Преимущества Nessie

  • Масштабируемость: поддержка миллионов таблиц, тысяч коммитов в секунду благодаря реализации в распределенных хранилищах. Каждая таблица, в свою очередь, может содержать миллионы файлов.

  • Контроль версий: журнал коммитов фиксирует каждый коммит, поддерживает ветки и теги, обеспечивает полную трассируемость и возможность мгновенного отката к предыдущей версии без копирования файлов.

  • Разделение ответственности: Nessie управляет транзакциями и историей изменений и хранит только ссылки на версии таблиц Iceberg, а сами метаданные таблиц остаются в объектном хранилище. Это позволяет масштабировать журнал коммитов независимо от объема файлов.

Основные понятия Nessie

Основные понятия Nessie аналогичны тем, что используются в системах управления версиями кода, например в Git.

Коммит (commit)

Атомарное изменение группы файлов с данными.

Хэш (hash)

Идентификатор коммита.

Мультитабличная транзакция (multi-table transaction)

Коммит, который включает изменения файлов с данными, содержащихся во множестве таблиц.

Ветка (branch)

Обозначенное именем указание на коммит. Новый коммит в ветку автоматически обновляет ее до нового коммита.

Тег (tag)

Обозначенное именем указание на коммит. Не обновляется автоматически.

Мердж (merge)

Объединение двух коммитов. Как правило, означает применение изменений из ветки-источника к другой ветке.

См.также

Больше информации на сайте проекта Nessie