YugabyteDB — это совместимая с PostgreSQL высокопроизводительная облачная распределенная база данных SQL. Он сочетает в себе преимущества традиционных реляционных баз данных с масштабируемостью систем NoSQL, что делает его подходящим для приложений, которым требуется как согласованность транзакций, так и способность обрабатывать большие объемы данных. Он лучше всего подходит для облачных OLTP-приложений (то есть приложений реального времени, критически важных для бизнеса), которым необходима абсолютная корректность данных и требуется хотя бы одно из следующих качеств: масштабируемость, высокая устойчивость к сбоям или глобально распределенное развертывание.
Основные функции
Начать
Создание приложений
Текущая дорожная карта
Последние функции
Архитектура
Нужна помощь?
Способствовать
Лицензия
Читать далее
Мощные возможности РСУБД Yugabyte SQL (сокращенно YSQL ) повторно использует уровень запросов PostgreSQL (аналогично Amazon Aurora PostgreSQL), тем самым поддерживая большинство его функций (типы данных, запросы, выражения, операторы и функции, хранимые процедуры, триггеры, расширения и т. д.). ).
Распределенные транзакции Дизайн транзакций основан на архитектуре Google Spanner. Высокая согласованность операций записи достигается за счет использования консенсуса Raft для репликации и распределенных по всему кластеру транзакций ACID с использованием гибридных логических часов . Поддерживаются уровни изоляции моментального снимка , сериализации и фиксации чтения . Чтения (запросы) по умолчанию имеют строгую согласованность, но их можно динамически настроить для чтения от последователей и реплик чтения.
Непрерывная доступность YugabyteDB чрезвычайно устойчива к частым сбоям благодаря встроенным средствам аварийного переключения и восстановления. YugabyteDB можно настроить на автоматическое устранение сбоев диска, стойки, узла, зоны, региона и облака. Для типичного развертывания, когда кластер YugabyteDB развертывается в одном регионе в нескольких зонах публичного облака, RPO равно 0 (что означает, что данные не теряются в случае сбоя), а RTO составляет 3 секунды (что означает, что данные обслуживаются вышедшим из строя узлом). доступен через 3 секунды).
Горизонтальная масштабируемость Масштабировать кластер YugabyteDB для увеличения количества операций ввода-вывода в секунду или увеличения объема хранилища данных так же просто, как добавить узлы в кластер.
Геораспределенная мультиоблачная YugabyteDB может быть развернута в публичных облаках и непосредственно внутри Kubernetes. Он поддерживает развертывания, охватывающие три или более доменов сбоя, например развертывания с несколькими зонами, несколькими стойками, несколькими регионами и несколькими облаками. Он также поддерживает асинхронную репликацию xCluster с однонаправленными конфигурациями «главный-подчиненный» и двунаправленными конфигурациями с несколькими главными узлами в двухрегиональных развертываниях. Реплики чтения также поддерживаются для обслуживания (устаревших) данных с низкой задержкой.
Дизайн с несколькими API. Уровень запросов YugabyteDB создан с возможностью расширения. В настоящее время YugabyteDB поддерживает два распределенных API-интерфейса SQL: Yugabyte SQL (YSQL), полностью реляционный API, который повторно использует уровень запросов PostgreSQL, и Yugabyte Cloud QL (YCQL), полуреляционный SQL-подобный API с поддержкой документов/индексирования с помощью Корни Apache Cassandra QL.
100% открытый исходный код YugabyteDB имеет полностью открытый исходный код под лицензией Apache 2.0. Версия с открытым исходным кодом имеет мощные корпоративные функции, такие как распределенное резервное копирование, шифрование хранящихся данных, шифрование TLS на лету, сбор измененных данных, реплики чтения и многое другое.
YugabyteDB была создана с учетом нескольких ключевых целей проектирования, направленных на решение проблем, с которыми сталкиваются современные облачные приложения, сохраняя при этом привычность и мощь традиционных реляционных баз данных. Подробнее об этом читайте в разделе «Цели дизайна».
Быстрый старт
Попробуйте запустить реальное демонстрационное приложение:
Приложение для электронной коммерции, ориентированное на микросервисы
Потоковое приложение IoT с Kafka и Spark Streaming
Не можете найти то, что ищете? Есть вопросы? Публикуйте свои вопросы или комментарии в нашем сообществе Slack или на форуме.
YugabyteDB поддерживает множество языков и клиентских драйверов, включая Java, Go, NodeJS, Python и другие. Полный список, включая примеры, см. в разделе Драйверы и ORM.
Ниже приведен список некоторых ключевых функций, над которыми ведется работа в предстоящих выпусках.
Особенность | Подробности |
---|---|
Совместимость PostgreSQL 15 | Новейшие функции, новые расширения PostgreSQL, производительность и исправления сообщества. |
API слота публикации/репликации PostgreSQL в CDC | PostgreSQL имеет огромное сообщество, которому нужен PG-совместимый API для настройки и использования изменений базы данных. |
Растровое сканирование | Поддержка растрового сканирования для использования индексного сканирования, удаленного фильтра и расширенной модели затрат. |
Оптимизатор затрат (CBO) | Эффективные планы запросов на основе статистики (например, размера таблицы, количества строк) и распределения данных. |
Параллельное выполнение запроса | Более высокая производительность запросов за счет разделения одного запроса для выполнения на разных ядрах ЦП. |
расширение pgvector | Поддержка векторных типов данных, позволяющая эффективно хранить и выполнять запросы к многомерным векторам. |
Управление соединениями | Управление соединениями на стороне сервера, обеспечивающее до 30 тыс. соединений на узел |
Обратитесь к трекеру дорожной карты для получения списка всех элементов текущей дорожной карты.
v2.23 — это текущая предварительная версия. Сюда входят функции, находящиеся в активной разработке, и рекомендуется только для разработки и тестирования. Полный список функций и улучшений в этом выпуске см. в Примечаниях к выпуску — v2.23. Вот некоторые из характерных особенностей.
Быстро создавайте независимые копии вашей базы данных для восстановления, разработки и тестирования данных.
Используйте pg_cron для планирования команд YSQL с использованием знакомого синтаксиса cron, включая задания с интервалами вплоть до секунд.
Упрощенное управление репликацией транзакций YSQL xCluster за счет работы на уровне базы данных, а не на уровне таблицы.
Улучшения в производительности обратного сканирования теперь позволяют выполнять такие запросы в 10 раз быстрее без дополнительной настройки!
v2024.1 — текущая стабильная версия. Стабильные версии проходят тщательное тестирование в течение более длительного периода времени и готовы к использованию в производстве. Полный список функций и улучшений в этом выпуске см. в Примечаниях к выпуску — v2024.1. Вот некоторые из характерных особенностей.
Позволяет вам воспользоваться множеством новых улучшений как в совместимости PostgreSQL, так и в обеспечении равенства производительности, что еще больше упрощает перенос и перенос ваших приложений с PostgreSQL на YugabyteDB. Когда этот режим включен, YugabyteDB использует режим изоляции Read-Committed, режим параллелизма Wait-on-Conflict для предсказуемых задержек P99 и новый оптимизатор на основе затрат.
Если вас не устраивает обновленная версия, вы можете легко вернуться к версии, предшествовавшей обновлению.
Стратегия выполнения соединений, которая улучшает соединения вложенного цикла, отправляя один запрос к внутренней таблице для каждого пакета кортежей внешней таблицы, а не один раз для каждого отдельного кортежа внешней таблицы.
Объяснение Анализ при использовании с опцией DIST также отображает строки, считанные с уровня хранения, что может помочь в диагностике производительности запроса.
Подробную архитектуру смотрите в нашей документации.
Вы можете задавать вопросы, находить ответы и помогать другим в нашем сообществе Slack, на форуме, Stack Overflow, а также в Твиттере @Yugabyte.
Используйте проблемы GitHub, чтобы сообщать о проблемах или запрашивать новые функции.
Чтобы устранить неполадки YugabyteDB и проблемы на уровне кластера/узла, обратитесь к документации по устранению неполадок.
Как проект с открытым исходным кодом, ориентированный на сообщество пользователей, мы приветствуем вклад в виде запросов на извлечение GitHub. Ознакомьтесь с нашими Руководствами для участников, чтобы начать работу. Обсуждения и RFC для функций происходят в разделе обсуждений дизайна на нашем форуме.
Исходный код в этом репозитории лицензируется по различным лицензиям Apache License 2.0 и Polyform Free Trial License 1.0.0. Копию каждой лицензии можно найти в каталоге лицензий.
Сборка создает два набора двоичных файлов:
Вся база данных со всеми ее функциями (в том числе корпоративными) лицензируется по лицензии Apache License 2.0.
Двоичные файлы, содержащие -managed
в артефакте и помогающие запускать управляемую службу, лицензируются по бесплатной пробной лицензии Polyform 1.0.0.
По умолчанию параметры сборки генерируют только двоичные файлы Apache License 2.0.
Чтобы просмотреть наши обновления, посетите блог распределенного SQL.
Подробные сведения о дизайне и архитектуре см. в наших спецификациях дизайна.
Технические беседы и видео.
Посмотрите, как YugabyteDB сравнивается с другими базами данных.