Escolher uma API no Azure Cosmos DB

APLICA-SE A: NoSQL MongoDB Cassandra Gremlin Tabela PostgreSQL

O Azure Cosmos DB é um banco de dados NoSQL, relacional e vetorial totalmente gerenciado para desenvolvimento de aplicativos modernos. O Azure Cosmos DB tira a administração de banco de dados de suas mãos com gerenciamento, atualizações e patches automáticos. Ele também lida com o gerenciamento de capacidade com opções econômicas de dimensionamento automático e sem servidor que respondem às necessidades dos aplicativos para adequar a capacidade à demanda.

APIs no Azure Cosmos DB

O Azure Cosmos DB oferece várias APIs de banco de dados, que incluem NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin e Table. Usando essas APIs, você pode modelar dados do mundo real usando documentos, chave-valor, gráfico e modelos de dados da família de colunas. Essas APIs permitem que seus aplicativos tratem o Azure Cosmos DB como se fossem várias outras tecnologias de bancos de dados, sem a sobrecarga de gerenciamento e abordagens de dimensionamento. O Azure Cosmos DB ajuda você a usar os ecossistemas, ferramentas e habilidades que você já tem para modelagem de dados e consultas com suas várias APIs.

Todas as APIs oferecem dimensionamento automático de armazenamento e taxa de transferência, flexibilidade e garantias de desempenho. Não há uma melhor API, e você pode escolher qualquer uma das APIs para criar seu aplicativo. Este artigo irá ajudá-lo a escolher uma API com base na sua carga de trabalho e requisitos de equipa.

Considerações ao escolher uma API

A API para NoSQL é nativa do Azure Cosmos DB.

API para MongoDB, PostgreSQL, Cassandra, Gremlin e Table implementam o protocolo wire de mecanismos de banco de dados de código aberto. Essas APIs são mais adequadas se as seguintes condições forem verdadeiras:

  • Se você tiver aplicativos MongoDB, PostgreSQL Cassandra ou Gremlin existentes
  • Se você não quiser reescrever toda a camada de acesso a dados
  • Se você quiser usar o ecossistema de desenvolvedor de código aberto, drivers de cliente, experiência e recursos para seu banco de dados
  • Se você quiser usar os recursos principais do Azure Cosmos DB, como:
    • Distribuição global
    • Dimensionamento elástico de armazenamento e throughput
    • Alto desempenho em escala
    • Baixa latência
    • Capacidade de executar cargas de trabalho transacionais e analíticas
    • Plataforma totalmente gerida
  • Se você estiver desenvolvendo aplicativos modernizados em um ambiente multicloud

Você pode criar novos aplicativos com essas APIs ou migrar seus dados existentes. Para executar os aplicativos migrados, altere a cadeia de conexão do seu aplicativo e continue a executar como antes. Ao migrar aplicativos existentes, certifique-se de avaliar o suporte a recursos dessas APIs.

Com base na sua carga de trabalho, você deve escolher a API que atenda às suas necessidades. A imagem a seguir mostra um fluxograma sobre como escolher a API certa ao criar novos aplicativos ou migrar aplicativos existentes para o Azure Cosmos DB:

Diagrama da árvore de decisão para escolher uma API no Azure Cosmos DB.

Diagrama da árvore de decisão para escolher uma API no Azure Cosmos DB. Metade do diagrama ilustra quantas cargas de trabalho de banco de dados de código aberto existentes podem usar as APIs correspondentes para o Azure Cosmos DB. A outra metade do diagrama ilustra como novos aplicativos podem usar a API para NoSQL ou usar suas habilidades existentes com APIs para bancos de dados de código aberto.

API para NoSQL

A API do Azure Cosmos DB para NoSQL armazena dados em formato de documento. Ele oferece a melhor experiência de ponta a ponta, pois temos controle total sobre a interface, o serviço e as bibliotecas de cliente SDK. Qualquer novo recurso implantado no Azure Cosmos DB está disponível pela primeira vez na API para contas NoSQL. As contas NoSQL fornecem suporte para consultar itens usando a sintaxe SQL (Structured Query Language), uma das linguagens de consulta mais conhecidas e populares para consultar objetos JSON. Para saber mais, consulte o módulo de treinamento da API do Azure Cosmos DB para NoSQL e o artigo Introdução às consultas SQL.

Se você estiver migrando de outros bancos de dados, como Oracle, DynamoDB, HBase etc. e se quiser usar as tecnologias modernizadas para criar seus aplicativos, a API para NoSQL é a opção recomendada. A API para NoSQL suporta análises e oferece isolamento de desempenho entre cargas de trabalho operacionais e analíticas.

API para MongoDB

A API do Azure Cosmos DB para MongoDB armazena dados em uma estrutura de documento, via formato BSON. É compatível com o protocolo de fio MongoDB; no entanto, ele não usa nenhum código nativo relacionado ao MongoDB. A API para MongoDB é uma ótima opção se você quiser usar o ecossistema e as habilidades mais amplos do MongoDB, sem comprometer o uso dos recursos do Azure Cosmos DB.

Os recursos que o Azure Cosmos DB fornece, que você não precisa comprometer, incluem:

  • Dimensionamento
  • Elevada disponibilidade
  • Georreplicação
  • Vários locais de gravação
  • Gestão automática e transparente de estilhaços
  • Replicação transparente entre armazenamentos operacionais e analíticos

