Learning Platform
Глоссарий Troubleshooting
Урок 10.01 · 14 мин
Средний
FDAP stackFlightDataFusionArrowParquetClickBenchSIGMODASFlibrary vs framework

FDAP-стек и позиция DataFusion

На протяжении курса мы изучали DataFusion как query engine — от Arrow-основ до распределённого выполнения. В этом модуле мы взглянём на DataFusion в контексте экосистемы: где он находится, кто его использует, и почему он становится де-факто стандартом аналитических систем нового поколения.

FDAP: архитектурный тезис

FDAP — Flight, DataFusion, Arrow, Parquet — четыре проекта Apache, которые вместе формируют полный стек для построения аналитических систем:

FDAP-стек
Arrow Flight / Flight SQLВысокоскоростной сетевой протокол поверх gRPC для передачи Arrow-данных без сериализации
DataFusionРасширяемый query engine — парсит SQL, строит план, оптимизирует и выполняет на Arrow-данных
Apache ArrowКолоночный формат в памяти — zero-copy обмен между языками и системами
Apache ParquetКолоночный формат на диске — сжатие, row groups, predicate pushdown из метаданных

Каждый уровень решает свою задачу:

  • Parquet — как данные хранятся на диске (подробно — модуль 1, Arrow Foundation)
  • Arrow — как данные представлены в памяти (подробно — модуль 1, экосистема Arrow)
  • DataFusion — как данные обрабатываются (модули 2–8 этого курса)
  • Flight — как данные передаются по сети между узлами и клиентами

До появления FDAP каждая аналитическая система изобретала свой формат хранения, свой wire protocol и свой query planner. FDAP предлагает стандартизированные, совместимые компоненты — как LAMP-стек стандартизировал веб-разработку в 2000-х.

DataFusion как «LLVM аналитических систем»

Аналогия с LLVM точно отражает архитектурную роль DataFusion:

Аналогия: LLVM vs DataFusion
LLVM (компиляторы)Фреймворк компиляторов — общий IR позволяет языкам переиспользовать оптимизации и backend-ы
DataFusion (аналитика)Аналог LLVM — общий LogicalPlan позволяет системам переиспользовать оптимизатор и executor

Как LLVM позволяет создателям языков сосредоточиться на frontend (синтаксис, семантика), а оптимизации и кодогенерацию получить из коробки, DataFusion позволяет создателям баз данных сосредоточиться на хранилище и специфике предметной области, а SQL-парсинг, планирование и выполнение получить из коробки.

Результат: десятки проектов строятся поверх DataFusion, и каждое улучшение в ядре (новое правило оптимизации, ускорение join, поддержка нового типа данных) автоматически распространяется на всю экосистему.

Библиотека, не СУБД

Критическое различие DataFusion от других query engine:

DataFusion vs традиционные СУБД
Традиционная СУБДМонолитная архитектура — хранилище, протокол и движок поставляются единым пакетом
DataFusionМодульная библиотека — берёте парсер, оптимизатор, executor; хранилище и сервер добавляете сами

Мы подробно разбирали два паттерна использования — библиотека (embedding) и фреймворк (extension) — в уроке по паттернам расширяемости. DataFusion предоставляет:

  • SQL-парсер (полноценный SQL + расширения)
  • Логический и физический планировщик
  • Каскадный оптимизатор (модуль 6)
  • Выполнение на Arrow RecordBatch
  • Расширяемость через Rust traits

Вы добавляете: хранилище, сетевой протокол, управление пользователями, репликацию — то, что специфично для вашей системы.

ClickBench: #1 для Parquet-запросов

DataFusion v43.0.0 занял первое место в ClickBench — независимом бенчмарке аналитических систем, созданном командой ClickHouse:

ClickBench: DataFusion на Parquet
ClickBench результаты (Parquet, single node)Независимый бенчмарк от команды ClickHouse — 43 аналитических запроса по 100M строк
NOTE

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:

Путь DataFusion в ASF
2017: донация в ArrowПервоначальная донация кодовой базы в подпроект Apache Arrow
2019–2023: подпроект ArrowРост сообщества и функциональности под зонтиком Arrow
2024: Top-Level ProjectСобственный PMC, независимые релизы, полный контроль над roadmap

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-инфраструктуре:

Активность сообщества (v45–v52)
Pull RequestsСреднее ~270 PR в месяц — один из самых активных data-инфраструктурных проектов
КонтрибьюторыРазработчики из InfluxData, Apple, NVIDIA, Cloudflare, Cube и десятков других компаний
Релизный циклЧастые мажорные релизы обеспечивают быструю доставку оптимизаций пользователям

При этом DataFusion — не продукт одной компании. В отличие от Spark (Databricks), Flink (Alibaba/Confluent) или ClickHouse (ClickHouse Inc.), DataFusion не имеет единого корпоративного спонсора. Контрибьюторы приходят из InfluxData, Apple, NVIDIA, Cloudflare, Cube и десятков других компаний и индивидуальных разработчиков.

TIP

Отсутствие «DataFusion Company» — и сила, и ограничение. Сила: нейтральная площадка, любая компания может строить бизнес поверх DataFusion. Ограничение: нет единого roadmap-владельца, приоритеты определяются консенсусом сообщества.

Место DataFusion в ландшафте

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

Проверьте понимание

Результат: 0 из 0
Концептуальный
Вопрос 1 из 5. Что означает аббревиатура FDAP и какую роль играет каждый компонент в стеке?

Закончили урок?

Отметьте его как пройденный, чтобы отслеживать свой прогресс

Войдите чтобы оценить урок

Прогресс модуля
0 из 4