Что это простыми словами
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.