InnoDB и Iceberg: как я переписал аналитику с OLTP на OLAP

Same Job, Two Engines: InnoDB and Iceberg Internals

InnoDB и Iceberg: как я переписал аналитику с OLTP на OLAP

Автор делится опытом миграции аналитического пайплайна с InnoDB на стек Iceberg, MinIO и Polaris. В первой версии он использовал OLTP-движок, но после осознания, что аналитические запросы читают лишь 2–3 столбца из множества, решил перейти на OLAP. Статья подробно разбирает внутренности обоих движков: гарантии InnoDB, включая MVCC и undo log, и архитектуру lakehouse с манифестами, data-файлами и split planning.

Без этого знания я спроектировал свою базу данных InnoDB, используя фундаментальный принцип OLAP.
  1. sgarland

    > Три гарантии InnoDB

    Строки хранят все столбцы вместе

    Не гарантируется. Форматы строк DYNAMIC (по умолчанию) и COMPRESSED [0] могут выносить большие значения столбцов переменной длины в off-page записи. В приведённом примере этого не произошло бы, но это не гарантия как таковая. Это примерно эквивалентно Postgres' TOAST, хотя порог TOAST по умолчанию в Postgres составляет 1/4 страницы (2 KiB при размере страницы по умолчанию 8 KiB), тогда как в InnoDB — 1/2 страницы (8 KiB при размере страницы по умолчанию 16 KiB).

    0: https://dev.mysql.com/doc/refman/9.7/en/innodb-row-format.ht...

  2. wood_spirit

    Мне нравится взгляд на личный путь изучения нового и обмена этим.

    В качестве следующих шагов я бы предложил попробовать DuckDB. Подозреваю, что на таком масштабе он уделает spark и прочих. Всегда полезно изучать разные уголки ландшафта данных.

Ещё за этот день

2026-10-14