Casos de utilização comuns do Azure Cosmos DB
APLICA-SE A: NoSQL MongoDB Cassandra Gremlin Tabela
Este artigo fornece uma visão geral de vários casos de uso comuns do Azure Cosmos DB. As recomendações neste artigo servem como um ponto de partida enquanto você desenvolve seu aplicativo com o Azure Cosmos DB.
Depois de ler este artigo, você será capaz de responder às seguintes perguntas:
- Quais são os casos de uso comuns do Azure Cosmos DB?
- Quais são os benefícios de usar o Azure Cosmos DB para aplicativos de varejo?
- Quais são os benefícios de usar o Azure Cosmos DB como um armazenamento de dados para sistemas de Internet das Coisas (IoT)?
- Quais são os benefícios de usar o Azure Cosmos DB para aplicativos Web e móveis?
Introdução
O Azure Cosmos DB é a solução do Azure para um banco de dados NoSQL rápido, com APIs abertas para qualquer escala. O serviço foi projetado para permitir que os clientes dimensionem de forma elástica (e independente) a taxa de transferência e o armazenamento em qualquer número de regiões geográficas. O Azure Cosmos DB é o primeiro serviço de banco de dados distribuído globalmente no mercado atualmente a oferecer contratos de nível de serviço abrangentes que abrangem taxa de transferência, latência, disponibilidade e consistência.
O Azure Cosmos DB é um banco de dados global distribuído e multimodelo que é usado em uma ampla variedade de aplicativos e casos de uso. É uma boa escolha para qualquer aplicativo sem servidor que precise de tempos de resposta de baixa ordem de milissegundos e precise ser dimensionado rapidamente e globalmente. Ele dá suporte a vários modelos de dados (chave-valor, documentos, gráficos e colunares) 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 maneira extensível.
A seguir estão alguns atributos do Azure Cosmos DB que o tornam adequado para aplicativos de alto desempenho com ambição global.
- O Azure Cosmos DB particiona nativamente seus dados para alta disponibilidade e escalabilidade. O Azure Cosmos DB oferece 99,99% de garantias de disponibilidade, taxa de transferência, baixa latência e consistência em todas as contas de região única e todas as contas de várias regiões com consistência relaxada e 99,999% de disponibilidade de leitura em todas as contas de banco de dados de várias regiões.
- O Azure Cosmos DB tem armazenamento apoiado por SSD com tempos de resposta de ordem de milissegundos de baixa latência.
- O suporte do Azure Cosmos DB para níveis de consistência, como prefixo eventual, consistente, sessão e obsolescência limitada permite flexibilidade total e baixa relação custo-desempenho. Nenhum serviço de banco de dados oferece tanta flexibilidade quanto o Azure Cosmos DB em consistência de níveis.
- O Azure Cosmos DB tem um modelo de preços flexível e amigável a dados que mede o armazenamento e a taxa de transferência de forma independente.
- O modelo de taxa de transferência reservada do Azure Cosmos DB permite que você pense em termos de número de leituras/gravações em vez de CPU/memória/IOPs do hardware subjacente.
- O design do Azure Cosmos DB permite dimensionar para volumes de solicitação massivos na ordem de trilhões de solicitações por dia.
Esses atributos são benéficos em aplicativos web, móveis, de jogos e IoT que precisam de tempos de resposta baixos e precisam lidar com grandes quantidades de leituras e gravações.
IoT e telemática
Os casos de uso de IoT geralmente compartilham alguns padrões em como ingerem, processam e armazenam dados. Primeiro, esses sistemas precisam ingerir rajadas de dados de sensores de dispositivos de várias localidades. Em seguida, esses sistemas processam e analisam dados de streaming para obter insights em tempo real. Os dados são então arquivados em armazenamento refrigerado para análise em lote. O Microsoft Azure oferece serviços avançados que podem ser aplicados a casos de uso de IoT, incluindo Azure Cosmos DB, Hubs de Eventos do Azure, Azure Stream Analytics, Hub de Notificação do Azure, Azure Machine Learning, Azure HDInsight e Power BI.
Explosões de dados podem ser ingeridas pelos Hubs de Eventos do Azure, pois ele oferece ingestão de dados de alta taxa de transferência com baixa latência. Os dados ingeridos que precisam ser processados para obter informações em tempo real podem ser canalizados para o Azure Stream Analytics para análises em tempo real. Os dados podem ser carregados no Azure Cosmos DB para consultas adhoc. Depois que os dados são carregados no Azure Cosmos DB, os dados estão prontos para serem consultados. Além disso, novos dados e alterações em dados existentes podem ser lidos no feed de alterações. O feed de alterações é um log de acréscimo persistente que armazena alterações nos contêineres do Azure Cosmos DB em ordem sequencial. Em seguida, todos os dados ou apenas alterações nos dados no Azure Cosmos DB podem ser usados como dados de referência como parte da análise em tempo real. Além disso, os dados podem ser refinados e processados conectando os dados do Azure Cosmos DB ao HDInsight para trabalhos do Pig, Hive ou Map/Reduce. Os dados refinados são então carregados de volta para o Azure Cosmos DB para relatórios.
Para obter uma solução de IoT de exemplo usando o Azure Cosmos DB, Hubs de Eventos e Apache Storm, consulte 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 é usado extensivamente nas próprias plataformas de comércio eletrônico da Microsoft, que executam a Windows Store e o XBox Live. Ele também é usado no setor de varejo para armazenar dados de catálogo e para o fornecimento de eventos em pipelines de processamento de pedidos.
Os cenários de uso de dados de catálogo envolvem o armazenamento e a consulta de um conjunto de atributos para entidades como pessoas, locais e produtos. Alguns exemplos de dados de catálogo são contas de usuário, catálogos de produtos, registros de dispositivos IoT e sistemas de lista de materiais. Os atributos para esses dados podem variar e podem mudar ao longo do tempo para atender aos requisitos do aplicativo.
Considere um exemplo de catálogo de produtos para um fornecedor de peças automotivas. Cada parte pode ter seus próprios atributos, além dos atributos comuns que todas as partes compartilham. Além disso, os atributos de uma peça específica podem mudar no ano seguinte, quando um novo modelo é lançado. O Azure Cosmos DB dá suporte a esquemas flexíveis e dados hierárquicos e, portanto, é adequado para armazenar dados do catálogo de produtos.
O Azure Cosmos DB é frequentemente usado para o fornecimento de eventos para potencializar arquiteturas controladas por eventos usando sua funcionalidade de feed de alterações. O feed de alterações fornece aos microsserviços downstream a capacidade de ler de forma confiável e incremental inserções e atualizações (por exemplo, eventos de pedido) feitas em um Azure Cosmos DB. Essa funcionalidade pode ser aproveitada para fornecer um armazenamento de eventos persistente como um agente de mensagens para eventos de alteração de estado e impulsionar o fluxo de trabalho de processamento de pedidos entre muitos microsserviços (que podem ser implementados como Azure Functions sem servidor).
Além disso, os dados armazenados no Azure Cosmos DB podem ser integrados ao HDInsight para análise de big data por meio de trabalhos do Apache Spark. Para obter detalhes sobre o Spark Connector para Azure Cosmos DB, consulte Executar um trabalho 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 exigem latências de um milissegundo para leituras e gravações para fornecer 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 é usado por jogos como The Walking Dead: No Man's Land da Next Games e Halo 5: Guardians da 343 Industries. O Azure Cosmos DB fornece os seguintes benefícios aos desenvolvedores de jogos:
- O Azure Cosmos DB permite que o desempenho seja dimensionado para cima ou para baixo de forma elástica. Isso permite que os jogos lidem com a atualização de perfil e estatísticas de dezenas a milhões de jogadores simultâneos, fazendo uma única chamada de API.
- O Azure Cosmos DB dá suporte a leituras e gravações 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 por seus IDs de jogador internos ou seus IDs de GameCenter, Facebook, Google ou consulta com base na associação de jogadores a uma guilda. Isso é possível sem a construção de uma infraestrutura complexa de indexação ou fragmentação.
- Recursos sociais, incluindo mensagens de bate-papo no jogo, associações à guilda de jogadores, desafios concluídos, tabelas de classificação de alta pontuação 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 (PaaS) gerenciada exigiu um trabalho mínimo de configuração e gerenciamento para permitir uma iteração rápida e reduzir o tempo de comercialização.
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 usados para criar aplicativos iOS e Android avançados usando a popular estrutura Xamarin.
Aplicações Sociais
Um caso de uso comum do Azure Cosmos DB é armazenar e consultar conteúdo gerado pelo usuário (UGC) para aplicativos Web, móveis e de mídia social. Alguns exemplos de UGC são sessões de bate-papo, tweets, postagens de blog, classificações e comentários. Muitas vezes, o UGC em aplicativos de mídia social é uma mistura de texto de forma livre, propriedades, tags e relacionamentos que não são limitados por uma estrutura rígida. Conteúdo como chats, comentários e postagens pode ser armazenado no Azure Cosmos DB sem exigir transformações ou objetos complexos para camadas de mapeamento relacional. As propriedades de dados podem ser adicionadas ou modificadas facilmente para corresponder aos requisitos à medida que os desenvolvedores iteram sobre o código do aplicativo, promovendo assim um desenvolvimento rápido.
Os aplicativos que se integram com redes sociais de terceiros devem responder às mudanças de esquemas dessas redes. Como os dados são indexados automaticamente por padrão no Azure Cosmos DB, os dados estão prontos para serem consultados a qualquer momento. Assim, essas aplicações têm a flexibilidade de recuperar projeções de acordo com suas respetivas necessidades.
Muitos dos aplicativos sociais são executados em escala global e podem exibir padrões de uso imprevisíveis. A flexibilidade no dimensionamento do armazenamento de dados é essencial à medida que a camada do aplicativo é dimensionada para corresponder à demanda de uso. Você pode expandir adicionando partições de dados adicionais em uma conta do Azure Cosmos DB. Além disso, você também pode criar contas adicionais do Azure Cosmos DB em várias regiões. Para saber a disponibilidade da região de serviço do Azure Cosmos DB, consulte Regiões do Azure.
Personalização
Hoje em dia, as aplicações modernas vêm com visões e experiências complexas. Estes são tipicamente dinâmicos, atendendo às preferências do usuário ou humores e necessidades de marca. Portanto, os aplicativos precisam ser capazes de recuperar configurações personalizadas de forma eficaz para renderizar elementos e experiências da interface do usuário rapidamente.
JSON, um formato suportado pelo Azure Cosmos DB, é um formato eficaz para representar dados de layout da interface do usuário, pois não é apenas leve, mas também pode ser facilmente interpretado por JavaScript. O Azure Cosmos DB oferece níveis de consistência ajustáveis que permitem leituras rápidas com gravações de baixa latência. Portanto, armazenar dados de layout da interface do usuário, incluindo configurações personalizadas como documentos JSON no Azure Cosmos DB, é um meio eficaz de obter esses dados através do fio.
Próximos passos
Para começar a usar o Azure Cosmos DB, siga nossos inícios rápidos, que o orientam na criação de uma conta e na introdução ao Azure Cosmos DB.
Se quiser ler mais sobre os clientes que usam o Azure Cosmos DB, consulte a página de estudos de caso de clientes.