YugabyteDB é um banco de dados SQL distribuído, compatível com PostgreSQL, de alto desempenho, nativo da nuvem. Ele combina os benefícios dos bancos de dados relacionais tradicionais com a escalabilidade dos sistemas NoSQL, tornando-o adequado para aplicações que exigem consistência transacional e capacidade de lidar com grandes quantidades de dados. Ele é mais adequado para aplicativos OLTP nativos da nuvem (ou seja, em tempo real, críticos para os negócios) que precisam de correção absoluta dos dados e exigem pelo menos um dos seguintes: escalabilidade, alta tolerância a falhas ou implantações distribuídas globalmente.
Recursos principais
Comece
Crie aplicativos
Roteiro atual
Recursos recentes
Arquitetura
Precisar de ajuda?
Contribuir
Licença
Leia mais
Recursos poderosos de RDBMS Yugabyte SQL (abreviadamente YSQL ) reutiliza a camada de consulta PostgreSQL (semelhante ao Amazon Aurora PostgreSQL), oferecendo suporte à maioria de seus recursos (tipos de dados, consultas, expressões, operadores e funções, procedimentos armazenados, gatilhos, extensões e assim por diante ).
Transações distribuídas O design da transação é baseado na arquitetura Google Spanner. A forte consistência de gravações é alcançada usando o consenso Raft para replicação e transações ACID distribuídas em todo o cluster usando relógios lógicos híbridos . Níveis de isolamento instantâneos , serializáveis e confirmados de leitura são suportados. As leituras (consultas) têm forte consistência por padrão, mas podem ser ajustadas dinamicamente para leitura de seguidores e leitura de réplicas.
Disponibilidade contínua O YugabyteDB é extremamente resistente a interrupções comuns com failover e reparo nativos. YugabyteDB pode ser configurado para tolerar falhas de disco, rack, nó, zona, região e nuvem automaticamente. Para uma implantação típica em que um cluster YugabyteDB é implantado em uma região em várias zonas em uma nuvem pública, o RPO é 0 (o que significa que nenhum dado é perdido em caso de falha) e o RTO é de 3 segundos (o que significa que os dados estão sendo servidos pelo nó com falha). está disponível em 3 segundos).
Escalabilidade horizontal Dimensionar um cluster YugabyteDB para obter mais IOPS ou armazenamento de dados é tão simples quanto adicionar nós ao cluster.
O YugabyteDB multinuvem e distribuído geograficamente pode ser implantado em nuvens públicas e nativamente dentro do Kubernetes. Ele oferece suporte a implantações que abrangem três ou mais domínios de falha, como implantações multizona, multirack, multirregião e multinuvem. Ele também oferece suporte à replicação assíncrona xCluster com configurações mestre-escravo unidirecionais e multimestre bidirecionais em implantações em duas regiões. As réplicas de leitura também são suportadas para servir dados (obsoletos) com baixas latências.
Design de múltiplas APIs A camada de consulta YugabyteDB foi construída para ser extensível. Atualmente, YugabyteDB suporta duas APIs SQL distribuídas: Yugabyte SQL (YSQL), uma API totalmente relacional que reutiliza a camada de consulta PostgreSQL, e Yugabyte Cloud QL (YCQL), uma API semi-relacional semelhante a SQL com suporte a documentos/indexação com Raízes do Apache Cassandra QL.
100% de código aberto YugabyteDB é totalmente de código aberto sob a licença Apache 2.0. A versão de código aberto possui recursos empresariais poderosos, como backups distribuídos, criptografia de dados em repouso, criptografia TLS em trânsito, captura de dados alterados, réplicas de leitura e muito mais.
O YugabyteDB foi criado com vários objetivos principais de design em mente, com o objetivo de enfrentar os desafios enfrentados por aplicativos modernos e nativos da nuvem, mantendo ao mesmo tempo a familiaridade e o poder dos bancos de dados relacionais tradicionais. Leia mais sobre isso em nossos objetivos de design.
Início rápido
Tente executar um aplicativo de demonstração real:
Aplicativo de comércio eletrônico orientado a microsserviços
Aplicativo IoT de streaming com Kafka e Spark Streaming
Não consegue encontrar o que procura? Tem alguma pergunta? Poste suas perguntas ou comentários em nosso Community Slack ou Fórum.
YugabyteDB oferece suporte a muitas linguagens e drivers clientes, incluindo Java, Go, NodeJS, Python e muito mais. Para obter uma lista completa, incluindo exemplos, consulte Drivers e ORMs.
A seguir está uma lista de alguns dos principais recursos que estão sendo trabalhados para os próximos lançamentos.
Recurso | Detalhes |
---|---|
Compatibilidade com PostgreSQL 15 | Para recursos mais recentes, novas extensões do PostgreSQL, desempenho e correções da comunidade. |
API de slot de publicação/replicação PostgreSQL no CDC | O PostgreSQL possui uma enorme comunidade que precisa de uma API compatível com PG para configurar e consumir alterações no banco de dados. |
Verificação de bitmap | Suporte para varredura de bitmap para uso de varreduras de índice, filtro remoto e modelo de custo aprimorado. |
Otimizador baseado em custos (CBO) | Planos de consulta eficientes baseados em estatísticas (como tamanho da tabela, número de linhas) e distribuição de dados. |
Execução de consulta paralela | Maior desempenho de consulta dividindo uma única consulta para execução em diferentes núcleos de CPU. |
extensão pgvector | Suporte para tipos de dados vetoriais, permitindo armazenamento e consulta eficientes de vetores de alta dimensão. |
Gerenciamento de conexão | Gerenciamento de conexões no lado do servidor, permitindo até 30 mil conexões por nó |
Consulte o rastreador do roteiro para obter a lista de todos os itens do roteiro atual.
v2.23 é a versão de visualização atual. Isso inclui recursos em desenvolvimento ativo e é recomendado apenas para desenvolvimento e teste. Para obter a lista completa de recursos e melhorias desta versão, consulte Notas de versão - v2.23. Aqui estão alguns dos recursos proeminentes.
Crie rapidamente cópias independentes do seu banco de dados para recuperação, desenvolvimento e teste de dados.
Use pg_cron para agendar comandos YSQL usando a sintaxe cron familiar, incluindo tarefas em intervalos tão finos quanto segundos.
Gerenciamento simplificado da replicação transacional YSQL xCluster operando no nível do banco de dados em vez do nível da tabela.
As melhorias no desempenho da varredura retroativa agora permitem que essas consultas sejam 10 vezes mais rápidas imediatamente!
v2024.1 é a versão estável atual. As versões estáveis passam por testes rigorosos por um longo período de tempo e estão prontas para uso em produção. Para obter a lista completa de recursos e melhorias desta versão, consulte Notas de versão - v2024.1. Aqui estão alguns dos recursos proeminentes.
Permite que você aproveite muitas novas melhorias na compatibilidade do PostgreSQL e na paridade de desempenho, tornando ainda mais fácil a migração de seus aplicativos do PostgreSQL para o YugabyteDB. Quando este modo está ativado, o YugabyteDB usa o modo de isolamento Read-Committed, o modo de simultaneidade Wait-on-Conflict para latências P99 previsíveis e o novo Cost Based Optimizer.
Reverta perfeitamente para a versão de pré-atualização se não estiver satisfeito com a versão atualizada.
Uma estratégia de execução de junção que melhora as junções de Nested Loop enviando uma solicitação para a tabela interna por lote de tuplas de tabela externa em vez de uma vez por tupla de tabela externa individual.
O Explique Analisar, quando usado com a opção DIST, também mostrará as linhas lidas da camada de armazenamento, o que pode ajudar a diagnosticar o desempenho da consulta.
Revise a arquitetura detalhada em nossos documentos.
Você pode fazer perguntas, encontrar respostas e ajudar outras pessoas em nossa comunidade Slack, Fórum, Stack Overflow e também no Twitter @Yugabyte.
Use problemas do GitHub para relatar problemas ou solicitar novos recursos.
Para solucionar problemas de YugabyteDB e de nível de cluster/nó, consulte a documentação de solução de problemas.
Como um projeto de código aberto com forte foco na comunidade de usuários, aceitamos contribuições como pull requests do GitHub. Consulte nossos Guias do Colaborador para começar. As discussões e RFCs para recursos acontecem na seção de discussões de design do nosso Fórum.
O código-fonte neste repositório é licenciado de várias maneiras sob a Licença Apache 2.0 e a Licença de avaliação gratuita Polyform 1.0.0. Uma cópia de cada licença pode ser encontrada no diretório de licenças.
A compilação produz dois conjuntos de binários:
Todo o banco de dados com todos os seus recursos (incluindo os corporativos) está licenciado sob a Licença Apache 2.0
Os binários que contêm -managed
no artefato e ajudam a executar um serviço gerenciado são licenciados sob a Licença de Avaliação Gratuita Polyform 1.0.0.
Por padrão, as opções de construção geram apenas os binários da Licença Apache 2.0.
Para ver nossas atualizações, acesse o Blog SQL Distribuído.
Para detalhes detalhados de design e arquitetura, consulte nossas especificações de design.
Palestras e vídeos técnicos.
Veja como o YugabyteDB se compara a outros bancos de dados.