O que é o Azure Cosmos DB for NoSQL
Vamos começar com algumas definições e um tour rápido pelo Azure Cosmos DB for NoSQL. Esta visão geral deve ajudar você a determinar se o Azure Cosmos DB pode ser uma boa opção para seu trabalho.
O que é um banco de dados NoSQL?
Os desenvolvedores exigem novos tipos de bancos de dados que possam enfrentar os desafios exclusivos dos aplicativos modernos. Os bancos de dados NoSQL foram projetados para atender a necessidades como:
- Grandes volumes de dados.
- Dados com muitas fontes e formas diferentes.
- Esquemas de dados dinâmicos que armazenam diferentes tipos de dados.
- Uso de dados em alta velocidade e/ou em tempo real.
Os bancos de dados NoSQL são definidos pelas características comuns que eles compartilham, e não por uma definição formal específica. Essas características incluem:
- Um armazenamento de dados não relacional.
- Ser projetado para escalar horizontalmente.
- Não impor um esquema específico.
Geralmente, os bancos de dados NoSQL não impõem restrições relacionais ou colocam bloqueios nos dados, tornando as gravações rápidas. Além disso, eles geralmente são projetados para escalar horizontalmente por meio de fragmentação ou particionamento, o que os permite manter o alto desempenho, independentemente do tamanho.
Embora haja muitos modelos de dados NoSQL, quatro famílias amplas de modelos de dados costumam ser usadas ao modelar dados em um banco de dados NoSQL:
A seguir, nos concentraremos no modelo de dados suportado pelo Azure Cosmos DB for NoSQL: o modelo de dados do documento.
Por que usar um banco de dados NoSQL com o modelo de dados de documento?
O modelo de dados de documento divide os dados em entidades de documento individuais. Um documento pode ter qualquer tipo de dados estruturado, mas normalmente o JSON é usado como formato de dados. O Azure Cosmos DB for NoSQL tem suporte nativo para JSON.
Um documento é uma entidade atômica que pode ter o próprio formato de dados, independentemente do que está armazenado em outros documentos no mesmo banco de dados. Devido a essa flexibilidade, não há necessidade de um esquema predefinido, facilitando a criação rápida de novos aplicativos. Além disso, essa flexibilidade permite cenários em que diferentes tipos de dados podem ser armazenados juntos e em que os modelos podem evoluir durante o tempo de vida do aplicativo.
O que é um documento JSON?
JavaScript Object Notation (ou JSON) é um formato de dados leve. O JSON foi criado para ser altamente compatível com a notação literal de um objeto na linguagem JavaScript. Muitas estruturas, navegadores e até mesmo bancos de dados têm suporte para JavaScript, o que faz do JSON um formato popular para transmissão e armazenamento de dados.
Veja a seguir um exemplo de documento JSON:
{
"device": {
"type": "mobile"
},
"sentTime": "2019-11-12T13:08:42",
"spoolRefs": [
"6a86682c-be5a-4a4a-bacd-96c4d1c7ece6",
"79e78fe2-93aa-4688-89db-a7278b034aa6"
]
}
Como você pode ver, o JSON é um formato de dados relativamente legível que expõe claramente seu conteúdo. Ele também é relativamente fácil de analisar e de usar em aplicativos JavaScript.
O que é o Azure Cosmos DB for NoSQL?
O Azure Cosmos DB for NoSQL é um serviço de banco de dados noSQL e vetor rápido que oferece consultas avançadas sobre dados diversos e dá suporte a uma nova geração de aplicativos de IA generativos. Ele ajuda a fornecer desempenho configurável e confiável, é distribuído globalmente e permite o desenvolvimento rápido.
A API de NoSQL é a API nativa (ou principal) para trabalhar com documentos. Ela dá suporte ao desenvolvimento rápido e flexível utilizando documentos JSON, uma linguagem de consulta com sintaxe familiar e bibliotecas de clientes para linguagens de programação populares. O Azure Cosmos DB também fornece funcionalidades exclusivas, como indexação e pesquisa de vetores, permitindo que os usuários criem uma nova geração de aplicativos de IA Generativa sobre os dados dos usuários que podem dimensionar rapidamente com eficiência.
O Azure Cosmos DB for NoSQL tem algumas vantagens, como:
- Banco de Dados Vetor Líder do Setor com indexação de vetor e pesquisa projetada para lidar com vetores de alta dimensão, permitindo uma busca em vetor eficiente e precisa em qualquer escala.
- Velocidade garantida em qualquer escala, mesmo em momentos de intermitência, com elasticidade instantânea e ilimitada, leituras rápidas e gravações de vários mestres, em qualquer lugar do mundo.
- Desenvolvimento rápido e flexível de aplicativos com SDKs para linguagens e estruturas populares, como .NET, Java, Python, JavaScript e GO, bem como análises sem ETL (extrair, transformar, carregar).
- Pronta para aplicativos críticos com continuidade de negócios garantida, disponibilidade de 99,999% e segurança de nível empresarial.
- Totalmente gerenciado e econômico com uma oferta totalmente sem servidor, bem como dimensionamento instantâneo, automático e dinâmico que responde às necessidades do aplicativo.
Esses recursos tornam o Azure Cosmos DB ideal para o desenvolvimento de aplicativos modernos. O Azure Cosmos DB for NoSQL é especialmente adequado para aplicativos que:
- Apresentam picos e quedas imprevisíveis no tráfego
- Geram muitos dados
- Precisam fornecer experiências do usuário em tempo real
- São necessários para a continuidade dos negócios
O Azure Cosmos DB for NoSQL pode armazenar arbitrariamente documentos JSON nativos com um esquema flexível. Os dados são indexados automaticamente e ficam disponíveis para consulta usando uma variante da linguagem de consulta SQL projetada para dados JSON. A API do NoSQL pode ser acessada usando SDKs para estruturas populares, como .NET, Python, Java, Node.js e GO