Позволь Postgres владеть Iceberg-каталогом, а аналитику делегировать DuckDB. В итоге получаешь транзакционные обновления lakehouse плюс быстрые аналитические запросы.
Это не концепт. Именно так pg_lake работает уже сегодня.
pg_lake объединяет набор расширений и компонентов, которые позволяют напрямую из Postgres читать и изменять Iceberg-таблицы (и другие lakehouse-форматы). Для ускорения аналитических запросов используется DuckDB, запущенный в сайдкар-процессе pgduck_server, который общается с Postgres во время выполнения запроса.
Как это работает:
1. Приложение отправляет запрос в Postgres, чтобы посчитать нереализованный PnL (profit and loss) по тикеру Disney.
2. Postgres парсит запрос и определяет часть, где считается средняя цена на основе исторических данных из lakehouse.
3. Эта часть запроса проксируется в pgduck_server для ускоренного выполнения.
4. pgduck_server передает выполнение в DuckDB, который читает данные из lakehouse (переиспользуя кэш, если он есть).
5. DuckDB считает среднюю цену и возвращает результат в Postgres.
6. Postgres джойнит этот результат с локальными данными портфеля и считает нереализованный PnL.
7. Финальный результат возвращается приложению.
👉 @SQLPortal
Post #1540
2.18K