LakeFS
объединяет лучшие практики разработки программного обеспечения и применяет их к работе с данными.
LakeFS
обеспечивает контроль версий над озером данных и использует семантику, подобную git
, для фиксации версий данных и доступа к ним. Если вы знаете git
, с LakeFS
вы будете чувствовать себя привычно.
С помощью LakeFS
вы можете использовать в своем озере данных такие концепции, как:
branch
– для создания изолированной версии данных;commit
– для создания воспроизводимого снимка данных;merge
– чтобы объединять ваши изменения в одно атомарное состояние.У вас есть набор данных, и вы хотите увидеть, как он меняется с течением времени? Один из вариантов — сохранять полную копию всех данных при каждом изменении одного файла. Лучше всего это работает для небольших наборов данных.
Более экономичный и инкрементный подход к управлению версиями заключается в добавлении и поддержании двух полей метаданных в табличном наборе данных, часто называемых valid_from
и valid_to
.
При обновлении записи в этом наборе данных мы никогда не перезаписываем существующую запись. Вместо этого мы добавляем новые записи и обновляем поле valid_to
до текущей отметки времени для любой записи, которая была бы перезаписана.
Помимо того, что вы можете реализовать это в своих собственных ETL пайплайнах, это также, в частности, подход, который использует SQL Server для временных таблиц и то, что использует dbt для создания снимков.
Если первые два подхода можно резюмировать так: «Давайте добавим немного контроля версий к уже имеющимся у меня данным», то теперь пришло время совершенно иного подхода.
А что если относиться к управлению версиями данных как к объекту первого класса? Как к базовому и неотъемлемому свойству любых данных?
Чтобы сделать это возможным – как видно из ограничений вышеупомянутых подходов – необходимо, чтобы инструмент:
LakeFS решает эти задачи становясь некоторым уровнем абстракции над физическим объектным хранилищем данных.