Реализация поддержки DDL части языка графовых запросов SQL/PGQ в Apache DataFusion

Apache DataFusion --- Open Source инфраструктура для создания компонентов, исполняющих запросы к данным, (query execution engine) на языке Rust, используемый преимущественно для решения аналитических задач (OLAP). Эдакий аналог LLVM, но для языков запросов.

Для аналитических задач часто используют графовые модели данных, поддержка которых на данный момент отсутствует в DataFusion. В связи с потребностями в поддержке графовых представлений, крупные СУБД на базе SQL, например, решения от Oracle, реализуют расширение SQL/PGQ (ISO), добавляющее в язык SQL поддержку графовых запросов. Предлагается пойти похожим путем для поэтапного внедрения поддержки графовых запросов в Apache DataFusion: в рамках работы необходимо дополнить существующую реализацию SQL DDL (Data Definition Language) частью расширения SQL/PGQ и оформить запрос на принятие изменений (pull request) в основной репозиторий проекта. А именно, будет необходимо решить следующие задачи.

  • Реализация расширения парсера DDL SQL/PGQ в DataFusion.
  • Реализация трансляции DDL SQL/PGQ в план по созданию/удалению/редактированию необходимых таблиц.
  • Тестирование реализации на СУБД с поддержкой DataFusion (например, Apache Arrow).
  • Написание необходимой документации.
Требования к студенту
  • Отличное знание языка Rust.
  • Базовое понимание принципов работы СУБД и языка SQL.
  • Основы алгоритмов синтаксического и лексического анализа (конечные автоматы, грамматики, рекурсивный спуск, LR, LL), опыт написания парсеров.
Уровень

2 курс


Руководитель

Григорьев Семен Вячеславович


Консультант

Grigorev Semyon


Источник

Кафедра системного программирования СПбГУ