Статьи
Статьи о YDB. Материалы разделены по категориям и размечены тегами:
Шардированный не значит распределённый: что важно знать, когда PostgreSQL становится мало
В данной статье рассматривается организация распределенных транзакций, шардирование данных и использование двухфазного коммита. Особое внимание уделяется важному аспекту: двухфазный коммит обеспечивает лишь атомарность операций, но не гарантирует изоляцию транзакций, что может создавать определенные ожидания у разработчиков.
Материал предназначен для специалистов, которые сталкиваются с необходимостью масштабирования систем за пределы возможностей одиночной базы данных (например, PostgreSQL) и перехода к архитектуре с шардированием данных. В статье представлены практические рекомендации по выбору архитектурных решений и разъяснение ключевых концепций распределенных транзакций.
Релиз диалекта YDB для SQLAlchemy: как мы сделали интеграцию с Apache Superset
В данной статье описывается процесс разработки Python-клиента для взаимодействия с распределенной базой данных YDB. Учитывая богатые возможности Python в области работы с базами данных, включая стандартизированный интерфейс DBAPI (PEP-249) и множество ORM, команда разработчиков реализовала полноценную интеграцию YDB с аналитической платформой Apache Superset.
Статья подробно освещает технические аспекты интеграции, особенности взаимодействия с существующей экосистемой Python и решения возникающих при этом архитектурных задач.
Стоимостной оптимизатор: сердце гибридной базы данных YDB
В статье рассматривается назначение, принципы работы и внутренняя реализация стоимостного (cost-based) оптимизатора запросов в гибридной базе данных YDB. Автор делится историей разработки собственной СУБД в Яндексе, объясняет отличия OLTP- и OLAP-нагрузок и обосновывает необходимость сложного оптимизатора для эффективной обработки аналитических запросов. Подробно описываются алгоритмы перебора и выбора оптимальных планов, такие как динамическое программирование и гиперграфовый алгоритм DPhyp, а также роль оценки кардинальности и функции стоимости. Материал иллюстрирует, как современные подходы позволяют YDB обрабатывать масштабные и сложные SQL-запросы, обеспечивая высокую производительность даже на больших объемах данных.
Статья предназначена для специалистов в области баз данных, разработчиков, девопсов, а также архитекторов IT-инфраструктуры.
Почему сложно разработать OLAP-базу данных, если у тебя уже есть OLTP
В статье объясняются основные различия между OLTP- и OLAP-нагрузками и описываются архитектурные вызовы, возникающие при создании гибридной (HTAP) базы данных на примере YDB. Автор подробно рассматривает аспекты эффективного хранения, передачи и обработки данных для обоих типов нагрузки, а также различные подходы к оптимизации запросов и управлению вычислительными ресурсами. В материале приводятся примеры решений и компромиссов, к которым приходят разработчики в процессе построения HTAP-систем, а также даются уроки и наблюдения, приобретённые командой YDB в ходе развития продукта.
Статья будет полезной для инженеров и архитекторов, интересующихся современными подходами к проектированию гибридных баз данных.
Kafka API для работы с потоками данных Yandex Data Streams — топиками YDB
Статья представляет собой подробный туториал по использованию Kafka API для работы с потоками данных Yandex Data Streams (топиками YDB) в облачной инфраструктуре Yandex Cloud. Даётся пошаговая инструкция по созданию необходимых облачных ресурсов — базы данных, потоков, S3-бакета, сервисных аккаунтов и настройке доступа, а также приведены примеры настройки и использования Kafka CLI и Kafka Connect для записи, чтения и выгрузки сообщений из потока данных в облачное хранилище. Рассматриваются практические аспекты безопасности и даны рекомендации по хранению конфиденциальных данных. Материал позволяет быстро начать работу с потоками YDB через привычные Kafka-инструменты, облегчая миграцию с Apache Kafka и интеграцию с существующими бизнес-процессами.
Статья предназначена для DevOps-инженеров, специалистов по облачной инфраструктуре, разработчиков, а также всех, кто работает с потоковыми данными и интеграциями на основе Kafka.
Как я сделал PR на 14К строк в проект YDB будучи студентом
В статье студент рассказывает о практическом опыте крупного вклада в проект YDB — переводе парсера языка запросов YQL с ANTLR3 на ANTLR4. Автор объясняет, почему задача была технически сложной, какие трудности возникли при миграции инструментов и шаблонов, а также как удалось аккуратно внедрить изменения, не нарушая существующую функциональность системы. Материал знакомит с принципами парсинга, особенностями работы ANTLR и процессом интеграции нового парсера. Также подчеркнута значимость грамотной работы с open source-проектами для профессионального роста.
Статья предназначена для разработчиков, специалистов по базам данных, студентов и начинающих инженеров, интересующихся open source и инструментами синтаксического анализа.
Шины данных для очень больших инсталляций, или Почему большим компаниям сложно с опенсорсом
В статье рассматриваются особенности эксплуатации опенсорсных шин данных (на примере Apache Kafka) в очень больших производственных инсталляциях, характерных для крупных предприятий. Автор приводит подробное сравнение с YDB Topics, анализируя вопросы масштабируемости, отказоустойчивости, стоимости оборудования и операционного управления. Описаны архитектурные подходы к обеспечению высокой доступности, оптимизации TCO, автоматизации, балансировке нагрузки и резервированию ресурсов, а также выделены проблемы open source-решений при работе на масштабах enterprise. Материал будет полезен тем, кто проектирует инфраструктуру передачи данных в крупных компаниях и сравнивает модели open source и кастомных корпоративных платформ.
Статья предназначена для технических менеджеров, архитекторов корпоративных ИТ-систем, системных администраторов, DevOps-инженеров и специалистов по эксплуатации крупных распределённых систем.
Стоит ли бояться serializable-транзакций больше, чем труднонаходимых багов?
Статья рассматривает влияние разных уровней изоляции транзакций в базах данных на корректность приложений и безопасность, уделяя особое внимание режиму serializable. Автор анализирует реальные кейсы возникновения ошибок и уязвимостей, связанных со слабыми уровнями изоляции, и сравнивает их с мифом о значительных потерях производительности при использовании строгой изоляции. Делается вывод, что использование serializable-транзакций по умолчанию часто оправдано, поскольку профилактика concurrency-багов важнее незначительного снижения производительности, а современные СУБД демонстрируют устойчивый уровень производительности даже на строгих режимах.
Статья предназначена для специалистов по базам данных, разработчиков, архитекторов ПО и администраторов, использующих транзакционные СУБД.
Как мы повышали производительность очереди сообщений
В статье подробно описывается эволюция производительности очереди сообщений YDB Topics. Автор сравнивает архитектурные особенности YDB Topics с Apache Kafka и Pulsar, анализирует причины отказа от Kafka, а также рассказывает о технических инструментах нагрузочного тестирования и пути к оптимизации узких мест. Приведены конкретные результаты производительности YDB Topics после проведённых оптимизаций, а также рассказано о внедрении Kafka API для максимальной совместимости с существующим софтом и облачными сценариями использования. Статья иллюстрирует комплексный подход к обеспечению высокой производительности и надёжности потоковых очередей на масштабах интерпрайз-уровня.
Статья предназначена для инженеров по высоконагруженным системам, DevOps- и SRE-специалистов, архитекторов распределённых систем, а также тех, кто интересуется оптимизацией и эксплуатацией очередей сообщений.
Миграции схемы данных YDB с Flyway и распределенные блокировки
Статья посвящена поддержке и особенностям работы Flyway для управления миграциями схемы данных в YDB. Описывается процесс настройки Flyway с YDB как через Java/Gradle, так и через CLI, а также принцип работы основных команд: baseline, migrate, info, validate, repair и clean. Особое внимание уделено механизму распределённых блокировок для предотвращения конкурентного применения миграций — показано, как это реализовано в YDB по сравнению с другими СУБД.
Статья предназначена для разработчиков, инженеров данных и специалистов по эксплуатации СУБД, использующих YDB и инструменты автоматизации миграций.
database/sql: плохой, хороший, злой
В статье проведён подробный разбор эволюции стандартной библиотеки Go для работы с базами данных (database/sql), особенностей её применения в распределённых системах, таких как YDB, и трудностей, возникающих при реализации и эксплуатации соответствующих драйверов. Рассматриваются архитектурные решения, внедрённые в YDB, а также специфические проблемы — управление соединениями, ретраи, контексты, параметры запросов, обработка ошибок, совместимость с концепциями SQL и Go. Автор делится опытом создания и доработки database/sql-драйвера для YDB, описывает ретроспективу изменений в Go и связанные с этим инженерные вызовы, а также демонстрирует особенности интеграции и инструменты отладки. Материал полезен для всех, кто внедряет или сопровождает СУБД в экосистеме Go и интересуется лучшими практиками подключения к распределённым базам.
Статья предназначена для Go-разработчиков, инженеров данных, архитекторов распределённых систем и разработчиков драйверов СУБД.
Как Яндекс создал свою шину данных, чтобы передавать сотни гигабайт в секунду
Статья рассказывает о причинах появления и архитектуре собственной шины данных Яндекса — YDB Topics — опенсорсного решения, способного передавать сотни гигабайт в секунду. На фоне проблем масштабирования и эксплуатации при использовании Apache Kafka, команда Яндекса разработала модульную шину поверх YDB с поддержкой высоких гарантий целостности, автоматического масштабирования и эффективного управления правами доступа. Подробно описаны архитектурные решения, отличия от Kafka и Pulsar, сценарии использования (федерация, кросс-ДЦ), а также особенности, такие как Erasure-кодирование для экономии места и масштабируемость с автоматизированным управлением.
Статья предназначена для инженеров по инфраструктуре, DevOps, архитекторов, а также всех, кто интересуется построением высоконагруженных систем передачи данных и open source-решениями в enterprise.
Поддержка диалекта YDB в инструменте миграции Liquibase
В статье показано, как использовать мощный инструмент миграций Liquibase для работы с базой данных YDB посредством YQL. Автор описывает нюансы интеграции, поддерживаемые SQL-конструкции, возможные ограничения и совместимость с Liquibase, а также приводит пошаговые примеры настройки, исполнения и эволюции схемы базы данных. Приводятся примеры создания и изменения таблиц, работы с индексами, загрузки данных, и применения нативных YQL-инструкций.
Статья предназначена для разработчиков, инженеров данных и DevOps-специалистов, использующих YDB и Liquibase.
Перенести проверенную схему бэкапа больших данных из S3 в Yandex Cloud: опыт Битрикс24
В статье на реальном кейсе компании Битрикс24 описан опыт миграции масштабируемой схемы резервного копирования и инкрементальной репликации файлов с AWS S3 в облако Yandex Cloud. Автор поэтапно разбирает эволюцию архитектуры, методы инкрементального и realtime-бэкапа, подходы к отложенному удалению файлов и реализации асинхронной обработки событий с использованием очередей, воркеров и серверless-технологий. Особое внимание уделено переходу на YDB с режимом совместимости с DynamoDB, мониторингу системы и автоматическому масштабированию ресурсов. Статья содержит практические советы по сохранению надёжности, минимизации ручного труда и оптимизации стоимости хранения больших объёмов данных при переходе между облачными провайдерами.
Статья предназначена для инженеров данных, архитекторов облачных решений, DevOps, технических руководителей и специалистов по эксплуатации масштабируемых систем хранения и резервного копирования.
Когда одного Postgres'a мало: сравнение производительности PostgreSQL и распределенных СУБД
В статье проведено практическое сравнение производительности PostgreSQL и распределённых СУБД YDB и CockroachDB на троих одинаковых физических серверах с использованием бенчмарка TPC-C при различных сценариях отказоустойчивости. Эксперимент подтверждает, что PostgreSQL крайне эффективна на одиночном сервере, но наличие синхронной репликации становится серьёзным ограничением по производительности и задержкам при увеличении числа нод. Распределённые СУБД показывают чуть ниже tpmC на такой же инфраструктуре, но демонстрируют лучшую отказоустойчивость, масштабируемость и предсказуемые задержки транзакций. В статье также приведён разбор инженерных "узких мест", подробные параметры тестов и практические рекомендации для выбора архитектуры.
Статья предназначена для специалистов по базам данных, архитекторов высоконагруженных систем, инженеров и администраторов, принимающих решения о выборе и СУБД, а также всех, кто интересуется сравнением PostgreSQL и распределённых СУБД на практике.
Обновление кешей сервисов в реальном времени с помощью YDB CDC на примере Yandex Monitoring
Летом 2023 года Егор Литвиненко (старший разработчик Yandex Observability Platform) рассказывал на Saint Highload в Санкт‑Петербурге о пути внедрения YDB CDC для обновления данных в сервисах, чтобы решить проблему инвалидации кешей. В этой статье будет вся история внедрения с теорией, вопросами, ответами, ошибками, о которых он говорил на выступлении.
Открытые системы (электронный журнал). СУБД. Как открытый исходный код меняет современные СУБД
У YDB путь проектирования изначально начался с учетом масштабных надежных инсталляций, что позволило СУБД быстро занять одну из ключевых ролей во внутренней инфраструктуре «Яндекса» в транзакционных сценариях использования. Затем YDB доросла до публичного управляемого сервиса в Yandex Cloud, позже обзавелась бессерверным (serverless) режимом работы. Сегодня СУБД YDB переживает следующий этап развития — выход в Open Source и адаптация к новым реалиям.
Из статьи вы узнаете:
- Почему вообще YDB пошла в Open Source?
- Какими возможностями обладает YDB?
- Как развивался проект?
- В каких сценариях YDB показывает себя сопоставимо с конкурентами, а в каких их превосходит?
Бессерверная альтернатива традиционным базам данных
Современная распределенная СУБД должна уметь поддерживать различные типы нагрузки, удовлетворяя запросы совершенно разных пользователей. СУБД YDB позволяет не только хранить петабайты данных, поддерживать обработку миллионов запросов в секунду, но и предоставляет режим бессерверных вычислений. Эта платформа дает возможность обслуживать проекты с различными типами нагрузки: ключ-значение, традиционные веб-приложения на основе реляционной базы, а также документоориентированные базы данных.
В статье изложена:
- История появления YDB.
- YDB с точки зрения пользователя.
- Архитектура YDB.
- Бессерверный режим в YDB.
Погружение в Serverless. Рождение YDB
Продолжение беседы с разработчиками экосистемы сервисов Serverless. В начале нашего путешествия Глеб Борисов описал ситуацию с Yandex Cloud Function, затем Данил Ошеров погрузил нас в мир протокола S3 и сервиса Object Storage. В этой статье Андрей Фомичев(Руководитель YDB) поделился подробностями о NewSQL.
Мультиарендный подход Яндекса к построению инфраструктуры работы с данными
Времена, когда для экземпляра базы данных выделялся отдельный компьютер, давно прошли. Сейчас повсюду управляемые решения, поднимающие необходимые процессы в виртуальных машинах. Для вычислений применяется еще более прогрессивный подход — «бессерверные вычисления», например AWS Lambda или Yandex Cloud Functions. И уж совсем на острие прогресса находятся бессерверные БД.
В статье Андрей Фомичев(Руководитель YDB) рассказал о бессерверных решениях, которые еще до всеобщего хайпа стали популярны в Яндексе и по-прежнему используются для хранения и обработки данных.
Готовим c serverless. Голосовой сервис записи к врачу и регистрации в поликлинике
Какой serverless-стек нужен, из чего состоит сценарий и как может быть устроена система CRM на стороне Yandex Cloud? Коммуникационная платформа Voximplant и Yandex Cloud подготовили рецепт голосового сервиса регистрации и записи на прием к врачу в поликлинику. Впрочем, им можно воспользоваться и для других похожих serverless-задач.
В статье:
- Устройство визуального конструктора Voximplant Kit.
- Разбор сценария входящего звонка.
- Устройство CRM-системы на стороне Yandex за API.
- Создание Yandex Database Serverless в Yandex Cloud.
Бессерверная альтернатива традиционным базам данных
Бессерверные вычисления стали следующим шагом к снижению «налога» на инфраструктуру, который вынуждены платить пользователи облачных сервисов, однако на рынке сегодня мало баз данных для этой экосистемы, и задача YDB — восполнить этот пробел.
В статье:
- История развития распределенных баз данных.
- О Yandex Database.
- Архитектура YDB.
- Бессерверный режим в YDB.
- YDB с точки зрения пользователя.