FDAP-стек и позиция DataFusion
На протяжении курса мы изучали DataFusion как query engine — от Arrow-основ до распределённого выполнения. В этом модуле мы взглянём на DataFusion в контексте экосистемы: где он находится, кто его использует, и почему он становится де-факто стандартом аналитических систем нового поколения.
FDAP: архитектурный тезис
FDAP — Flight, DataFusion, Arrow, Parquet — четыре проекта Apache, которые вместе формируют полный стек для построения аналитических систем:
Каждый уровень решает свою задачу:
- Parquet — как данные хранятся на диске (подробно — модуль 1, Arrow Foundation)
- Arrow — как данные представлены в памяти (подробно — модуль 1, экосистема Arrow)
- DataFusion — как данные обрабатываются (модули 2–8 этого курса)
- Flight — как данные передаются по сети между узлами и клиентами
До появления FDAP каждая аналитическая система изобретала свой формат хранения, свой wire protocol и свой query planner. FDAP предлагает стандартизированные, совместимые компоненты — как LAMP-стек стандартизировал веб-разработку в 2000-х.
DataFusion как «LLVM аналитических систем»
Аналогия с LLVM точно отражает архитектурную роль DataFusion:
Как LLVM позволяет создателям языков сосредоточиться на frontend (синтаксис, семантика), а оптимизации и кодогенерацию получить из коробки, DataFusion позволяет создателям баз данных сосредоточиться на хранилище и специфике предметной области, а SQL-парсинг, планирование и выполнение получить из коробки.
Результат: десятки проектов строятся поверх DataFusion, и каждое улучшение в ядре (новое правило оптимизации, ускорение join, поддержка нового типа данных) автоматически распространяется на всю экосистему.
Библиотека, не СУБД
Критическое различие DataFusion от других query engine:
Мы подробно разбирали два паттерна использования — библиотека (embedding) и фреймворк (extension) — в уроке по паттернам расширяемости. DataFusion предоставляет:
- SQL-парсер (полноценный SQL + расширения)
- Логический и физический планировщик
- Каскадный оптимизатор (модуль 6)
- Выполнение на Arrow RecordBatch
- Расширяемость через Rust traits
Вы добавляете: хранилище, сетевой протокол, управление пользователями, репликацию — то, что специфично для вашей системы.
ClickBench: #1 для Parquet-запросов
DataFusion v43.0.0 занял первое место в ClickBench — независимом бенчмарке аналитических систем, созданном командой ClickHouse:
ClickBench тестирует конкретный сценарий — аналитические запросы по одной широкой таблице в Parquet. DataFusion лидирует именно в этой нише. Для других сценариев (OLTP, многотабличные join, streaming) результаты будут другими. Бенчмарки — не рейтинг лучших СУБД, а инструмент для сравнения конкретных нагрузок.
Результат ClickBench важен не столько как «первое место», сколько как доказательство зрелости: DataFusion-библиотека конкурирует с production-оптимизированными СУБД вроде ClickHouse и DuckDB на их поле.
SIGMOD paper и академическое признание
DataFusion опубликовал статью на SIGMOD — одной из ведущих конференций в области баз данных. Статья описывает архитектуру расширяемого query engine и обосновывает дизайн-решения, которые мы разбирали в курсе:
- Модульный оптимизатор с пользовательскими правилами
- Trait-based расширяемость вместо плагинной системы
- Partitioned execution model с автоматическим параллелизмом
- Arrow как единый формат данных на всех этапах pipeline
Академическое признание дополняет производственную зрелость: DataFusion — не просто «быстрый проект на GitHub», а архитектурно обоснованная система с рецензированным дизайном.
Top-Level ASF-проект
С 2024 года DataFusion — top-level проект Apache Software Foundation (TLP), наравне с Kafka, Spark и Flink. Путь от подпроекта Arrow:
TLP-статус означает:
- Собственный PMC (Project Management Committee) — независимое управление
- Собственный релизный цикл — мажорные версии каждые 1–2 месяца (текущая: 53.0.0, релиз 2026-04-02)
- Отдельные подпроекты: Ballista, Comet, DataFusion Ray, DataFusion Python — каждый со своим темпом
- Масштаб сообщества: ~1600 PR от 206 контрибьюторов за 6 месяцев (между v40 и v45)
Скорость развития
DataFusion — один из самых активно развивающихся open-source проектов в data-инфраструктуре:
При этом DataFusion — не продукт одной компании. В отличие от Spark (Databricks), Flink (Alibaba/Confluent) или ClickHouse (ClickHouse Inc.), DataFusion не имеет единого корпоративного спонсора. Контрибьюторы приходят из InfluxData, Apple, NVIDIA, Cloudflare, Cube и десятков других компаний и индивидуальных разработчиков.
Отсутствие «DataFusion Company» — и сила, и ограничение. Сила: нейтральная площадка, любая компания может строить бизнес поверх DataFusion. Ограничение: нет единого roadmap-владельца, приоритеты определяются консенсусом сообщества.
Место DataFusion в ландшафте
Мы уже подробно разобрали паттерны расширения InfluxDB, GreptimeDB, GlareDB и Spice AI в уроке по расширяемости, а стратегии распределения Ballista, DataFusion Ray и Comet — в модуле 8. В следующих уроках этого модуля мы рассмотрим проекты экосистемы, которые ещё не были охвачены в курсе.
Итоги
- FDAP (Flight/DataFusion/Arrow/Parquet) — стандартизированный стек для аналитических систем нового поколения
- DataFusion — «LLVM аналитики»: общий оптимизатор и executor, поверх которого строятся специализированные системы
- Библиотека, не СУБД: DataFusion предоставляет парсер, оптимизатор и executor — хранилище и сервер добавляете вы
- ClickBench #1 для Parquet-запросов — DataFusion конкурирует с production СУБД
- Top-level ASF проект с 2000+ PR / 250+ контрибьюторов за период v45–v52
- Нейтральная площадка без единого корпоративного спонсора — десятки компаний строят бизнес поверх DataFusion