Noções básicas sobre bancos de dados relacionais distribuídos
APLICA-SE AO: Azure Cosmos DB for PostgreSQL (da plataforma da extensão de dados Citus para PostgreSQL)
O Azure Cosmos DB é uma plataforma de banco de dados distribuída globalmente para bancos de dados NoSQL e relacionais de qualquer escala. Este artigo explora bancos de dados relacionais distribuídos no contexto da opção de API relacional do Azure Cosmos DB.
Para obter mais informações sobre outras opções de armazenamento de dados no Azure, consulte escolhendo o armazenamento de dados correto no Centro de Arquitetura do Azure.
Desafios
Muitas vezes, ao ler sobre grandes volumes ou cargas de trabalho transacionais altas, é fácil pensar que essas cargas de trabalho são muito maiores do que qualquer outra que seu aplicativo possa enfrentar. Pressupor que sua carga de trabalho permanecerá pequena pode ser uma hipótese segura no início de um projeto, ideia ou organização. No entanto, essa hipótese pode levar rapidamente a um cenário em que a carga de trabalho do aplicativo cresce muito além das previsões feitas. É comum ouvir histórias de cargas de trabalho que atendem à taxa de transferência máxima ou ao poder de processamento do banco de dados de instância única que foi econômico e de alto desempenho no início de um projeto.
Bancos de dados relacionais
Os bancos de dados relacionais organizam os dados em um formato tabular (linha/coluna) com relações entre tabelas diferentes nos bancos de dados. Bancos de dados relacionais são comuns em várias empresas. Essas empresas geralmente têm uma grande quantidade de desenvolvedores de software que gravam código em um banco de dados relacional ou administradores que criam esquemas e gerenciam plataformas de banco de dados relacionais. Os bancos de dados relacionais também costumam dar suporte a transações com garantias ACID.
Infelizmente, muitos sistemas de banco de dados relacionais são configurados inicialmente por organizações com um nó único e restrições superiores em recursos de computação, memória e rede. Esse contexto pode levar a uma hipótese incorreta de que todos os bancos de dados relacionais são um nó único por natureza.
Bancos de dados distribuídos
Com muitos white papers nativos de nuvem, é comum ouvir sobre os benefícios dos bancos de dados NoSQL e isso faz parecer que os bancos de dados relacionais não são uma opção razoável para bancos de dados em grande escala ou cargas de trabalho distribuídas. Embora muitos bancos de dados distribuídos não sejam relacionais, existem opções para cargas de trabalho de banco de dados relacional distribuídas.
Muitas dessas opções para bancos de dados relacionais distribuídos exigem que sua organização planeje para grande escala e distribuição desde o início do projeto. Esse requisito de planejamento pode adicionar complexidade significativa no início de um projeto para garantir que todos os nós de servidor relevantes sejam configurados, gerenciados e mantidos por sua equipe. Os requisitos de planejamento, implementação e rede para um banco de dados relacional distribuído globalmente podem facilmente se tornar muito mais complexos do que manter uma única instância (ou nó).
Azure Cosmos DB
O Azure Cosmos DB é uma plataforma de banco de dados que oferece APIs de dados distribuídos em NoSQL e variantes relacionais. Especificamente, a API relacional para o Azure Cosmos DB baseia-se no PostgreSQL e na extensão Citus.
O Citus é uma extensão do PostgreSQL que adiciona suporte ao Postgres para distribuição de dados e transações. O Azure Cosmos DB for PostgreSQL é um serviço totalmente gerenciado, usando o Citus, que oferece automaticamente alta disponibilidade sem a necessidade de planejar, gerenciar e manter manualmente nós de servidor individuais. Com a API para PostgreSQL, você pode começar com um cluster de nó único totalmente gerenciado, criar sua solução de banco de dados e, em seguida, escalá-la de forma completa à medida que as necessidades do aplicativo crescem ao longo do tempo. Com a API para PostgreSQL, não é necessário planejar um projeto de distribuição complexo com antecedência ou planejar um projeto para migrar seus dados de um nó único para um banco de dados distribuído no futuro.
Próximas etapas
Deseja iniciar com o Azure Cosmos DB?