Noções básicas sobre bancos de dados NoSQL distribuídos
APLICA-SE AO: NoSQL MongoDB Cassandra Gremlin Table
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 do 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 a 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 arquitetônica e forçará qualquer equipe com uma carga de trabalho transacional alta a encontrar soluções alternativas, como distribuir manualmente ou fragmentar dados em vários bancos de dados ou nós de banco de dados diferentes. Essas soluções alternativas podem ser demoradas e desafiadoras de serem implementadas.
Bancos 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 possam ser dimensionados em muitos nós e oferecer velocidade ou disponibilidade melhor mapeadas para as necessidades do aplicativo.
Bancos de dados distribuídos
Bancos de dados distribuídos referem-se a bancos de dados que são dimensionados em várias 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, altas cargas de trabalho transacionais de repente se tornaram mais fáceis de compilar 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 do NoSQL oferecem várias opções de consistência que permitem ajustar o nível de consistência ou disponibilidade que atende aos seus requisitos de aplicativo do mundo real. Seu banco de dados pode ser configurado para oferecer alta consistência com compensações para velocidade e disponibilidade. Da mesma forma, seu banco de dados pode ser configurado para oferecer o melhor desempenho com compensações previsíveis para consistência e latência dos dados replicados. O Azure Cosmos DB distribuirá automaticamente e dinamicamente seus dados entre instâncias locais ou globalmente. O Azure Cosmos DB também pode fornecer garantias ACID e reduzir a taxa de transferência para mapear para os requisitos do aplicativo.
Próximas etapas
Deseja começar com o Azure Cosmos DB?