YugabyteDB est une base de données SQL distribuée, hautes performances, native pour le cloud, compatible PostgreSQL. Il combine les avantages des bases de données relationnelles traditionnelles avec l'évolutivité des systèmes NoSQL, ce qui le rend adapté aux applications qui nécessitent à la fois une cohérence transactionnelle et la capacité de gérer de grandes quantités de données. Il est particulièrement adapté aux applications OLTP cloud natives (c'est-à-dire en temps réel, critiques pour l'entreprise) qui nécessitent une exactitude absolue des données et nécessitent au moins l'un des éléments suivants : évolutivité, haute tolérance aux pannes ou déploiements distribués à l'échelle mondiale.
Fonctionnalités principales
Commencer
Créer des applications
Feuille de route actuelle
Fonctionnalités récentes
Architecture
Besoin d'aide ?
Contribuer
Licence
En savoir plus
Puissantes fonctionnalités de SGBDR Yugabyte SQL ( YSQL en abrégé) réutilise la couche de requêtes PostgreSQL (similaire à Amazon Aurora PostgreSQL), prenant ainsi en charge la plupart de ses fonctionnalités (types de données, requêtes, expressions, opérateurs et fonctions, procédures stockées, déclencheurs, extensions, etc. ).
Transactions distribuées La conception des transactions est basée sur l'architecture Google Spanner. Une forte cohérence des écritures est obtenue en utilisant le consensus Raft pour la réplication et les transactions ACID distribuées à l'échelle du cluster à l'aide d'horloges logiques hybrides . Les niveaux d'isolement d'instantané , sérialisable et de lecture validée sont pris en charge. Les lectures (requêtes) ont une forte cohérence par défaut, mais peuvent être ajustées dynamiquement pour lire à partir des abonnés et des réplicas en lecture.
Disponibilité continue YugabyteDB est extrêmement résilient aux pannes courantes grâce au basculement et à la réparation natifs. YugabyteDB peut être configuré pour tolérer automatiquement les pannes de disque, de rack, de nœud, de zone, de région et de cloud. Pour un déploiement typique où un cluster YugabyteDB est déployé dans une région sur plusieurs zones d'un cloud public, le RPO est de 0 (ce qui signifie qu'aucune donnée n'est perdue en cas d'échec) et le RTO est de 3 secondes (ce qui signifie que les données sont servies par le nœud défaillant. est disponible en 3 secondes).
Évolutivité horizontale La mise à l'échelle d'un cluster YugabyteDB pour obtenir plus d'IOPS ou de stockage de données est aussi simple que d'ajouter des nœuds au cluster.
YugabyteDB géodistribué et multi-cloud peut être déployé dans des cloud publics et nativement dans Kubernetes. Il prend en charge les déploiements qui couvrent au moins trois domaines de pannes, tels que les déploiements multizones, multi-racks, multirégions et multi-cloud. Il prend également en charge la réplication asynchrone xCluster avec des configurations maître-esclave unidirectionnelles et multi-maître bidirectionnelles dans les déploiements à deux régions. Les réplicas en lecture sont également pris en charge pour servir des données (périmées) avec de faibles latences.
Conception multi-API La couche de requête YugabyteDB est conçue pour être extensible. Actuellement, YugabyteDB prend en charge deux API SQL distribuées : Yugabyte SQL (YSQL), une API entièrement relationnelle qui réutilise la couche de requête PostgreSQL, et Yugabyte Cloud QL (YCQL), une API semi-relationnelle de type SQL avec prise en charge des documents/indexation avec Racines d'Apache Cassandra QL.
100% open source YugabyteDB est entièrement open-source sous licence Apache 2.0. La version open source dispose de fonctionnalités d'entreprise puissantes telles que les sauvegardes distribuées, le chiffrement des données au repos, le chiffrement TLS en vol, la capture de données modifiées, les réplicas en lecture, etc.
YugabyteDB a été créé avec plusieurs objectifs de conception clés en tête, visant à relever les défis rencontrés par les applications cloud natives modernes tout en conservant la familiarité et la puissance des bases de données relationnelles traditionnelles. Apprenez-en davantage à ce sujet dans nos objectifs de conception.
Démarrage rapide
Essayez d'exécuter une application de démonstration réelle :
Application de commerce électronique orientée microservices
Application IoT en streaming avec Kafka et Spark Streaming
Vous ne trouvez pas ce que vous cherchez ? Vous avez une question ? Publiez vos questions ou commentaires sur notre communauté Slack ou notre forum.
YugabyteDB prend en charge de nombreux langages et pilotes clients, notamment Java, Go, NodeJS, Python, etc. Pour une liste complète, y compris des exemples, voir Pilotes et ORM.
Ce qui suit est une liste de certaines des fonctionnalités clés sur lesquelles nous travaillons pour les prochaines versions.
Fonctionnalité | Détails |
---|---|
Compatibilité PostgreSQL 15 | Pour les dernières fonctionnalités, les nouvelles extensions PostgreSQL, les performances et les correctifs de la communauté. |
API d'emplacement de publication/réplication PostgreSQL dans CDC | PostgreSQL dispose d'une énorme communauté qui a besoin d'une API compatible PG pour configurer et utiliser les modifications de la base de données. |
Analyse bitmap | Prise en charge de Bitmap Scan pour l'utilisation des analyses d'index, du filtre à distance et du modèle de coût amélioré. |
Optimiseur basé sur les coûts (CBO) | Plans de requêtes efficaces basés sur des statistiques (telles que la taille de la table, le nombre de lignes) et la distribution des données. |
Exécution de requêtes parallèles | Performances de requête supérieures en divisant une seule requête pour son exécution sur différents cœurs de processeur. |
extension pgvecteur | Prise en charge des types de données vectorielles, permettant un stockage et une interrogation efficaces de vecteurs de grande dimension. |
Gestion des connexions | Gestion des connexions côté serveur permettant jusqu'à 30 000 connexions par nœud |
Reportez-vous au suivi de la feuille de route pour la liste de tous les éléments de la feuille de route actuelle.
La v2.23 est la version préliminaire actuelle. Cela inclut les fonctionnalités en cours de développement actif et est recommandé pour le développement et les tests uniquement. Pour la liste complète des fonctionnalités et améliorations de cette version, consultez Notes de version - v2.23. Voici quelques-unes des principales caractéristiques.
Créez rapidement des copies indépendantes de votre base de données pour la récupération, le développement et les tests de données.
Utilisez pg_cron pour planifier des commandes YSQL en utilisant la syntaxe cron familière, y compris des tâches à des intervalles aussi fins que quelques secondes.
Gestion simplifiée de la réplication transactionnelle YSQL xCluster en opérant au niveau de la base de données plutôt qu'au niveau de la table.
Les améliorations apportées aux performances de l'analyse descendante permettent désormais à ces requêtes d'être 10 fois plus rapides dès le départ !
La v2024.1 est la version stable actuelle. Les versions stables sont soumises à des tests rigoureux pendant une période plus longue et sont prêtes à être utilisées en production. Pour la liste complète des fonctionnalités et améliorations de cette version, consultez Notes de version - v2024.1. Voici quelques-unes des principales caractéristiques.
Vous permet de profiter de nombreuses nouvelles améliorations en termes de compatibilité PostgreSQL et de parité des performances, ce qui facilite encore plus le déplacement de vos applications de PostgreSQL vers YugabyteDB. Lorsque ce mode est activé, YugabyteDB utilise le mode d'isolement Read-Commit, le mode de concurrence Wait-on-Conflict pour les latences P99 prévisibles et le nouvel optimiseur basé sur les coûts.
Revenez facilement à la version antérieure à la mise à niveau si vous n'êtes pas satisfait de la version mise à niveau.
Une stratégie d'exécution de jointure qui améliore les jointures de boucles imbriquées en envoyant une requête à la table interne par lot de tuples de table externe au lieu d'une requête par tuple de table externe individuel.
Expliquez Analyser, lorsqu'il est utilisé avec l'option DIST, affichera également les lignes lues à partir de la couche de stockage, ce qui peut aider à diagnostiquer les performances des requêtes.
Passez en revue l’architecture détaillée dans nos documents.
Vous pouvez poser des questions, trouver des réponses et aider les autres sur notre communauté Slack, notre forum, Stack Overflow, ainsi que sur Twitter @Yugabyte.
Utilisez les problèmes GitHub pour signaler des problèmes ou demander de nouvelles fonctionnalités.
Pour résoudre les problèmes liés à YugabyteDB et au niveau du cluster/nœud, reportez-vous à la documentation de dépannage.
En tant que projet open source fortement axé sur la communauté des utilisateurs, nous acceptons les contributions sous forme de demandes d'extraction GitHub. Consultez nos guides des contributeurs pour commencer. Les discussions et les RFC pour les fonctionnalités ont lieu dans la section des discussions sur la conception de notre forum.
Le code source de ce référentiel est sous licence Apache 2.0 et Polyform Free Trial License 1.0.0. Une copie de chaque licence peut être trouvée dans le répertoire des licences.
La build produit deux ensembles de binaires :
L'ensemble de la base de données avec toutes ses fonctionnalités (y compris celles d'entreprise) est sous licence Apache License 2.0.
Les fichiers binaires qui contiennent -managed
dans l'artefact et aident à exécuter un service géré sont sous licence Polyform Free Trial License 1.0.0.
Par défaut, les options de construction génèrent uniquement les binaires Apache License 2.0.
Pour voir nos mises à jour, accédez au blog Distributed SQL.
Pour des détails détaillés sur la conception et l’architecture, consultez nos spécifications de conception.
Discussions techniques et vidéos.
Découvrez comment YugabyteDB se compare à d'autres bases de données.