Раздел 26 · Data Engineering

Data lake, warehouse и lakehouse

junior~15 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

В прошлом уроке «Гонец» решил, как часто возить данные. Теперь вопрос, куда их класть. Заказов немного, около 340 в день, но координаты курьеров идут каждые десять секунд: это миллионы точек в месяц. Аналитик хочет писать к ним SQL, data scientist хочет сырые точки для модели времени доставки, а финансовый директор хочет, чтобы всё это стоило поменьше. Одного места на всех может не хватить.

Кладовка, библиотека и библиотека с кладовкой

В кладовку можно сложить что угодно: коробки с фотографиями, старые журналы, детали от шкафа. Места много, складывать быстро, и ничего не надо сортировать. Но если через год понадобится одна фотография, придётся перебрать все коробки. А если складывать без разбора несколько лет, кладовка превратится в свалку, где никто ничего не найдёт.

В библиотеке каждая книга на своей полке, в каталоге и с номером. Найти нужную можно за минуту. Но прежде чем книга попадёт на полку, её надо описать и решить, куда поставить. А полки дороже коробок.

Lakehouse это кладовка, к которой прикрутили библиотечный каталог: вещи лежат в тех же дешёвых коробках, но у каждой коробки есть карточка, и по каталогу её находят так же быстро, как книгу.

Три способа хранить

Хранилище данных это библиотека. Данные лежат таблицами со строгой схемой: колонки, типы, ограничения. Схему задают до загрузки, а строка, которая в неё не влезла, не загрузится. Это называют схема при записи.

Озеро данных это кладовка. Файлы в любом формате лежат в объектном хранилище вроде S3. Положить можно что угодно и очень дёшево, а разбираться со структурой будет тот, кто читает. Это схема при чтении.

Lakehouse соединяет оба. Данные лежат файлами в том же S3, но рядом лежит каталог: какие файлы составляют таблицу, какая у неё схема, какая версия свежая. По этому каталогу SQL-движок читает файлы как обычную таблицу и даже меняет её транзакциями.

урок из курса

Урок из курса «Data Engineering». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.