Что происходит, когда база данных становится популярной? (с Ханнесом Мюляйзеном)
Developer Voices
0:00 / 0:00
Что происходит, когда база данных становится популярной? (с Ханнесом Мюляйзеном)
17 378 просмотров · 10 дней назад
Developer Voices
35,3 тыс. подписчиков
17 378 просмотров · 10 дней назад
Создание чего-то действительно нужного людям должно быть счастливым концом. Но за этим следует расплата: запросы на новые функции, о которых вы не просили, запросы на слияние, которые вы предпочли бы не поддерживать вечно, пользователи, требующие того, что вы поклялись никогда не создавать, и — если вам не повезет — компания, где отдел продаж тихо начинает решать, над чем работать инженерам. DuckDB потратила последние два с половиной года на проработку этого списка. Так как же оставаться командой разработчиков баз данных, когда успех постоянно пытается превратить вас во что-то другое?
Ханнес Мюляйзен, соавтор DuckDB, возвращается, чтобы рассказать о найденных ими решениях. Их решение проблемы нежелательных запросов на слияние заключалось в механизме расширения, который затем заставил их сделать каждую часть движка подключаемой — включая парсер, что означало удаление 20 000 строк грамматики yacc из Postgres и переписывание SQL-парсинга на основе PEG. Их решением проблемы, требовавшей клиент-серверной архитектуры, стал Quack — протокол, разработанный людьми, которые уже опубликовали статью о том, почему все существующие протоколы передачи данных в базы данных неверны. А их ответом на Apache Iceberg, после трёх лет его реализации, стал DuckLake: отказаться от файлов метаданных Avro и JSON и хранить метаданные в базе данных, исходя из того, что в REST-каталоге Iceberg всё равно есть Postgres.
Что приводит нас к новости, которую Ханнес сообщает в этом эпизоде: DuckDB Labs приобретается AWS, в то время как фонд DuckDB, проект и его лицензия остаются на своих местах. Возникает вопрос, почему прибыльная, самофинансируемая компания из 30 человек в Амстердаме согласилась на такую сделку, какие обязательства вы включаете в контракты, когда опасаетесь, что сегодняшние обещания могут пережить нынешнее руководство, и каково это — снова иметь начальника после пяти лет без него. Если вам интересно, как проект с открытым исходным кодом сохраняет свою техническую сущность после перехода в корпоративную среду — или вы просто хотите узнать, почему разбор SQL-запросов сложнее, чем разбор почти чего угодно другого, — у Ханнеса есть несколько хороших ответов.
---
Поддержите Developer Voices на Patreon: / developervoices
Поддержите Developer Voices на YouTube: https://www.youtube.com/@DeveloperVoi...
Наш предыдущий эпизод с Ханнесом: • DuckDB: How to Build 100x Faster Analytics...
DuckDB: https://duckdb.org/
DuckDB Foundation: https://duckdb.foundation/
DuckLabs (ранее DuckDB Labs): https://ducklabs.com/
DuckLake: https://ducklake.select/
Quack (клиент-серверный протокол DuckDB): https://duckdb.org/quack/
DuckDB v2.0: Ваша база данных заслуживает лучшего парсера: https://duckdb.org/2026/08/20/duckdb-...
Расширяемый во время выполнения Парсеры (статья CIDR 2025): https://duckdb.org/pdf/CIDR2025-muehl...
Не держите мои данные в заложниках (статья VLDB 2017): https://www.vldb.org/pvldb/vol10/p102...
cpp-peglib: https://github.com/yhirose/cpp-peglib
GNU Bison: https://www.gnu.org/software/bison/
PEP 617 – Новый парсер PEG для CPython: https://peps.python.org/pep-0617/
PRQL: https://prql-lang.org/
Apache Iceberg: https://iceberg.apache.org/
Apache Parquet: https://parquet.apache.org/
Apache Avro: https://avro.apache.org/
Apache Thrift: https://thrift.apache.org/
Protocol Buffers: https://protobuf.dev/
Apache Arrow Flight SQL: https://arrow.apache.org/docs/format/...
Amazon S3 Tables: https://aws.amazon.com/s3/features/ta...
SQLite: https://www.sqlite.org/
PostgreSQL: https://www.postgresql.org/
pandas: https://pandas.pydata.org/
Apache Spark: https://spark.apache.org/
Snowflake: https://www.snowflake.com/
Databricks: https://www.databricks.com/
CWI (Centrum Wiskunde & Informatica): https://www.cwi.nl/en/
DuckCon #7, Амстердам: https://duckdb.org/events/2026/06/24/...
Крис на Bluesky: https://bsky.app/profile/krisajenkins...
Крис на Mastodon: http://mastodon.social/@krisajenkins
Крис в LinkedIn: / krisjenkins
---
0:00 Вступление
4:42 Что такое DuckDB и зачем создавать её с нуля?
8:41 Создание быстрой и удобной для пользователя базы данных
15:05 Почему одноузловая архитектура лучше распределенной
20:30 Кряканье и почему протоколы передачи данных по базам данных ужасны
30:32 Скрытые издержки перехода на клиент-серверную архитектуру
37:33 Как работает механизм расширений DuckDB
42:40 Почему SQL — главный босс парсинга
50:14 Переписывание парсера DuckDB с помощью PEG
57:02 Айсберг и почему DuckDB пришлось его поддерживать
1:06:52 Проблемы с Avro
1:10:05 DuckLake: поместите метаданные в базу данных
1:15:29 От инструмента для ноутбука до корпоративного стека данных
1:23:43 Главная новость: DuckDB Labs присоединяется к AWS
1:32:31 Отсутствие обратной связи в реальных рабочих нагрузках
1:38:43 Каково это Снова начальник
1:41:44 Триггеры, хранимые процедуры и DuckDB 2.0
1:45:02 Заключение