Фон YDB

YDB

YDB — это распределённая отказоустойчивая Distributed SQL база данных с открытым исходным кодом, которая сочетает в себе высокую доступность и масштабируемость со строгой согласованностью и транзакциями ACID. Она поддерживает одновременное выполнение транзакционных (OLTP), аналитических (OLAP) и потоковых нагрузок.

Что я могу делать с YDB?

Транзакционные нагрузки (OLTP)

Вы можете использовать YDB для хранения состояния вашего приложения, независимо от объема данных или частоты их изменения. Обрабатывать петабайты при миллионах транзакций в секунду — не проблема.

Аналитические нагрузки (OLAP)

Вы можете создавать аналитические отчёты на основе хранимых в YDB данных с производительностью, сопоставимой со специализированными аналитическими СУБД. При этом никаких компромиссов по согласованности и доступности не потребуется.

Потоковые нагрузки

Вы можете использовать функциональность YDB-топиков для надёжной отправки данных между вашими приложениями или отслеживания изменений в таблицах YDB. Можно выбрать как семантику доставки сообщений ровно один раз (exactly once), так и не менее одного раза (at least once).

Почему YDB?

Эластичность и масштабируемость

Добавляйте или удаляйте узлы на лету, чтобы легко масштабировать кластер по мере необходимости. YDB имеет отдельные слои вычисления и хранения, что позволяет независимо добавлять дисковую ёмкость или вычислительные ресурсы в зависимости от того, чего не хватает при текущей нагрузке.

Отказоустойчивость

YDB спроектирована для работы в трёх зонах доступности и обеспечивает работоспособность даже в случае выхода из строя одной из них. Она автоматически восстанавливается после сбоя диска, сервера или датацентра с минимальной задержкой для приложений.

Простота в использовании

Работа с кластером YDB ощущается как работа с одноузловой СУБД с безграничными ресурсами благодаря строгой согласованности, ACID-транзакциям, высокопроизводительным запросам, возможности загрузки больших объёмов данных, а также поддержке знакомого диалекта SQL и JSON API.

Универсальность

Благодаря поддержке различных видов нагрузок в одной системе YDB может заменить несколько систем хранения и обработки данных или всю корпоративную экосистему данных в компании.

Открытый исходный код

Исходный код YDB опубликован под лицензией Apache 2.0, накладывающей минимум ограничений на использование. Таким образом, нет рисков, связанных с привязкой к конкретному поставщику или провайдеру облачных услуг.

Совместимость с любым окружением

YDB можно развернуть в Kubernetes, в любом облачном окружении или в корпоративных ЦОД. Либо можно использовать YDB как управляемый сервис в Yandex Cloud. Также возможны локальные эксперименты на любом компьютере.

Как выглядит производительность YDB по сравнению с другими Distributed SQL СУБД?

YCSB — это известный набор бенчмарков для сценария ключ-значение. Мы подготовили исследование производительности, сравнивающее YDB, CockroachDB и YugabyteDB в этом сценарии.

Читать дальше

Кто использует YDB?

Метрика

Метрика — одна из крупнейших в мире платформ мобильной и веб-аналитики. Она полагается на YDB для создания пользовательских сессий на лету.

Переход на YDB позволил Метрике расширить объём хранимых данных и бесконечно наращивать обрабатываемую нагрузку. Теперь одна из баз данных Метрики в YDB содержит более 400 ТБ данных и выдерживает нагрузку более 1 000 000 RPS.

Yandex Cloud

YDB отвечает за слой хранения для сетевых дисков Yandex Cloud, используется в качестве СУБД для хранения данных и метаданных облачной инфраструктуры и сервисов платформы, а также в качестве базы данных для облачного Control Plane.

Инфраструктурным и платформенным сервисам Yandex Cloud необходима высокая доступность и масштабируемость, поэтому платформа выбрала YDB в качестве ключевого компонента.

Практикум

Практикум — это онлайн-ориентированная образовательная платформа. Она использует YDB в качестве гибкого хранилища состояний для своих микросервисов.

