Поднимите свою игру с озером данных на новый уровень с помощью этих двух улучшений архитектуры.

Что такое базовое озеро данных?

Озеро данных состоит из двух основных элементов: хранилища объектов и хранимых объектов. Оно может выглядеть примерно так:

Даже с такой базовой настройкой ваши данные могут поддерживать все три основных варианта использования данных: 1. BI Analytics 2. API-интерфейсы с интенсивным использованием данных и 3. Алгоритмы машинного обучения.

Тот факт, что эта архитектура достаточно гибка, чтобы поддерживать все три, говорит о силе хранилищ объектов, особенно об их гибкости при интеграции с разнообразным набором механизмов обработки данных.

Распределенная обработка в памяти с помощью Spark? Без проблем. Столбчатое хранилище данных наподобие Снежинки? Кусок пирога. Механизм распределенных запросов типа Трино? Действуй.

Уровень 1: Современные форматы таблиц

По мере стремительного распространения озер данных в эту базовую архитектуру был внесен ряд улучшений. Первое и наиболее очевидное улучшение — заменить эти надоедливые CSV-файлы.

Популярным усовершенствованием файлов CSV был и остается столбчатый паркетный формат файла. Паркет отлично подходит для аналитических целей, поскольку он:

  • Столбчатый.
  • Высоко сжимаемый.
  • Возможность поддержки сложных вложенных типов данных.

Хотя это ключевые улучшения, объекты в хранилище объектов — какими бы оптимизированными они ни были — никогда не могут быть чем-то большим, чем свободный набор объектов (без использования отдельного сервиса хранилища метаданных).

Люди поняли, что в этих коллекциях объектов отсутствует абстракция таблицы. В базах данных таблицы повсюду, и все преимущества, которые они предоставляют, в равной степени применимы и к хранилищам объектов.

Здесь на помощь приходят форматы таблиц: Apache Iceberg, Apache Hudi и Delta Lake. При сохранении данных в этих форматах становится намного проще создавать таблицы в самом хранилище объектов — с определенной схемой, с историей версий и с возможностью >обновляется атомарно.

Это значительно повышает производительность и удобство использования озера данных. И достаточно скоро наше основное озеро данных будет выглядеть примерно так:

Как работают эти форматы таблиц? Ну, их идея заключается в том, чтобы вести журнал транзакций объектов, добавленных (и удаленных) из определенных префиксов в озере. Это обеспечивает важную гарантию атомарности операций записи и позволяет избежать ошибок запросов при одновременном чтении и записи данных.

Для получения более подробной информации, вот две статьи, которые углубляются в подробности:





Уровень 2: система управления версиями для данных

Хотя форматы таблиц сделали наше озеро данных гораздо более впечатляющим, мы еще не закончили его улучшать. Все преимущества современных форматов файлов, предоставляемые на уровне таблиц, могут быть расширены еще больше, чтобы охватить все наше озеро данных!

Как вы спрашиваете? С помощью инструмента управления источником данных, такого как lakeFS, который превращает корзину хранилища объектов в репозиторий данных, в котором мы можем отслеживать несколько наборов данных.

Хотя предыдущая архитектура еще свежа в вашей памяти, вот как выглядит наше озеро данных на этом уровне:

В иерархию папок добавляется новый слой, который соответствует названию ветки. LakeFS позволяет нам создавать, изменять и объединять столько веток, сколько мы хотим, что позволяет делать такие вещи, как:

  • Создавайте множество копий всех таблиц (без дублирования объектов!)
  • Сохраняйте снимки таблиц из нескольких коллекций в качестве коммитов и перемещайтесь между ними во времени.

Например, можно синхронизировать обновления двух таблиц Iceberg (или даже таблиц Hudi и Iceberg) в одном репозитории lakeFS посредством операции слияния из одной ветки в другую.

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

Дополнительные сведения об этих рабочих процессах, вдохновленных git, см. в следующей статье:



Подведение итогов

Если вы только начинаете свое путешествие по озеру данных, я надеюсь, что эта статья вдохновила вас на то, чтобы воспользоваться преимуществами последних усовершенствований озер данных.

Прогресс в области озер данных далек от завершения; на самом деле, большинство скажет, что это только начало! Благодаря тому, что вы будете на переднем крае, вы сможете воспользоваться преимуществами всех существующих и будущих инноваций.

Двигайтесь над черепахами, оказывается, что это объекты на всем пути вниз.