Você pode usar seus aplicativos MongoDB existentes com a API para MongoDB apenas alterando a cadeia de conexão. Você pode mover quaisquer dados existentes usando ferramentas nativas do MongoDB, como mongodump & mongorestore ou usando nossa ferramenta de Migração de Banco de Dados do Azure. Ferramentas, como o shell do MongoDB, o MongoDB Compass e o Robo3T, podem executar consultas e trabalhar com dados como fazem com o MongoDB nativo. Para saber mais, consulte o artigo API for MongoDB .

API para PostgreSQL

O Azure Cosmos DB for PostgreSQL é um serviço gerenciado para executar o PostgreSQL em qualquer escala, com o superpoder de código aberto Citus de tabelas distribuídas. Ele armazena dados em um único nó ou distribuídos em uma configuração de vários nós.

O Azure Cosmos DB para PostgreSQL é baseado em PostgreSQL nativo - em vez de um fork PostgreSQL - e permite que você escolha as principais versões de banco de dados suportadas pela comunidade PostgreSQL. É ideal para começar em um banco de dados de nó único com indexação avançada, recursos geoespaciais e suporte a JSONB. Mais tarde, se precisar de mais desempenho, você pode adicionar nós ao cluster com zero tempo de inatividade.

Se você estiver procurando um banco de dados relacional de código aberto gerenciado com alto desempenho e replicação geográfica, o Azure Cosmos DB para PostgreSQL é a escolha recomendada. Para saber mais, consulte a introdução do Azure Cosmos DB para PostgreSQL.

API para Apache Cassandra

A API do Azure Cosmos DB para Cassandra armazena dados em esquema orientado a colunas. O Apache Cassandra oferece uma abordagem de dimensionamento horizontal altamente distribuída para armazenar grandes volumes de dados, ao mesmo tempo em que oferece uma abordagem flexível para um esquema orientado a colunas. A API para Cassandra no Azure Cosmos DB está alinhada com essa filosofia para abordar bancos de dados NoSQL distribuídos. Esta API para Cassandra é um protocolo de fio compatível com Apache Cassandra nativo. Você deve considerar a API para Cassandra se quiser se beneficiar da elasticidade e da natureza totalmente gerenciada do Azure Cosmos DB e ainda usar a maioria dos recursos, ferramentas e ecossistema nativos do Apache Cassandra. Essa natureza totalmente gerenciada significa que na API para Cassandra você não precisa gerenciar o sistema operacional, Java VM, coletor de lixo, desempenho de leitura/gravação, nós, clusters, etc.

Você pode usar drivers de cliente Apache Cassandra para se conectar à API para Cassandra. A API para Cassandra permite que você interaja com dados usando a Cassandra Query Language (CQL) e ferramentas como shell CQL, drivers de cliente Cassandra com os quais você já está familiarizado. API para Cassandra atualmente só suporta cenários OLTP. Usando a API para Cassandra, você também pode usar os recursos exclusivos do Azure Cosmos DB, como o feed de alterações. Para saber mais, consulte o artigo API for Cassandra . Para obter mais informações se você já estiver familiarizado com o Apache Cassandra, mas for novo no Azure Cosmos DB, consulte como se adaptar à API para Cassandra.

API para Apache Gremlin

A API do Azure Cosmos DB para Gremlin permite que os usuários façam consultas de gráfico e armazenem dados como bordas e vértices.

Use a API para Gremlin para cenários:

  • Envolvendo dados dinâmicos
  • Envolver dados com relações complexas
  • Envolvendo dados muito complexos para serem modelados com bancos de dados relacionais
  • Se você quiser usar o ecossistema Gremlin existente e habilidades

A API para Gremlin combina o poder dos algoritmos de banco de dados gráficos com infraestrutura altamente escalável e gerenciada. Esta API fornece uma solução única e flexível para problemas de dados comuns associados à falta de flexibilidade ou abordagens relacionais. API para Gremlin atualmente suporta apenas cenários OLTP.

A API para Gremlin é baseada na estrutura de computação gráfica Apache TinkerPop . A API para Gremlin usa a mesma linguagem de consulta do Graph para ingerir e consultar dados. Ele usa a estratégia de partição do Azure Cosmos DB para fazer as operações de leitura/gravação do mecanismo de banco de dados Graph. API para Gremlin tem um suporte de protocolo de fio com o Gremlin de código aberto, para que você possa usar os SDKs Gremlin de código aberto para construir seu aplicativo. A API para Gremlin também funciona com Apache Spark e GraphFrames para cenários gráficos analíticos complexos. Para saber mais, consulte o artigo API for Gremlin .

API para Tabela

A API do Azure Cosmos DB para Tabela armazena dados no formato chave/valor. Se você estiver usando o armazenamento de tabela do Azure, poderá ver algumas limitações em latência, dimensionamento, taxa de transferência, distribuição global, gerenciamento de índice, baixo desempenho de consulta. A API for Table supera essas limitações e é recomendável migrar seu aplicativo se você quiser usar os benefícios do Azure Cosmos DB. A API for Table suporta apenas cenários OLTP.

Os aplicativos escritos para o armazenamento de Tabela do Azure podem migrar para a API para Tabela com poucas alterações de código e aproveitar os recursos premium. Para saber mais, consulte o artigo API for Table .

Planejamento de capacidade ao migrar dados

Tentando fazer o planejamento de capacidade para uma migração para o Azure Cosmos DB para NoSQL ou MongoDB de um cluster de banco de dados existente? Você pode usar informações sobre seu cluster de banco de dados existente para planejamento de capacidade.

Próximos passos