Что это простыми словами

YDB — это база данных, которая хранит информацию так, что если один сервер сломается, данные не потеряются и система продолжит работать.

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

YDB разработана Яндексом, код открытый и бесплатный. В России её ставят всё чаще — особенно после ухода зарубежных решений.

Официальное определение

Теперь, когда суть понятна, вот как YDB описывают в вакансиях и документации. Эту формулировку вы встретите в требованиях к администратору баз данных.

«YDB — распределённая SQL-совместимая база данных с горизонтальной масштабируемостью и встроенной репликацией для обеспечения высокой доступности».

Разберём по словам. «Распределённая» — данные лежат не на одном сервере, а размазаны по многим. «SQL-совместимая» — понимает SQL, стандартный язык запросов к базам данных, так что разработчикам не нужно учить что-то новое. «Горизонтальная масштабируемость» — если нагрузка выросла, можно просто добавить ещё серверов, и база справится. «Репликация» — автоматическое копирование данных на несколько серверов. «Высокая доступность» — система почти никогда не падает, даже если часть серверов сломалась.

Какую задачу решает

В крупных компаниях база данных — это сердце системы. Туда записываются все заказы, платежи, действия пользователей. Если база упадёт хотя бы на минуту — сайт встанет, платежи не пройдут, компания теряет деньги и репутацию.

Обычные базы данных (PostgreSQL, MySQL) стоят на одном сервере. Если сервер сломается, всё останавливается. Можно настроить резервные копии вручную, но это сложно и ненадёжно.

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

Кто им пользуется

YDB — это база данных, она не привязана к какому-то языку программирования. С ней работают несколько ролей:

  • DBA (database administrator) — основной пользователь. Это человек, который устанавливает YDB, настраивает её, следит за производительностью, делает резервные копии. Если база тормозит или упала — разбирается DBA.

  • Backend-разработчик — пишет код, который обращается к YDB: достаёт данные, сохраняет новые записи. Ему важно знать SQL и понимать, как работать с этой базой.

  • DevOps-инженер — настраивает инфраструктуру, разворачивает YDB на серверах, настраивает мониторинг.

В вакансиях YDB чаще всего встречается у DBA — это их основной инструмент.

Аналоги / чем заменяется

YDB решает ту же задачу, что и другие базы данных, но не все базы одинаковые:

  • PostgreSQL, MySQL — классические базы данных. Популярные, проверенные временем, но изначально не рассчитаны на распределённое хранение. Их можно настроить на отказоустойчивость, но это требует дополнительной работы.

  • CockroachDB, Google Spanner — распределённые базы, как YDB. Решают те же задачи, но это зарубежные продукты.

  • Tarantool — ещё одна российская распределённая база, от Mail.ru.

Переход между базами данных — дорогой процесс. Нужно переписывать запросы, менять логику работы с данными, тестировать заново. Поэтому опыт с PostgreSQL не равен опыту с YDB — это хоть и базы данных, но работают они по-разному. Особенно это касается распределённых баз: там другая архитектура, другие подходы к транзакциям и консистентности данных.

Что не путать

  • YDB ≠ PostgreSQL или MySQL. Это разные базы данных с разной внутренней архитектурой. YDB изначально распределённая, а PostgreSQL — классическая однонодовая. Опыт с одной не переносится автоматически на другую.

  • YDB ≠ язык программирования. Это готовая программа для хранения данных. К ней обращаются из кода на разных языках (Python, Go, Java), но сама YDB не язык.

  • YDB ≠ ORM-библиотека. ORM (вроде SQLAlchemy или Django ORM) — это код, который помогает работать с базой из приложения. YDB — сама база, а ORM к ней подключается.

  • DBA ≠ backend-разработчик. DBA настраивает и обслуживает саму базу данных, а backend-разработчик пишет код приложения, которое обращается к базе. Это разные роли с разными навыками.

Насколько это важно при отборе

Короткий ответ: зависит от того, используется ли YDB в вашей компании.

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

Если же YDB в компании нет и не планируется — тогда опыт с любой другой базой данных (PostgreSQL, MySQL) будет более универсальным и полезным. Требовать YDB в такой ситуации — значит резко сузить круг кандидатов без реальной необходимости.

Для DBA конкретная база данных — жёсткое требование: это их основной инструмент, и переучиваться на новую базу долго. Если в вакансии указана YDB, ищите кандидата с опытом работы именно с ней или хотя бы с другими распределёнными базами (CockroachDB, Tarantool).

Для backend-разработчика опыт с YDB менее критичен: если человек умеет писать SQL и работал с другими базами, он освоит YDB за несколько недель. Здесь важнее общее понимание баз данных, чем конкретная технология.

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