Как всё устроено

Архитектурно YTsaurus состоит из нескольких слоев.

  • Самый нижний уровень — распределённая файловая система и хранилище метаданных (Cypress).
  • Второй уровень — планировщик с поддержкой парадигмы MapReduce.
  • Третий — высокоуровневые среды вычислений: YQL, CHYT, SPYT.

Система поддерживает SDK для языков С++, Java, Golang и Python.

схема усройства архитектуры YTsaurus

Хранение данных: Cypress

Распределённая файловая система и дерево метаинформации, где хранятся файлы, документы, статические и динамические таблицы, метаданные. Кроме того реализован механизм транзакций и управление частями данных (чанками). Помимо хранения Cypress может выступать сервисом координации.

Для обеспечения отказоустойчивости под капотом используется собственная реализация алгоритма консенсуса (RSM), схожая с RAFT.

скриншот страницы навигации веб-интерфейса YTsaurus

Динамические таблицы

Динамические таблицы строятся поверх файловой системы, представляют из себя KV-хранилище и поддерживают: распределённые транзакции, в том числе между разными таблицами, автоматическое шардирование, постоянную копию данных в памяти для низкой латентности чтения, удаление данных по TTL, изоляцию между проектами по отдельным узлам кластера, репликацию записи между кластерами.

Обработка данных: Scheduler

Для распределения ресурсов используется планировщик, который управляет несколькими видами ресурсов (CPU, RAM, GPU) на основе принципа Dominant Resource Fairness, Планировщик поддерживает иерархию вычислительных пулов и различные виды гарантий, в частности интегральные на временном окне. Планировщик позволяет запускать MapReduce-вычисления, в том числе с помощью SQL-подобного синтаксиса (YQL).
Вычисления тесно провязаны с моделью схематизации данных, используют поколоночное хранение.

скриншот страницы планировщика веб-интерфейса YTsaurus

Операции MapReduce можно запускать c помощью YQL — расширенного SQL-подобного языка с UDF, оконными функциями и другими возможностями. С его помощью можно строить сложные процессы обработки данных с сохранением подзапросов в переменные и созданием цепочек зависимых запросов.

Технология, которая позволяет запускать кластера серверов ClickHouse® для работы с данными в YTsaurus. Может работать как источник данных для инструментов визуализации и BI, отлично подходит для ad hoc запросов.

SPYT позволяет запускать кластера Apache Spark в виде операций планировщика, которые могут обрабатывать любые данные из YTsaurus. Удобно для построения ETL-процессов.

Что такое YTsaurus?

Рассказываем, как устроена платформа