Как всё устроено
Как всё устроено
Архитектурно YTsaurus состоит из нескольких слоев.
- Самый нижний уровень — распределённая файловая система и хранилище метаданных (Cypress).
- Второй уровень — планировщик с поддержкой парадигмы MapReduce.
- Третий — высокоуровневые среды вычислений: YQL, CHYT, SPYT.
Система поддерживает SDK для языков С++, Java, Golang и Python.
Хранение данных: Cypress
Хранение данных: Cypress
Распределённая файловая система и дерево метаинформации, где хранятся файлы, документы, статические и динамические таблицы, метаданные. Кроме того реализован механизм транзакций и управление частями данных (чанками). Помимо хранения Cypress может выступать сервисом координации.
Для обеспечения отказоустойчивости под капотом используется собственная реализация алгоритма консенсуса (RSM), схожая с RAFT.
Динамические таблицы
Динамические таблицы строятся поверх файловой системы, представляют из себя KV-хранилище и поддерживают: распределённые транзакции, в том числе между разными таблицами, автоматическое шардирование, постоянную копию данных в памяти для низкой латентности чтения, удаление данных по TTL, изоляцию между проектами по отдельным узлам кластера, репликацию записи между кластерами.
Обработка данных: Scheduler
Обработка данных: Scheduler
Для распределения ресурсов используется планировщик, который управляет несколькими видами ресурсов (CPU, RAM, GPU) на основе принципа Dominant Resource Fairness, Планировщик поддерживает иерархию вычислительных пулов и различные виды гарантий, в частности интегральные на временном окне. Планировщик позволяет запускать MapReduce-вычисления, в том числе с помощью SQL-подобного синтаксиса (YQL).
Вычисления тесно провязаны с моделью схематизации данных, используют поколоночное хранение.
Операции MapReduce можно запускать c помощью YQL — расширенного SQL-подобного языка с UDF, оконными функциями и другими возможностями. С его помощью можно строить сложные процессы обработки данных с сохранением подзапросов в переменные и созданием цепочек зависимых запросов.
Технология, которая позволяет запускать кластера серверов ClickHouse® для работы с данными в YTsaurus. Может работать как источник данных для инструментов визуализации и BI, отлично подходит для ad hoc запросов.
SPYT позволяет запускать кластера Apache Spark в виде операций планировщика, которые могут обрабатывать любые данные из YTsaurus. Удобно для построения ETL-процессов.
Что такое YTsaurus?
Что такое YTsaurus?
Рассказываем, как устроена платформа