Распределённая система управления базами данных YDB компании Яндекс теперь доступна всем желающим по открытой лицензии Apache 2.0. Развернуть базу можно как на собственных, так и на сторонних серверах, в том числе в облаке.
В Яндексе YDB используется уже больше пяти лет. YDB используют команды Алисы, Такси, Маркета, Метрики и прочих сервисов: около 500 проектов. YDB — ключевой компонент Yandex Cloud.
В 2016 году компания опубликовала исходный код ClickHouse, теперь пришла очередь YDB.
Yandex Database (YDB) — распределённая Distributed SQL СУБД с поддержкой бессерверных вычислений. YDB сочетает высокую доступность и масштабируемость с поддержкой строгой консистентности и ACID-транзакций.
YDB — это горизонтально масштабируемая распределённая отказоустойчивая СУБД, спроектированная с учетом требований высокой производительности. Обычный сервер может обрабатывать десятки тысяч запросов в секунду. В архитектуру системы заложена работа с объёмами данных в сотни петабайт. YDB может эксплуатироваться в одном ЦОД или в геораспределенном (кросс-датацентровый) режиме на кластере из тысяч серверов. YDB поддерживает реляционную модель данных и оперирует таблицами с предопределённой схемой. Для удобства организации таблиц поддерживается создание директорий по аналогии с файловой системой.
YDB обеспечивает:
- строгую консистентность с возможностью ослабления для увеличения производительности;
- поддержку запросов YQL (диалект SQL для работы с большими данными);
- автоматическую репликацию данных;
- высокую доступность с автоматической обработкой отказов вычислительных узлов, стоек, или зон доступности;
- автоматическое партицирование данных при увеличении их объема или увеличении нагрузки.
Сценарии применения
YDB является альтернативой имеющимся решениям в следующих случаях:
- При использовании NoSQL систем, когда требуется строгая консистентность данных.
- При использовании NoSQL систем, когда требуется транзакционное изменение данных, хранящихся в разных строках одной или нескольких таблиц.
- В системах, требующих обработки и хранения большого объема данных, с возможностью практически неограниченного горизонтального масштабирования (в эксплуатации находятся промышленные кластера из 5000+ узлов, обрабатывающие нагрузку в миллионы RPS, и хранящие петабайты данных).
- В системах с незначительной нагрузкой, когда поддержка отдельного инстанса базы данных будет расточительна с материальной точки зрения (предлагается использовать YDB в режиме бессерверных вычислений).
- В системах с плохо предсказуемой или сезонно меняющейся нагрузкой (используя возможность добавления/уменьшения вычислительных ресурсов по запросу и/или в режиме бессерверных вычислений).
- В высоконагруженных системах, которые шардируют нагрузку между инстансами реляционной базы данных.
- При разработке нового продукта, для которого нет надежного прогноза будущей нагрузки, или ожидается большая нагрузка, превышающая возможности традиционных реляционных баз данных.
Ссылки
https://cloud.yandex.ru/docs/ydb/