Casos de utilização comuns do Azure Cosmos DB

APLICA-SE A: NoSQL MongoDB Cassandra Gremlin Tabela

Este artigo fornece uma descrição geral de vários casos de utilização comuns para o Azure Cosmos DB. As recomendações neste artigo servem como ponto de partida à medida que desenvolve a sua aplicação com o Azure Cosmos DB.

Depois de ler este artigo, poderá responder às seguintes perguntas:

  • Quais são os casos de utilização comuns do Azure Cosmos DB?
  • Quais são as vantagens de utilizar o Azure Cosmos DB para aplicações de retalho?
  • Quais são as vantagens de utilizar o Azure Cosmos DB como um arquivo de dados para sistemas de Internet das Coisas (IoT).
  • Quais são as vantagens de utilizar o Azure Cosmos DB para aplicações Web e móveis?

Introdução

O Azure Cosmos DB é a solução do Azure para uma base de dados NoSQL rápida, com APIs abertas para qualquer escala. O serviço foi concebido para permitir que os clientes dimensionem de forma elástica (e independente) o débito e o armazenamento em qualquer número de regiões geográficas. O Azure Cosmos DB é hoje o primeiro serviço de base de dados distribuído globalmente no mercado a oferecer contratos abrangentes de nível de serviço que abrangem débito, latência, disponibilidade e consistência.

O Azure Cosmos DB é uma base de dados global distribuída com vários modelos que é utilizada numa vasta gama de aplicações e casos de utilização. É uma boa opção para qualquer aplicação sem servidor que necessite de tempos de resposta de baixa ordem de milissegundos e precisa de ser dimensionada de forma rápida e global. Suporta vários modelos de dados (chave-valor, documentos, gráficos e colunas) e muitas APIs do Azure Cosmos DB para acesso a dados, incluindo API para MongoDB, API para NoSQL, API para Gremlin e API para Tabela nativamente e de forma extensível.

Seguem-se alguns atributos do Azure Cosmos DB que o tornam adequado para aplicações de alto desempenho com ambição global.

  • O Azure Cosmos DB cria partições nativas dos seus dados para elevada disponibilidade e escalabilidade. O Azure Cosmos DB oferece 99,99% de garantias de disponibilidade, débito, baixa latência e consistência em todas as contas de região única e em todas as contas de várias regiões com consistência reduzida e 99,999% de disponibilidade de leitura em todas as contas de bases de dados de várias regiões.
  • O Azure Cosmos DB tem armazenamento suportado por SSD com tempos de resposta de ordem de baixa latência de milissegundos.
  • O suporte do Azure Cosmos DB para níveis de consistência, como o prefixo eventual, consistente, a sessão e a estagnação limitada, permitem uma flexibilidade total e uma relação custo-desempenho baixa. Nenhum serviço de base de dados oferece tanta flexibilidade como o Azure Cosmos DB na consistência de níveis.
  • O Azure Cosmos DB tem um modelo de preços flexível compatível com dados que medi o armazenamento e o débito de forma independente.
  • O modelo de débito reservado do Azure Cosmos DB permite-lhe pensar em termos de número de leituras/escritas em vez de CPU/memória/IOPs do hardware subjacente.
  • A estrutura do Azure Cosmos DB permite-lhe dimensionar para grandes volumes de pedidos na ordem dos triliões de pedidos por dia.

Estes atributos são benéficos em aplicações Web, móveis, jogos e IoT que precisam de tempos de resposta baixos e precisam de lidar com enormes quantidades de leituras e escritas.

IoT e telemática

Normalmente, os casos de utilização de IoT partilham alguns padrões na forma como ingerem, processam e armazenam dados. Primeiro, estes sistemas precisam de ingerir rajadas de dados de sensores de dispositivos de várias regiões. Em seguida, estes sistemas processam e analisam dados de transmissão em fluxo para obter informações em tempo real. Em seguida, os dados são arquivados no armazenamento a frio para análise de lotes. O Microsoft Azure oferece serviços avançados que podem ser aplicados a casos de utilização do IoT, incluindo o Azure Cosmos DB, Hubs de Eventos do Azure, o Azure Stream Analytics, o Hub de Notificação do Azure, o Azure Machine Learning, o Azure HDInsight e o Power BI.

Arquitetura de referência de IoT do Azure Cosmos DB

