Noções básicas sobre bancos de dados NoSQL distribuídos
APLICA-SE A: NoSQL MongoDB Cassandra Gremlin Tabela
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 NoSQL distribuídos no contexto das várias opções de API NoSQL 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
Um dos desafios ao manter um sistema de banco de dados é que muitos mecanismos de banco de dados aplicam bloqueios e travas para impor semântica ACID estrita. Essa abordagem é benéfica em cenários em que os bancos de dados exigem alta consistência do estado dos dados, independentemente de como eles são acessados. Embora essa abordagem prometa alta consistência, ela faz compensações pesadas em relação à simultaneidade, latência e disponibilidade. Essa restrição é fundamentalmente uma restrição de arquitetura e forçará qualquer equipe com uma alta carga de trabalho transacional a encontrar soluções alternativas, como distribuir manualmente ou fragmentar dados em muitos bancos de dados ou nós de banco de dados diferentes. Essas soluções alternativas podem ser demoradas e difíceis de implementar.
Bases de dados NoSQL
Os bancos de dados NoSQL referem-se a bancos de dados que foram projetados para simplificar o dimensionamento horizontal, ajustando a consistência para minimizar as compensações para simultaneidade, latência e disponibilidade. Os bancos de dados NoSQL ofereciam níveis configuráveis de consistência para que os dados pudessem ser dimensionados em vários nós e oferecer velocidade ou disponibilidade melhor mapeada para as necessidades do seu aplicativo.
Bases de dados distribuídas
Bancos de dados distribuídos referem-se a bancos de dados que são dimensionados em muitas instâncias ou locais diferentes. Embora muitos bancos de dados NoSQL sejam projetados para escala, nem todos são necessariamente bancos de dados distribuídos. Ainda mais, muitos bancos de dados NoSQL exigem tempo e esforço para distribuir entre nós redundantes para redundância local ou globalmente para redundância geográfica. Os requisitos de planejamento, implementação e rede para um banco de dados distribuído globalmente podem ser complexos.
Azure Cosmos DB
Com um banco de dados distribuído que também é um banco de dados NoSQL, cargas de trabalho transacionais elevadas de repente se tornaram mais fáceis de criar e gerenciar. O Azure Cosmos DB é uma plataforma de banco de dados que oferece APIs de dados distribuídos em NoSQL e variantes relacionais. Especificamente, muitas das APIs NoSQL oferecem várias opções de consistência que permitem ajustar o nível de consistência ou disponibilidade que atende aos requisitos de aplicativos do mundo real. Seu banco de dados pode ser configurado para oferecer alta consistência com compensações de velocidade e disponibilidade. Da mesma forma, seu banco de dados pode ser configurado para oferecer o melhor desempenho com compensações previsíveis para a consistência e a latência dos dados replicados. O Azure Cosmos DB distribuirá seus dados de forma automática e dinâmica entre instâncias locais ou globalmente. O Azure Cosmos DB também pode fornecer garantias ACID e taxa de transferência de escala para mapear os requisitos do seu aplicativo.
Próximos passos
Quer começar a usar o Azure Cosmos DB?