Участие в проекте и будущее DataFusion
На протяжении курса мы рассмотрели DataFusion как технологию: Arrow-основы, SQL и DataFrame API, расширяемость, оптимизацию, распределённое выполнение, экосистему. В заключительном уроке модуля — как устроено сообщество, как начать контрибьютить и куда движется проект.
Структура сообщества Apache DataFusion
Как top-level проект ASF (Apache Software Foundation), DataFusion следует Apache governance model:
Ключевые принципы Apache governance
- Lazy consensus: решение принимается, если никто не возразил в течение 72 часов
- Merit-based advancement: коммиттеры и PMC-члены назначаются на основе качества и объёма вклада
- Vendor-neutral: ни одна компания не контролирует проект — контрибьюторы из InfluxData, Apple, NVIDIA, Cloudflare, Cube и десятков других
- Public communication: все обсуждения на [email protected] и GitHub
Vendor-нейтральность — одна из причин, почему столько компаний строят бизнес на DataFusion. В отличие от проектов, управляемых одной компанией (CockroachDB — Cockroach Labs, ClickHouse — ClickHouse Inc.), DataFusion гарантирует, что правила одинаковы для всех.
Как начать контрибьютить
Шаг 1: выбрать задачу
DataFusion использует GitHub Issues для трекинга задач. Метки для входа:
Шаг 2: локальная настройка
# Клонирование и сборка
git clone https://github.com/apache/datafusion.git
cd datafusion
cargo build
# Запуск тестов
cargo test
# Запуск конкретного теста
cargo test -p datafusion --test sql_integration -- test_name
# Проверка форматирования и clippy
cargo fmt --all -- --check
cargo clippy --all-targets --all-features -- -D warnings
DataFusion — крупный Rust-проект. Первая полная сборка занимает 5–15 минут в зависимости от машины. Последующие инкрементальные сборки — секунды. Рекомендуемый минимум: 16 GB RAM, SSD.
Шаг 3: workflow
1. Найти issue → оставить комментарий "I'd like to work on this"
2. Fork → branch → implement
3. Написать тесты (обязательно!)
4. cargo fmt && cargo clippy
5. Открыть PR с описанием: What / Why / How
6. Code review от коммиттера (обычно 1–3 дня)
7. Address feedback → merge
Категории вклада
Код — не единственный способ контрибьютить:
| Категория | Примеры |
|---|---|
| Код | Новые функции, исправления, оптимизации, рефакторинг |
| Тесты | Покрытие edge cases, regression тесты, бенчмарки |
| Документация | Улучшение user guide, examples, API-документация |
| Review | Ревью PR других контрибьюторов (высоко ценится!) |
| Issues | Баг-репорты с минимальным воспроизведением, feature requests |
| Помощь пользователям | Ответы на вопросы в GitHub Discussions, Discord, mailing list |
Ревью PR — один из самых ценных вкладов, особенно для коммиттеров. Если вы разобрались в части кодовой базы, ваш review помогает масштабировать пропускную способность проекта. Многие коммиттеры получили статус именно через качественные ревью.
Google Summer of Code (GSoC)
DataFusion участвует в GSoC — программе Google для студентов, работающих над open-source проектами. Темы GSoC 2025 отражают стратегические направления развития:
GSoC — отличный вход в проект для студентов: менторство от коммиттеров, чёткие deliverables, оплата от Google.
Roadmap: куда движется DataFusion
DataFusion не имеет формального roadmap одной компании. Вместо этого — обсуждения на GitHub (EPIC issues) и рассылке. Основные темы Q1 2026:
Производительность
- Непрерывный performance monitoring — автоматические бенчмарки на каждый PR
- Оптимизация join-ов — улучшение hash join для больших таблиц
- Reduce dependency tree — уменьшение числа зависимостей для быстрой компиляции и меньшего бинарника
SQL-совместимость
- Коррелированные подзапросы — декорреляция
EXISTS,IN, scalar subqueries - Window function extensions — RANGE frames, GROUPS mode
- DML — улучшение INSERT INTO, COPY TO
Экосистема
- WASM target — компиляция в wasm32-wasi
- Substrait — расширение покрытия операторов
- Python bindings — паритет с Rust API для ключевых операций
- Улучшение extensibility API — стабилизация trait-интерфейсов для external embedders
Roadmap DataFusion — живой документ. Приоритеты определяются тем, что контрибьюторы реально реализуют, а не централизованным планированием. Если вам важна конкретная функция — лучший способ ускорить её появление — реализовать самостоятельно или поддержать существующий PR ревью.
DataFusion как навык карьерного роста
DataFusion занимает уникальную нишу на рынке: это не просто инструмент, а фундаментальный компонент, из которого строятся десятки продуктов. Знание DataFusion открывает несколько карьерных траекторий:
Почему DataFusion ценен как навык
- Рост экосистемы: количество проектов на DataFusion удваивается каждый год — спрос на специалистов растёт
- Rust + Data Engineering: пересечение двух горячих областей рынка
- Глубина: понимание query engine internals (планирование, оптимизация, выполнение) — редкий и ценный навык
- Портативность: знания переносимы — те же концепции (LogicalPlan, PhysicalPlan, AnalyzerRule) встречаются в Spark, Trino, Presto, DuckDB
Как продолжить обучение после курса
| Направление | Следующий шаг |
|---|---|
| Rust и DataFusion core | Реализовать кастомный TableProvider для реального источника данных |
| Python и DataFusion | Построить аналитический pipeline на DataFusion Python (модуль 4) |
| Distributed systems | Развернуть Ballista кластер, прогнать TPC-H (модуль 8) |
| Spark ускорение | Настроить Comet в Spark-кластере, сравнить с нативным выполнением (модуль 7) |
| Open Source | Найти good first issue на GitHub, отправить первый PR |
Ресурсы сообщества
| Ресурс | Описание |
|---|---|
github.com/apache/datafusion | Основной репозиторий, issues, PR, discussions |
datafusion.apache.org | Документация, user guide, contributor guide |
[email protected] | Рассылка разработчиков (design decisions, releases) |
| Discord | Канал #datafusion в Apache Arrow Discord сервере |
datafusion.apache.org/blog | Блог с release notes и техническими статьями |
Итоги модуля
В этом модуле мы рассмотрели DataFusion в контексте экосистемы:
- FDAP-стек и позиция DataFusion как «LLVM аналитики» — библиотека, не СУБД
- Проекты экосистемы: от СУБД (InfluxDB, GreptimeDB, HoraeDB) до стриминга (Arroyo) и observability (OpenObserve)
- Инструменты: datafusion-dft (CLI/TUI), dbt Fusion, Substrait, WASM, contrib-экосистема
- Сообщество Apache: PMC, коммиттеры, vendor-neutral governance, GSoC
- Contribution workflow: issues → fork → PR → review → merge
- DataFusion как карьерный навык: database engineering, data infrastructure, Spark migration, open source