Learning Platform
Глоссарий Troubleshooting
Урок 14.03 · 12 мин
Начальный
reviewlearning pathRustCometPythoncommunitycareercertification

Обзор курса и дальнейшие шаги

Вы прошли путь от первого знакомства с Apache Arrow до реализации аналитического движка на DataFusion Python. Этот урок систематизирует пройденное и покажет, куда двигаться дальше.

Карта пройденного

Модули курса: M00--M14 (M10 не используется по дизайну)
M00Введение — структура курса, предварительные требования, среда разработки
M01Apache Arrow — columnar формат, типы данных, RecordBatch, Parquet, IPC
M02Архитектура DataFusion — LogicalPlan, PhysicalPlan, каталог, оптимизация
M03SQL и DataFrame API — синтаксис, оконные функции, подзапросы, CTEs, EXPLAIN
M04DataFusion Python — SessionContext, UDF/UDAF, интеграция с PyArrow/Pandas
M05Расширяемость — TableProvider, CatalogProvider, OptimizerRule, кастомные функции
M06Оптимизация запросов — rule-based, cost-based, predicate pushdown, join reordering
M07Apache Comet — DataFusion как ускоритель Spark, Native Shuffle, Parquet write
M08Распределённое выполнение — Ballista, DataFusion Ray, кластерные стратегии
M09Экосистема — FDAP-стек, Arroyo, OpenObserve, Cube, сообщество и будущее
M14Capstone Project — проектирование и реализация аналитического движка (M10-M13 — Performance, Lakehouse, Real-World; M10 пропущен по дизайну)

Модуль за модулем

M00: Введение --- структура курса, предварительные требования, среда разработки.

M01: Arrow Foundation (перейти) --- columnar формат Apache Arrow, типы данных, RecordBatch, Parquet, Arrow IPC, экосистема arrow-rs/PyArrow/ADBC. Фундамент всего стека.

M02: Архитектура DataFusion (перейти) --- общая картина: SQL/DataFrame вход, LogicalPlan, оптимизация, PhysicalPlan, выполнение. Каталог, MemoryPool, RuntimeEnv.

M03: SQL и DataFrame API (перейти) --- синтаксис SQL в DataFusion, DataFrame API, оконные функции, подзапросы, CTEs, EXPLAIN.

M04: DataFusion Python (перейти) --- Python-биндинги: SessionContext, чтение файлов, DataFrame, SQL, UDF/UDAF/UDWF, интеграция с PyArrow/Pandas/Polars, advanced-паттерны.

M05: Расширяемость (перейти) --- точки расширения: TableProvider, CatalogProvider, OptimizerRule, PhysicalPlanner, FileFormat. Кейсы: Spice AI, InfluxDB IOx, GreptimeDB, GlareDB.

M06: Оптимизация запросов (перейти) --- rule-based и cost-based оптимизация, predicate pushdown, join reordering, кастомные правила. Анализ планов, бенчмаркинг.

M07: Apache Comet (перейти) --- DataFusion как ускоритель Spark. Архитектура Comet, установка, Native Shuffle, Parquet native write, мониторинг.

M08: Распределённое выполнение (перейти) --- Ballista, DataFusion Ray, Comet в кластере, кастомная распределённая обработка. Выбор стратегии.

M09: Экосистема (перейти) --- FDAP-стек, Arroyo, OpenObserve, Cube/Tesseract, HoraeDB, dbt Fusion, Substrait, WASM, сообщество и будущее.

M11: Performance Tuning, M12: Lakehouse Integration, M13: Real-World Patterns --- production-аспекты: тюнинг, Iceberg/Delta, observability и runbooks. (M10 пропущен по дизайну: содержание перераспределено между M11 и M13.)

M14: Capstone --- проектирование и реализация аналитического движка. Docker-лаборатория. Этот модуль.

Три траектории развития

В зависимости от вашего фокуса, знания DataFusion применяются по-разному:

Траектории после курса
Rust: ядро DataFusionКонтрибьюция в ядро и создание кастомных движков — фундамент из M02, M05, M06
Comet: Spark-экосистемаУскорение Spark через Comet и миграция на нативное выполнение — фундамент из M07, M08
Python: data scienceDataFusion Python для ETL и аналитики — замена Pandas/Spark для Parquet-данных