As rajadas de dados podem ser ingeridas por Hubs de Eventos do Azure, uma vez que oferece ingestão de dados de débito elevado com baixa latência. Os dados ingeridos que precisam de ser processados para informações em tempo real podem ser canalizados para o Azure Stream Analytics para análise em tempo real. Os dados podem ser carregados para o Azure Cosmos DB para consulta adhoc. Assim que os dados forem carregados para o Azure Cosmos DB, os dados estarão prontos para serem consultados. Além disso, os novos dados e alterações aos dados existentes podem ser lidos no feed de alterações. O feed de alterações é um registo persistente e acrescentado que armazena as alterações aos contentores do Azure Cosmos DB por ordem sequencial. Em seguida, todos os dados ou apenas alterações aos dados no Azure Cosmos DB podem ser utilizados como dados de referência como parte da análise em tempo real. Além disso, os dados podem ser aperfeiçoados e processados ao ligar dados do Azure Cosmos DB ao HDInsight para tarefas de Pig, Hive ou Map/Reduce. Em seguida, os dados refinados são carregados novamente para o Azure Cosmos DB para relatórios.

Para obter uma solução IoT de exemplo com o Azure Cosmos DB, os Hubs de Eventos e o Apache Storm, veja o repositório hdinsight-storm-examples no GitHub.

Para obter mais informações sobre as ofertas do Azure para IoT, consulte Criar a Internet das Suas Coisas.

Retalho e marketing

O Azure Cosmos DB é utilizado extensivamente nas próprias plataformas de comércio eletrónico da Microsoft, que executam a Loja Windows e o XBox Live. Também é utilizado no setor de retalho para armazenar dados de catálogo e para o fornecimento de eventos em pipelines de processamento de encomendas.

Os cenários de utilização de dados de catálogo envolvem armazenar e consultar um conjunto de atributos para entidades como pessoas, locais e produtos. Alguns exemplos de dados de catálogo são contas de utilizador, catálogos de produtos, registos de dispositivos IoT e fatura de sistemas de materiais. Os atributos para estes dados podem variar e podem ser alterados ao longo do tempo para se ajustarem aos requisitos da aplicação.

Considere um exemplo de um catálogo de produtos para um fornecedor de peças para automóveis. Cada parte pode ter os seus próprios atributos, além dos atributos comuns que todas as partes partilham. Além disso, os atributos de uma parte específica podem mudar no ano seguinte quando um novo modelo é lançado. O Azure Cosmos DB suporta esquemas flexíveis e dados hierárquicos e, portanto, é adequado para armazenar dados do catálogo de produtos.

Arquitetura de referência do catálogo de revenda do Azure Cosmos DB

O Azure Cosmos DB é frequentemente utilizado para a origem de eventos para ligar arquiteturas condicionadas por eventos através da respetiva funcionalidade de feed de alterações . O feed de alterações fornece microsserviços a jusante a capacidade de ler inserções e atualizações de forma fiável e incremental (por exemplo, eventos de encomenda) efetuadas a um Azure Cosmos DB. Esta funcionalidade pode ser aproveitada para fornecer um arquivo de eventos persistente como um mediador de mensagens para eventos que mudam de estado e impulsionar o fluxo de trabalho de processamento de encomendas entre muitos microsserviços (que podem ser implementados como Funções do Azure sem servidor).

Arquitetura de referência do pipeline de ordenação do Azure Cosmos DB

Além disso, os dados armazenados no Azure Cosmos DB podem ser integrados no HDInsight para análise de macrodados através de tarefas do Apache Spark. Para obter detalhes sobre o Conector do Spark para o Azure Cosmos DB, veja Executar uma tarefa do Spark com o Azure Cosmos DB e o HDInsight.

Jogos

A camada da base de dados é um componente crucial das aplicações de jogos. Os jogos modernos executam o processamento gráfico em clientes móveis/de consola, mas contam com a cloud para disponibilizar conteúdo personalizado, como as estatísticas no jogo, a integração de redes sociais e as classificações com as pontuações mais altas. Os jogos geralmente requerem latências de milissegundos para leituras e escritas para proporcionar uma experiência envolvente no jogo. Uma base de dados de jogos precisa de ser rápida e conseguir lidar com grandes picos em taxas de pedidos durante os lançamentos de novos jogos e nas atualizações de funcionalidades.

