Алексей Озерицкий
Компания: Яндекс
Сервис YQL предоставляет доступ к системам хранения и обработки данных с помощью SQL-диалекта. Изначально SQL-запросы исполнялись с помощью Map/Reduce операций в системе YTSaurus.
Эта простая и надежная схема имеет ряд недостатков, которые привели к появлению собственного движка выполнения запросов внутри YQL.
Движок делит запрос на стадии, а каждую стадию на задачи. Каждая задача выполняется на узле кластера. Задачи передают результаты вычислений друг другу по сети. Данный подход отличается от Map/Reduce-подхода, в котором данные между этапами передаются с помощью записи на диск. Из интересных возможностей движка стоит отметить кросскластерные запросы (например, можно делать запросы в которых одновременно присутствуют таблицы из кластеров ClickHouse и YTSaurus), возможность выполнения пользовательских функций на различных языках программирования.
Движок доступен в виде open source-библиотеки в рамках проекта YDB Platform. Библиотека предоставляет примитивы для работы с AST-деревом запроса, вычислительные примитивы, а также набор микросервисов для запуска и управления задачами на кластере. На текущий момент библиотека работает в рамках трех инсталляций: внутренний YQL-сервис, YDB в Yandex Cloud и Yandex Query в Yandex Cloud.
Компания: Яндекс
Компания: Яндекс