Rust: ядро DataFusion

Если вы хотите строить системы на DataFusion или контрибьютить в сам проект:

  • Освойте Rust --- DataFusion написан на Rust. Начните с The Rust Programming Language.
  • Изучите arrow-rs --- Rust-реализация Apache Arrow. Библиотека используется повсеместно в DataFusion.
  • Модули M02 и M05 --- архитектура и расширяемость --- ваш главный фундамент. Понимание LogicalPlan, PhysicalPlan, TableProvider, OptimizerRule открывает путь к кастомным движкам.
  • Контрибьюция --- начните с good-first-issue на GitHub. Процесс описан в уроке 9.4.

Comet: Spark-экосистема

Если вы работаете со Spark и хотите ускорить существующие пайплайны:

  • Apache Comet (модуль 7) --- подключается к Spark как плагин, выполняет операции на DataFusion вместо JVM.
  • Native Shuffle и Parquet Write --- ключевые точки ускорения. Подробно в уроке 7.4.
  • Распределённое выполнение (модуль 8) --- понимание Ballista и DataFusion Ray помогает выбрать стратегию распределения.

Python: data science

Если ваш основной инструмент --- Python и вы работаете с данными:

  • DataFusion Python (модуль 4) --- полноценный query engine из pip install datafusion. Быстрее Pandas для аналитических запросов на Parquet-данных.
  • UDF/UDAF (урок 4.4) --- расширение движка бизнес-логикой без выхода из Python.
  • Capstone (этот модуль) --- паттерн построения аналитической системы, который можно адаптировать к реальным задачам.

Ресурсы сообщества

Официальные

Коммуникации

  • GitHub Discussions --- вопросы, RFC, обсуждение архитектуры
  • Slack --- Apache Arrow Slack, канал #datafusion
  • Mailing list --- [email protected] для PMC-дискуссий

Обучение

  • DataFusion User Guide --- официальное руководство пользователя
  • DataFusion Contributor Guide --- для контрибьюторов
  • SIGMOD paper --- академическое описание архитектуры DataFusion

Карьерные перспективы

DataFusion --- это знание, которое применимо в нескольких направлениях:

Инженерия данных --- построение ETL-пайплайнов на DataFusion Python, миграция с Pandas/Spark для Parquet-аналитики.

Системное программирование --- контрибьюция в DataFusion, построение кастомных аналитических движков на Rust. Компании, использующие DataFusion: InfluxData, Cube, Arroyo, OpenObserve и десятки других (урок 9.2).

Spark-экосистема --- Comet как ускоритель Spark. Знание внутренностей DataFusion помогает диагностировать проблемы производительности и оптимизировать конфигурацию.

Стартапы --- DataFusion как библиотека позволяет быстро построить query engine для специализированной ниши: time-series, observability, semantic layer, streaming. FDAP-стек (урок 9.1) --- архитектурный тезис для нового поколения аналитических систем.

Итоги курса

За 11 модулей и 56 уроков вы изучили:

  • Фундамент: Apache Arrow, columnar формат, Parquet, Arrow IPC
  • Движок: архитектура DataFusion, SQL и DataFrame API, оптимизация запросов
  • Python: DataFusion Python, UDF/UDAF, интеграция с PyArrow/Pandas
  • Расширяемость: TableProvider, CatalogProvider, кастомные функции и правила
  • Масштабирование: Comet для Spark, Ballista, DataFusion Ray
  • Экосистема: FDAP-стек, 10+ проектов на DataFusion, сообщество
  • Практика: capstone-проект с Docker-лабораторией
TIP

DataFusion --- активно развивающийся проект. Версии выходят каждые 2—4 недели. Следите за блогом и GitHub Discussions, чтобы быть в курсе изменений.

DataFusion --- это не только query engine. Это экосистема, сообщество и архитектурный подход к построению аналитических систем. Знания, полученные в этом курсе, применимы к десяткам проектов, построенных на FDAP-стеке.

Удачи в дальнейшем изучении.

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

Результат: 0 из 0
Аналитический
Вопрос 1 из 5. Курс описывает три траектории после обучения: Rust (ядро), Comet (Spark-экосистема), Python (data science). Какая комбинация модулей составляет базу для Rust-траектории?

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

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

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

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