Как всё устроено
Как всё устроено
Архитектурно YTsaurus состоит из трёх слоёв:
- Storage Layer, в который входят очереди, статические и динамические таблицы, отвечает за хранение данных и метаданных.
- Compute Layer отвечает за обработку данных, выполняя распределенные вычисления используя различные движки обработки: MapReduce, YQL, CHYT, SPYT.
- Access Layer — слой доступа к данным: удобный UI, CLI и SDK на Java, Python, GoLang и C++.
.png)
Хранение данных: Cypress
Хранение данных: Cypress
Распределённая файловая система и дерево метаинформации, где хранятся файлы, документы, статические и динамические таблицы, метаданные. Кроме того реализован механизм транзакций и управление частями данных (чанками). Помимо хранения Cypress может выступать сервисом координации.
Для обеспечения отказоустойчивости под капотом используется собственная реализация алгоритма консенсуса (RSM), схожая с RAFT.
Динамические таблицы
Динамические таблицы
Динамические таблицы строятся поверх файловой системы, представляют из себя KV-хранилище и поддерживают: распределённые транзакции, в том числе между разными таблицами, автоматическое шардирование, постоянную копию данных в памяти для низкой латентности чтения, удаление данных по TTL, изоляцию между проектами по отдельным узлам кластера, репликацию записи между кластерами.
Очереди YTsaurus
Это распределённый, реплицированный журнал сообщений на базе динамических таблиц с поддержкой шардирования и межкластерной репликации. Они поддерживают чтение и запись по протоколу Apache Kafka.
Гибкое хранение на основе таблиц
Сообщения можно экспортировать в статическую таблицу для долгосрочного хранения, а после обработки возможно удалять по TTL.
Единое пространство транзакций
Благодаря единому пространству транзакций с динамическими таблицами возможна exactly-once обработка событий без сложных интеграций и сторонних инструментов.
Масштабируемость и отказоустойчивость
Использование шардирования и распределённого хранения позволяет масштабировать систему горизонтально без единой точки отказа.
Обработка данных: 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?
Рассказываем, как устроена платформа.
Попробовать YTsaurus
