DuckDB и DuckLake: путь инженера

источник ↗ ·

История data engineer Matt Martin о переходе от сложных big data-платформ к простому SQL-инструменту DuckDB и его расширению DuckLake для аналитики без тяжёлой инфраструктуры.

privacy

Эта заметка участвует в semantic memory.

AI Summary

🚀 TL;DR Matt Martin, data engineer с 2008 года, после Teradata, BigQuery и Spark перешёл на DuckDB и DuckLake: они позволяют выполнять аналитику над CSV, Parquet, Iceberg и S3 без JVM, сложной настройки и тяжёлой инфраструктуры.

📖 Что это такое DuckDB — встраиваемая аналитическая СУБД с SQL-интерфейсом, работающая локально и с облачными хранилищами. DuckLake — надстройка над DuckDB, хранящая метаданные lakehouse в обычной SQL-БД вместо множества JSON-файлов Iceberg.

🔑 Ключевые факты

  • Карьера началась в 2008 с Excel → VBA → SQL Server → Teradata → BigQuery → Spark.
  • DuckDB: импорт CSV двумя строками, работа с S3 через s3://, поддержка Iceberg.
  • DuckLake: метаданные в SQL → планирование запросов <1 мс вместо секунд.
  • DuckDB 2.0: динамический ATTACH (env-переменные), асинхронный I/O (67–70 % ускорение), протокол Quack.
  • Автор пишет книгу про DuckLake и ведёт Substack.

⚙️ Как это работает

  1. Установка: import duckdb; duckdb.sql("FROM 'sales.csv'").
  2. S3: CREATE SECRET (TYPE s3, PROVIDER credential_chain);.
  3. Iceberg: INSTALL iceberg; LOAD iceberg;.
  4. DuckLake: ATTACH 'ducklake:metadata.ducklake' AS my_lake (DATA_PATH 's3://bucket/prefix/');.
  5. Glue-каталог: три команды вместо 20+ строк Spark-конфигурации.
  6. DuckDB 2.0: ATTACH getenv('AWS_ACCOUNT_ID'), чтение 1000–10 000 файлов на 67–70 % быстрее.

💡 Вывод и значение DuckDB и DuckLake показывают, что для большинства аналитических задач не нужна распределённая инфраструктура: достаточно SQL, объектного хранилища и минимальной настройки. Принцип: добавлять сложность только когда требования workload это оправдывают.

📌 Важные детали

  • Matt Martin, Substack: статьи про DuckDB/DuckLake.
  • Контакт для историй: stories@duckdb.org.
  • DuckDB 2.0 LTS “Cinnamon Teal” в стадии alpha-тестирования.
  • Quack: HTTP-протокол для удалённого подключения DuckDB-инстансов.

Мои мысли

graph

Карта связей