Compreender as bases de dados relacionais distribuídas

APLICA-SE A: Azure Cosmos DB para PostgreSQL (com tecnologia da extensão da base de dados Citus para PostgreSQL)

O Azure Cosmos DB é uma plataforma de base de dados distribuída globalmente para bases de dados NoSQL e relacionais de qualquer escala. Este artigo explora bases de dados relacionais distribuídas 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, veja escolher o arquivo de dados certo no Centro de Arquitetura do Azure.

Desafios

Muitas vezes, quando lê sobre grandes volumes ou cargas de trabalho transacionais elevadas, é fácil pensar que estas cargas de trabalho são muito maiores do que qualquer outra que a sua aplicação possa enfrentar. O pressuposto de que a 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 da sua aplicação cresce muito para além de quaisquer predições que tenha feito. Não é incomum ouvir histórias de cargas de trabalho que cumprem o débito máximo ou o poder de processamento da base de dados de instância única que foi económica e eficaz no início de um projeto.

Bases de dados relacionais

As bases de dados relacionais organizam os dados num formato tabular (linha/coluna) com relações entre tabelas diferentes nas bases de dados. As bases de dados relacionais são comuns em várias empresas. Muitas vezes, estas empresas têm uma grande quantidade de programadores de software que escreveram código numa base de dados relacional ou administradores que criam esquemas e gerem plataformas de bases de dados relacionais. Muitas vezes, as bases de dados relacionais também suportam transações com garantias ACID.

Infelizmente, muitos sistemas de bases de dados relacionais são inicialmente configurados por organizações de forma de nó único com restrições superiores em recursos de computação, memória e rede. Este contexto pode levar a um pressuposto incorreto de que todas as bases de dados relacionais são um nó único pela sua própria natureza.

Bases de dados distribuídas

Com muitos documentos técnicos nativos da cloud, é comum ouvir sobre os benefícios das bases de dados NoSQL, fazendo com que pareça que as bases de dados relacionais não são uma opção razoável para bases de dados de grande escala ou cargas de trabalho distribuídas. Embora muitas bases de dados distribuídas não sejam relacionais, existem opções para cargas de trabalho distribuídas de bases de dados relacionais.

Muitas destas opções para bases de dados relacionais distribuídas exigem que a sua organização planeie uma grande escala e distribuição desde o início do projeto. Este requisito de planeamento pode adicionar complexidade significativa no início de um projeto para garantir que todos os nós de servidor relevantes estão configurados, geridos e mantidos pela sua equipa. Os requisitos de planeamento, implementação e rede de uma base de dados relacional distribuída globalmente podem facilmente tornar-se muito mais complexos do que defender uma única instância (ou nó).

Azure Cosmos DB

O Azure Cosmos DB é uma plataforma de base de dados que oferece APIs de dados distribuídas em variantes relacionais e no NoSQL. Especificamente, a API relacional do Azure Cosmos DB baseia-se 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 gerido, com o Citus, que lhe dá automaticamente elevada disponibilidade sem a necessidade de planear, gerir e manter manualmente nós de servidor individuais. Com a API para PostgreSQL, pode começar com um cluster de nó único totalmente gerido, criar a sua solução de base de dados e, em seguida, dimensioná-la de forma chave na mão à medida que as necessidades da sua aplicação aumentam ao longo do tempo. Com a API para PostgreSQL, não é necessário planear um projeto de distribuição complexo com antecedência ou planear um projeto para migrar os seus dados de um nó único para uma base de dados distribuída.

Passos seguintes

Quer começar a utilizar o Azure Cosmos DB?