Learning Platform
Глоссарий Troubleshooting
Урок 10.04 · 12 мин
Начальный
communitycontributingPMCGSoCroadmapcareeropen source

Участие в проекте и будущее DataFusion

На протяжении курса мы рассмотрели DataFusion как технологию: Arrow-основы, SQL и DataFrame API, расширяемость, оптимизацию, распределённое выполнение, экосистему. В заключительном уроке модуля — как устроено сообщество, как начать контрибьютить и куда движется проект.

Структура сообщества Apache DataFusion

Как top-level проект ASF (Apache Software Foundation), DataFusion следует Apache governance model:

Структура управления DataFusion
Apache Software Foundation (ASF)Юридический зонтик — лицензия Apache 2.0, инфраструктура, trademark protection
PMC (Project Management Committee)Принятие ключевых решений — релизы, назначение коммиттеров, lazy consensus
CommittersПраво на merge PR и release management — назначаются PMC на основе качества вклада
ContributorsОткрытое участие — PR, issues, документация, ревью; 250+ контрибьюторов за период v45–v52

Ключевые принципы Apache governance

  • Lazy consensus: решение принимается, если никто не возразил в течение 72 часов
  • Merit-based advancement: коммиттеры и PMC-члены назначаются на основе качества и объёма вклада
  • Vendor-neutral: ни одна компания не контролирует проект — контрибьюторы из InfluxData, Apple, NVIDIA, Cloudflare, Cube и десятков других
  • Public communication: все обсуждения на [email protected] и GitHub
TIP

Vendor-нейтральность — одна из причин, почему столько компаний строят бизнес на DataFusion. В отличие от проектов, управляемых одной компанией (CockroachDB — Cockroach Labs, ClickHouse — ClickHouse Inc.), DataFusion гарантирует, что правила одинаковы для всех.

Как начать контрибьютить

Шаг 1: выбрать задачу

DataFusion использует GitHub Issues для трекинга задач. Метки для входа:

Метки для новых контрибьюторов
good first issueНебольшие, чётко описанные задачи на 2–8 часов — идеальный вход для новых участников
help wantedБолее крупные задачи на 1–5 дней — новые функции, рефакторинг, оптимизация

Шаг 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
NOTE

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
TIP

Ревью PR — один из самых ценных вкладов, особенно для коммиттеров. Если вы разобрались в части кодовой базы, ваш review помогает масштабировать пропускную способность проекта. Многие коммиттеры получили статус именно через качественные ревью.

Google Summer of Code (GSoC)

DataFusion участвует в GSoC — программе Google для студентов, работающих над open-source проектами. Темы GSoC 2025 отражают стратегические направления развития:

GSoC 2025: направления
Performance MonitoringАвтоматические бенчмарки на каждый PR — непрерывный regression detection
WASM CompilationКомпиляция DataFusion в wasm32-wasi — SQL в браузере и Edge-функциях
Correlated SubqueriesДекорреляция EXISTS, IN, scalar subqueries — оптимизация вложенных запросов
Python BindingsРасширение DataFusion Python API — новые UDF и улучшенная DataFrame API

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
NOTE

Roadmap DataFusion — живой документ. Приоритеты определяются тем, что контрибьюторы реально реализуют, а не централизованным планированием. Если вам важна конкретная функция — лучший способ ускорить её появление — реализовать самостоятельно или поддержать существующий PR ревью.

DataFusion как навык карьерного роста

DataFusion занимает уникальную нишу на рынке: это не просто инструмент, а фундаментальный компонент, из которого строятся десятки продуктов. Знание DataFusion открывает несколько карьерных траекторий:

Карьерные траектории с DataFusion
Database EngineerСтроите СУБД или аналитический движок поверх DataFusion — Rust, query optimization, storage
Data Infrastructure EngineerData pipelines и analytics на DataFusion — Rust/Python, Arrow, Parquet, distributed systems
Spark Migration SpecialistУскорение Spark через Comet или миграция на нативное DataFusion-выполнение
Open Source ContributorПуть contributor → committer → PMC — вклад в ядро DataFusion и подпроекты

Почему DataFusion ценен как навык

  1. Рост экосистемы: количество проектов на DataFusion удваивается каждый год — спрос на специалистов растёт
  2. Rust + Data Engineering: пересечение двух горячих областей рынка
  3. Глубина: понимание query engine internals (планирование, оптимизация, выполнение) — редкий и ценный навык
  4. Портативность: знания переносимы — те же концепции (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

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

Результат: 0 из 0
Концептуальный
Вопрос 1 из 5. Какой принцип Apache governance определяет, как принимаются решения в DataFusion PMC?

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

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

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

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