Нативная поддержка многоарендности в YDB позволяет им избежать создания и управления выделенными базами данных для каждого компонента сервиса.

Яндекс Маркет

Яндекс Маркет — один из крупнейших сервисов электронной коммерции в СНГ. Многие ключевые функции сервиса, такие как корзина, скидки, и оформление заказа, используют YDB для хранения своего состояния.

Выбор YDB в качестве базы данных позволил Яндекс Маркету выдержать стократное увеличение нагрузки на корзину при соблюдении строгих гарантий времени отклика.

Auto.ru

Auto.ru снизила потребление CPU для трассировочной базы данных Jaeger в три раза после перехода на YDB, что позволило записывать 500 000 трассировок в секунду без семплирования.

Успешная реализация YDB в качестве хранилища трассировок доказала применимость и ключевые свойства, такие как масштабируемость, отказоустойчивость и строгая согласованность. В результате Auto.ru выбрала YDB в качестве реляционной базы данных для некоторых своих микросервисов.

Алиса

Алиса — это голосовой помощник и экосистема умного дома. После перехода на YDB команда Алисы решила проблемы синхронизации между дата‑центрами, простоев при переключении основных серверов, снизила нагрузку на команду DevOps, увеличила объём хранимых данных до сотен терабайт и нагрузку до сотен тысяч запросов в секунду.

Переход на YDB позволил отказаться от ручного шардинга данных и добиться строгой согласованности в кросс-датацентровом кластере. Сейчас команда Алисы использует YDB как реляционную базу данных и как базу для хранения логов и трейсов.

В каких типовых сценариях стоит использовать YDB?

Работа с внезапным ростом нагрузки

Эластичность YDB позволяет быстро изменять количество ресурсов, выделенных базе данных, чтобы обеспечить необходимую пропускную способность в соответствии с нагрузкой. Вы можете легко увеличить или уменьшить количество вычислительных ресурсов в зависимости от предстоящих нагрузок, например, на «Чёрную пятницу» или для маркетинговых кампаний.

Хранение Observability данных

Колоночные таблицы YDB отлично подходят для хранения логов и метрик с простым доступом к ним через SQL интерфейс. Также, низкое потребление вычислительных ресурсов и масштабируемость YDB делают запись Jaeger трейсов выгодной по себестоимости и лёгкой в использовании.

Документоориентированная СУБД

Не смотря на строгую систему типов данных YDB, поддержка типа данных JSON и связанных с ним функций, расширяет возможности YDB в роли системы хранения неструктурированных документов.

Можете вкратце объяснить, что такое YDB, в видеоформате?

Конечно, смотрите →

Учебный курс по YDB от участника сообщества пользователей

Сторонняя разработка — Contribution

Начальный учебный курс по YDB, разработанный одним из наших пользователей — Владом Бурмистровым, позволяет ознакомиться с ключевыми свойствами, возможностями и архитектурой YDB, а также научиться основным приемам по работе с YDB.

Описание и программа курса

Как начать?

Docker

Скачайте последнюю версию Docker-образа YDB:

docker pull cr.yandex/yc/yandex-docker-local-ydb:latest

Создайте рабочий каталог и запустите локальный контейнер YDB из этого каталога:

docker run -d --rm --name ydb-local -h localhost \
-p 2135:2135 -p 8765:8765 -p 2136:2136 \
-v $(pwd)/ydb_certs:/ydb_certs -v $(pwd)/ydb_data:/ydb_data \
-e YDB_DEFAULT_LOG_LEVEL=NOTICE \
-e GRPC_TLS_PORT=2135 -e GRPC_PORT=2136 -e MON_PORT=8765 \
cr.yandex/yc/yandex-docker-local-ydb:latest

Перейдите к Начало работы › Развёртывание одноузлового кластера › Docker в документации YDB, чтобы получить дополнительную информацию.

Как оставаться на связи?

GitHub

Telegram

Habr

Medium

Twitter

LinkedIn

YouTube