Noções básicas sobre bancos de dados relacionais distribuídos
APLICA-SE A: Azure Cosmos DB para PostgreSQL (alimentado pela extensão de banco 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, quando você lê sobre grandes volumes ou altas cargas de trabalho transacionais, é fácil pensar que essas cargas de trabalho são muito maiores do que qualquer outra que seu aplicativo possa enfrentar. A suposição de que sua carga de trabalho permanecerá pequena pode ser uma suposição segura no início de um projeto, ideia ou organização. No entanto, essa suposição pode levar rapidamente a um cenário em que a carga de trabalho do seu aplicativo cresce muito além de quaisquer previsões que você tenha feito. Não é incomum 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 era econômico e de desempenho no início de um projeto.
Bases de dados relacionais
Os bancos de dados relacionais organizam os dados em um formato tabular (linha/coluna) com relações entre diferentes tabelas nos bancos de dados. Bancos de dados relacionais são comuns em várias empresas. Essas empresas geralmente têm uma grande variedade de desenvolvedores de software que escreveram código em um banco de dados relacional ou administradores que projetam esquemas e gerenciam plataformas de banco de dados relacional. As bases de dados relacionais também suportam frequentemente transações com garantias ACID.
Infelizmente, muitos sistemas de banco de dados relacional são inicialmente configurados pelas organizações de forma de nó único com restrições superiores em recursos de computação, memória e rede. Esse contexto pode levar a uma suposição incorreta de que todos os bancos de dados relacionais são de nó único por sua própria natureza.
Bases de dados distribuídas
Com muitos whitepapers nativos da nuvem, é comum ouvir sobre os benefícios dos bancos de dados NoSQL, fazendo parecer que os bancos de dados relacionais não são uma escolha razoável para bancos de dados de grande escala ou cargas de trabalho distribuídas. Embora muitos bancos de dados distribuídos não sejam relacionais, essas são opções disponíveis para cargas de trabalho de bancos de dados relacionais distribuídos.
Muitas dessas opções para bancos de dados relacionais distribuídos exigem que sua organização planeje a grande escala e a 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 pela 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 ficar de pé em 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 do Azure Cosmos DB é baseada no PostgreSQL e na extensão Citus.
Citus é uma extensão PostgreSQL que adiciona suporte ao Postgres para distribuição de dados e transações. O Azure Cosmos DB para 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, dimensioná-la de forma turnkey à medida que as necessidades do seu aplicativo crescem ao longo do tempo. Com a API para PostgreSQL, não há necessidade de 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óximos passos
Quer começar a usar o Azure Cosmos DB?