O Azure Cosmos DB é utilizado por jogos como The Walking Dead: No Man's Land by Next Games e Halo 5: Guardians by 343 Industries. O Azure Cosmos DB proporciona os seguintes benefícios aos programadores de jogos:

  • O Azure Cosmos DB permite que o desempenho seja aumentado ou reduzido verticalmente. Isto permite que os jogos processem a atualização de perfis e estatísticas de dezenas a milhões de jogadores simultâneos ao efetuar uma única chamada à API.
  • O Azure Cosmos DB suporta leituras e escritas de milissegundos para ajudar a evitar atrasos durante o jogo.
  • A indexação automática do Azure Cosmos DB permite filtrar várias propriedades diferentes em tempo real, por exemplo, localizar jogadores pelos seus IDs de jogador internos ou o GameCenter, Facebook, IDs do Google ou consulta com base na associação de jogadores numa guilda. Isto é possível sem criar uma infraestrutura de indexação ou fragmentação complexa.
  • As funcionalidades sociais, incluindo mensagens de chat no jogo, associações a associações de jogadores, desafios concluídos, classificações de alto nível e gráficos sociais são mais fáceis de implementar com um esquema flexível.
  • O Azure Cosmos DB como uma plataforma como serviço gerido (PaaS) exigiu um trabalho mínimo de configuração e gestão para permitir uma iteração rápida e reduzir o tempo de comercialização.

Arquitetura de referência de jogos do Azure Cosmos DB

Aplicações Web e móveis

O Azure Cosmos DB é frequentemente utilizado em aplicações Web e em aplicações móveis e é ideal para modelar interações sociais, integrar com serviços de terceiros e para a criação de experiências personalizadas. Os SDKs do Azure Cosmos DB podem ser utilizados para criar aplicações iOS e Android avançadas com a popular arquitetura Xamarin.

Aplicações Sociais

Um caso de utilização comum para o Azure Cosmos DB é armazenar e consultar conteúdos gerados pelo utilizador (UGC) para aplicações Web, móveis e de redes sociais. Alguns exemplos de UGC são sessões de chat, tweets, publicações de blogue, classificações e comentários. Muitas vezes, o UGC em aplicações de redes sociais é uma mistura de texto de forma livre, propriedades, etiquetas e relações que não estão vinculadas por uma estrutura rígida. Os conteúdos, como chats, comentários e publicações, podem ser armazenados no Azure Cosmos DB sem necessidade de transformações ou objeto complexo para camadas de mapeamento relacional. As propriedades de dados podem ser adicionadas ou modificadas facilmente para corresponder aos requisitos à medida que os programadores iteram através do código da aplicação, promovendo assim o desenvolvimento rápido.

As aplicações que se integram em redes sociais de terceiros têm de responder à alteração de esquemas a partir destas redes. Uma vez que os dados são indexados automaticamente por predefinição no Azure Cosmos DB, os dados estão prontos para serem consultados a qualquer momento. Por conseguinte, estas aplicações têm a flexibilidade de obter projeções de acordo com as respetivas necessidades.

Muitas das aplicações sociais são executadas à escala global e podem apresentar padrões de utilização imprevisíveis. A flexibilidade no dimensionamento do arquivo de dados é essencial, uma vez que a camada da aplicação é dimensionada para corresponder à procura de utilização. Pode aumentar horizontalmente ao adicionar partições de dados adicionais numa conta do Azure Cosmos DB. Além disso, também pode criar contas adicionais do Azure Cosmos DB em várias regiões. Para obter a disponibilidade da região de serviço do Azure Cosmos DB, veja Regiões do Azure.

Diagrama que mostra a arquitetura de referência da aplicação Web do Azure Cosmos DB.

Personalização

Hoje em dia, as aplicações modernas vêm com vistas e experiências complexas. Estes são normalmente dinâmicos, atendendo às preferências dos utilizadores ou humores e necessidades de imagem corporativa. Por conseguinte, as aplicações têm de conseguir obter definições personalizadas de forma eficaz para compor rapidamente elementos e experiências de IU.

O JSON, um formato suportado pelo Azure Cosmos DB, é um formato eficaz para representar os dados de esquema da IU, uma vez que não é apenas simples, mas também pode ser facilmente interpretado pelo JavaScript. O Azure Cosmos DB oferece níveis de consistência ajustáveis que permitem leituras rápidas com escritas de baixa latência. Assim, armazenar dados de esquema de IU, incluindo definições personalizadas como documentos JSON no Azure Cosmos DB, é um meio eficaz para obter estes dados através da transmissão.

Arquitetura de referência da aplicação Web do Azure Cosmos DB

Passos seguintes

  • Para começar a utilizar o Azure Cosmos DB, siga os nossos guias de introdução, que explicam como criar uma conta e começar a utilizar o Azure Cosmos DB.

  • Se quiser ler mais sobre os clientes que utilizam o Azure Cosmos DB, veja a página de casos práticos do cliente .