TGViewer
Lost in Data Lost in Data @dwh_expert · 442 subscribers
Post #215 363
Lost in Data Не хочу забывать любимый (не шучу) свой дата-инжиниринг. Почему классно быть ДЕ сегодня? Потому что у нас огромный выбор разных новых технологий и нейросети, чтобы быстро их освоить. Особенно мне нравится идея DuckDB — SQL движка без привязки к конкретной…
DuckLake

Давно хочу написать об утином озере, но я не решался на это, пока сам не взялся за построение своего собственного DuckLake.

Если коротко, то DuckLake — это технология построения простого DataLakeHouse на основе duckdb. Это мощное, очень лёгкое для старта и относительно простое в масштабировании решение.

Речь по факту о построении аналитического хранилища, но без привычных нам СУБД типа Postgres, ClickHouse и тд.

Поговорим о том, из чего состоит аналитическое хранилище.

Как правило оно состоит из табличных данных. Вопрос в том, как их хранить. Пока попытаемся отвлечься от известных нам СУБД, иначе было бы всё слишком просто.

В чём хранить таблички? Например, в csv-файлах. Но так выходит не очень оптимально, однородные данные в одной колонке можно же как-то сжимать. Тогда будем хранить в другом формате, в формате parquet-файлов с поколоночным сжатием.

А если одна таблица, например, fact_orders, разбита на много отдельных паркетов? Значит нужен слой метаданных, т.е. данных о данных, как наши физические паркет-файлики на диске складываются в единые логические таблицы.

Теперь вспоминаем, что для работы с паркетфайлами есть шустрый SQL-движок duckdb. Соединяем duckdb с отдельным слоем хранения метаданных, например, в обычном Postgres и получаем... DuckLake.

Итак, нам для построения простейшего DataLakeHouse хватит всего трёх ингредиентов:

1) диск, где храним данные в паркетах
2) база данных для хранения каталога метаданных
3) SQL-движок duckdb для выполнения запросов к данным

DuckLake в свою очередь является расширением к duckdb, которое позволяет построить всё вышеперечисленное.

При этом назвать duckdb назвать привычной нам СУБД сложно. Мы не подключаемся к duckdb как какой-то внешней базе данных. Мы поднимаем свой экземпляр duckdb и говорим, откуда ему брать данные и метаданные для DuckLake. После того, как duckdb подключился к конкретному DuckLake, мы можем работать с ним как с обычным DWH на любой другой реляционной СУБД. Т.е. писать SQL-запросики к табличкам.

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

Первые впечатления от построения своего DuckLake — офигеть как всё просто. SQL-диалект гибкий, полный готовых функций на любой случай жизни, а также легко подключаться к любым внешним источникам, никакой ETL инструмент другой и не нужен. Но далее всплывают, конечно, подводные камни: как настроить лимиты по памяти, как подключиться извне через IDE или BI-инструмент, почему падают параллельные DDL-запросы...

Технология пока сыра, но я в ней вижу большое будущее для средних и не очень компаний. Продолжение следует!
  • ❤ 5
  • 🔥 4
  • 👍 2
  • 🤯 1
More from @dwh_expert
  1. Sep 15, 2026У канала теперь новая аватарка. Если в 2023 году, когда я начал вести свой канал, моим осн…
  2. Sep 15, 2026Channel photo updated
  3. Sep 14, 2026Небольшое продолжение про DuckLake. Если коротко: пока что на построение DuckLake как ODS/…
  4. Sep 2, 2026Заметил, что англоязычное инфополе куда более техноскептично или даже технопессимистично.…
  5. Aug 27, 2026Минутка нет худа без добра. Вообще говоря, ув. друзья, у текущей пандемии нейрослопа есть…
  6. Aug 26, 2026Проклятый слоп Наши возможности работы с нейросетями скорее ограничены нашей фантазией и ц…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →