YugabyteDB es una base de datos SQL distribuida, nativa de la nube, de alto rendimiento y compatible con PostgreSQL. Combina los beneficios de las bases de datos relacionales tradicionales con la escalabilidad de los sistemas NoSQL, lo que la hace adecuada para aplicaciones que requieren coherencia transaccional y capacidad para manejar grandes cantidades de datos. Es más adecuado para aplicaciones OLTP nativas de la nube (es decir, en tiempo real, críticas para el negocio) que necesitan una corrección absoluta de los datos y requieren al menos uno de los siguientes: escalabilidad, alta tolerancia a fallas o implementaciones distribuidas globalmente.
Características principales
Empezar
Crear aplicaciones
Hoja de ruta actual
Funciones recientes
Arquitectura
¿Necesitar ayuda?
Contribuir
Licencia
Leer más
Potentes capacidades de RDBMS Yugabyte SQL ( YSQL para abreviar) reutiliza la capa de consulta de PostgreSQL (similar a Amazon Aurora PostgreSQL), admitiendo así la mayoría de sus características (tipos de datos, consultas, expresiones, operadores y funciones, procedimientos almacenados, activadores, extensiones, etc.) ).
Transacciones distribuidas El diseño de la transacción se basa en la arquitectura de Google Spanner. Se logra una fuerte coherencia de las escrituras mediante el uso del consenso Raft para la replicación y transacciones ACID distribuidas en todo el clúster mediante relojes lógicos híbridos . Se admiten niveles de aislamiento de instantánea , serializable y de lectura confirmada . Las lecturas (consultas) tienen una gran coherencia de forma predeterminada, pero se pueden ajustar dinámicamente para leer de seguidores y leer réplicas.
Disponibilidad continua YugabyteDB es extremadamente resistente a interrupciones comunes con conmutación por error y reparación nativas. YugabyteDB se puede configurar para tolerar fallas de disco, bastidor, nodo, zona, región y nube automáticamente. Para una implementación típica en la que un clúster YugabyteDB se implementa en una región en varias zonas de una nube pública, el RPO es 0 (lo que significa que no se pierden datos en caso de falla) y el RTO es de 3 segundos (lo que significa que los datos que proporciona el nodo fallido está disponible en 3 segundos).
Escalabilidad horizontal Escalar un clúster YugabyteDB para lograr más IOPS o almacenamiento de datos es tan simple como agregar nodos al clúster.
YugabyteDB , distribuido geográficamente y en múltiples nubes, se puede implementar en nubes públicas y de forma nativa dentro de Kubernetes. Admite implementaciones que abarcan tres o más dominios de falla, como implementaciones multizona, multirack, multirregional y multinube. También admite la replicación asíncrona de xCluster con configuraciones maestro-esclavo unidireccionales y multimaestro bidireccionales en implementaciones de dos regiones. Las réplicas de lectura también son compatibles para entregar datos (obsoletos) con latencias bajas.
Diseño de API múltiple La capa de consulta YugabyteDB está diseñada para ser extensible. Actualmente, YugabyteDB admite dos API de SQL distribuidas: Yugabyte SQL (YSQL), una API totalmente relacional que reutiliza la capa de consulta PostgreSQL, y Yugabyte Cloud QL (YCQL), una API semi-relacional similar a SQL con soporte para documentos/indexación con Raíces de Apache Cassandra QL.
100% código abierto YugabyteDB es completamente de código abierto bajo la licencia Apache 2.0. La versión de código abierto tiene potentes funciones empresariales, como copias de seguridad distribuidas, cifrado de datos en reposo, cifrado TLS en vuelo, captura de datos modificados, réplicas de lectura y más.
YugabyteDB se creó con varios objetivos de diseño clave en mente, con el objetivo de abordar los desafíos que enfrentan las aplicaciones modernas nativas de la nube y al mismo tiempo mantener la familiaridad y el poder de las bases de datos relacionales tradicionales. Lea más sobre estos en nuestros Objetivos de diseño.
Inicio rápido
Intente ejecutar una aplicación de demostración del mundo real:
Aplicación de comercio electrónico orientada a microservicios
Aplicación de streaming IoT con Kafka y Spark Streaming
¿No encuentras lo que estás buscando? ¿Tiene alguna pregunta? Publique sus preguntas o comentarios en nuestro Foro o Slack de la comunidad.
YugabyteDB admite muchos lenguajes y controladores de cliente, incluidos Java, Go, NodeJS, Python y más. Para obtener una lista completa, incluidos ejemplos, consulte Controladores y ORM.
La siguiente es una lista de algunas de las características clave en las que se está trabajando para los próximos lanzamientos.
Característica | Detalles |
---|---|
Compatibilidad con PostgreSQL 15 | Para conocer las funciones más recientes, nuevas extensiones de PostgreSQL, rendimiento y correcciones de la comunidad. |
API de ranura de replicación/publicación de PostgreSQL en CDC | PostgreSQL tiene una enorme comunidad que necesita una API compatible con PG para configurar y consumir cambios en la base de datos. |
Escaneo de mapa de bits | Soporte de escaneo de mapa de bits para usar escaneos de índice, filtro remoto y modelo de costos mejorado. |
Optimizador basado en costos (CBO) | Planes de consulta eficientes basados en estadísticas (como tamaño de tabla, número de filas) y distribución de datos. |
Ejecución de consultas en paralelo | Mayor rendimiento de consultas al dividir una única consulta para su ejecución en diferentes núcleos de CPU. |
extensión pgvector | Soporte para tipos de datos vectoriales, lo que permite el almacenamiento y la consulta eficientes de vectores de alta dimensión. |
Gestión de conexión | Gestión de conexiones del lado del servidor que permite hasta 30.000 conexiones por nodo |
Consulte el rastreador de la hoja de ruta para obtener la lista de todos los elementos de la hoja de ruta actual.
v2.23 es la versión preliminar actual. Esto incluye funciones en desarrollo activo y se recomienda únicamente para desarrollo y pruebas. Para obtener la lista completa de funciones y mejoras de esta versión, consulte Notas de la versión - v2.23. Estas son algunas de las características destacadas.
Cree rápidamente copias independientes de su base de datos para recuperación, desarrollo y pruebas de datos.
Utilice pg_cron para programar comandos YSQL utilizando una sintaxis cron familiar, incluidos trabajos en intervalos de hasta segundos.
Gestión simplificada de la replicación transaccional de xCluster de YSQL operando a nivel de base de datos en lugar de a nivel de tabla.
¡Las mejoras en el rendimiento del escaneo hacia atrás ahora permiten que dichas consultas sean 10 veces más rápidas desde el primer momento!
v2024.1 es la versión estable actual. Las versiones estables se someten a pruebas rigurosas durante un período de tiempo más largo y están listas para su uso en producción. Para obtener la lista completa de funciones y mejoras de esta versión, consulte Notas de la versión: v2024.1. Estas son algunas de las características destacadas.
Le permite aprovechar muchas mejoras nuevas tanto en la compatibilidad de PostgreSQL como en la paridad de rendimiento, lo que hace que sea aún más fácil levantar y trasladar sus aplicaciones de PostgreSQL a YugabyteDB. Cuando este modo está activado, YugabyteDB utiliza el modo de aislamiento de lectura confirmada, el modo de concurrencia de espera en conflicto para latencias P99 predecibles y el nuevo optimizador basado en costos.
Vuelva sin problemas a la versión anterior a la actualización si no está satisfecho con la versión actualizada.
Una estrategia de ejecución de uniones que mejora las uniones de bucle anidado al enviar una solicitud a la tabla interna por lote de tuplas de la tabla externa en lugar de una vez por cada tupla de la tabla externa individual.
Explicar Analizar, cuando se usa con la opción DIST, también mostrará las filas leídas de la capa de almacenamiento, lo que puede ayudar a diagnosticar el rendimiento de la consulta.
Revise la arquitectura detallada en nuestros documentos.
Puede hacer preguntas, encontrar respuestas y ayudar a otros en nuestra comunidad Slack, foro, Stack Overflow y Twitter @Yugabyte.
Utilice problemas de GitHub para informar problemas o solicitar nuevas funciones.
Para solucionar problemas de YugabyteDB y de nivel de clúster/nodo, consulte la documentación de solución de problemas.
Como proyecto de código abierto con un fuerte enfoque en la comunidad de usuarios, agradecemos las contribuciones como solicitudes de extracción de GitHub. Consulte nuestras Guías para colaboradores para comenzar. Las discusiones y RFC sobre características ocurren en la sección de discusiones de diseño de nuestro Foro.
El código fuente de este repositorio tiene diversas licencias bajo la licencia Apache 2.0 y la licencia de prueba gratuita Polyform 1.0.0. Puede encontrar una copia de cada licencia en el directorio de licencias.
La compilación produce dos conjuntos de binarios:
Toda la base de datos con todas sus funciones (incluidas las empresariales) tiene la licencia Apache 2.0.
Los archivos binarios que contienen -managed
en el artefacto y ayudan a ejecutar un servicio administrado tienen la licencia de prueba gratuita de Polyform 1.0.0.
De forma predeterminada, las opciones de compilación generan solo los archivos binarios de la licencia Apache 2.0.
Para ver nuestras actualizaciones, vaya al Blog de SQL distribuido.
Para obtener detalles detallados sobre el diseño y la arquitectura, consulte nuestras especificaciones de diseño.
Charlas y vídeos técnicos.
Vea cómo se compara YugabyteDB con otras bases de datos.