Identificar APIs do Azure Cosmos DB

Concluído

O Azure Cosmos DB é o banco de dados distribuído totalmente gerenciado e sem servidor da Microsoft para aplicativos de qualquer tamanho ou escala, com suporte para cargas de trabalho relacionais e não relacionais. Os desenvolvedores podem criar e migrar aplicativos rapidamente usando seus mecanismos de banco de dados de código aberto preferidos, incluindo PostgreSQL, MongoDB e Apache Cassandra. Ao provisionar uma nova instância do Cosmos DB, você seleciona o mecanismo de banco de dados que deseja usar. A escolha do mecanismo depende de muitos fatores, incluindo o tipo de dados a serem armazenados, a necessidade de suportar aplicativos existentes e as habilidades dos desenvolvedores que trabalham com o armazenamento de dados.

Azure Cosmos DB para NoSQL

O Azure Cosmos DB para NoSQL é o serviço não relacional nativo da Microsoft para trabalhar com o modelo de dados do documento. Ele gerencia dados em formato de documento JSON e, apesar de ser uma solução de armazenamento de dados NoSQL, usa sintaxe SQL para trabalhar com os dados.

Uma consulta SQL para um banco de dados do Azure Cosmos DB contendo dados do cliente pode ser semelhante a esta:

SELECT *
FROM customers c
WHERE c.id = "joe@litware.com"

O resultado dessa consulta consiste em um ou mais documentos JSON, conforme mostrado aqui:

{
   "id": "joe@litware.com",
   "name": "Joe Jones",
   "address": {
        "street": "1 Main St.",
        "city": "Seattle"
    }
}

Azure Cosmos DB para MongoDB

MongoDB é um banco de dados de código aberto popular no qual os dados são armazenados no formato Binary JSON (BSON). O Azure Cosmos DB para MongoDB permite que os desenvolvedores usem bibliotecas de cliente e código do MongoDB para trabalhar com dados no Azure Cosmos DB.

O MongoDB Query Language (MQL) usa uma sintaxe compacta e orientada a objetos na qual os desenvolvedores usam objetos para chamar métodos. Por exemplo, a consulta a seguir usa o método find para consultar a coleção de produtos no objeto db :

db.products.find({id: 123})

Os resultados desta consulta consistem em documentos JSON, semelhantes a este:

{
   "id": 123,
   "name": "Hammer",
   "price": 2.99
}

Azure Cosmos DB para PostgreSQL

O Azure Cosmos DB para PostgreSQL é a opção PostgreSQL distribuída no Azure. O Azure Cosmos DB para PostgreSQL é um PostgreSQL nativo, banco de dados relacional distribuído globalmente que fragmenta dados automaticamente para ajudá-lo a criar aplicativos altamente escaláveis. Você pode começar a criar aplicativos em um único grupo de servidores de nó, da mesma forma que faria com o PostgreSQL em qualquer outro lugar. À medida que a escalabilidade e os requisitos de desempenho da aplicação aumentam, pode dimensionar facilmente para vários nós ao distribuir de forma transparente as tabelas. O PostgreSQL é um sistema de gerenciamento de banco de dados relacional (RDBMS) no qual você define tabelas relacionais de dados, por exemplo, você pode definir uma tabela de produtos como esta:

ProductID ProductName Preço
123 Martelo 2.99
162 Aparafusadora 3.49

Em seguida, você pode consultar esta tabela para recuperar o nome e o preço de um produto específico usando SQL da seguinte forma:

SELECT ProductName, Price 
FROM Products
WHERE ProductID = 123;

Os resultados dessa consulta conteriam uma linha para o produto 123, da seguinte forma:

ProductName Preço
Martelo 2.99

Azure Cosmos DB para Tabela

O Azure Cosmos DB for Table é usado para trabalhar com dados em tabelas de chave-valor, semelhante ao Armazenamento de Tabela do Azure. Ele oferece maior escalabilidade e desempenho do que o Armazenamento de Tabela do Azure. Por exemplo, você pode definir uma tabela chamada Clientes como esta:

PartitionKey RowKey Nome E-mail
5 123 Joe Jones joe@litware.com
1 124 Samir Nadoy samir@northwind.com

Em seguida, você pode usar a API de tabela por meio de um dos SDKs específicos do idioma para fazer chamadas para seu ponto de extremidade de serviço para recuperar dados da tabela. Por exemplo, a solicitação a seguir retorna a linha que contém o registro de Samir Nadoy na tabela anterior:

https://endpoint/Customers(PartitionKey='1',RowKey='124')

Azure Cosmos DB para Apache Cassandra

O Azure Cosmos DB para Apache Cassandra é compatível com o Apache Cassandra, que é um popular banco de dados de código aberto que usa uma estrutura de armazenamento da família de colunas. As famílias de colunas são tabelas, semelhantes às de um banco de dados relacional, com a exceção de que não é obrigatório que todas as linhas tenham as mesmas colunas.

Por exemplo, você pode criar uma tabela Funcionários como esta:

ID Nome Gestor
1 Sue Soares
2 Ben Chan Sue Soares

Cassandra suporta uma sintaxe baseada em SQL, para que um aplicativo cliente possa recuperar o registro para Ben Chan assim:

SELECT * FROM Employees WHERE ID = 2

Azure Cosmos DB para Apache Gremlin

O Azure Cosmos DB para Apache Gremlin é usado com dados em uma estrutura de gráfico; em que as entidades são definidas como vértices que formam nós em grafos conectados. Os nós são conectados por bordas que representam relações, como esta:

Um gráfico mostrando funcionários e departamentos e as conexões entre eles

O exemplo na imagem mostra dois tipos de vértice (funcionário e departamento) e arestas que os conectam (o funcionário "Ben" relata ao funcionário "Sue", e ambos os funcionários trabalham no departamento "Hardware").

A sintaxe Gremlin inclui funções para operar em vértices e arestas, permitindo inserir, atualizar, excluir e consultar dados no gráfico. Por exemplo, você pode usar o código a seguir para adicionar um novo funcionário chamado Alice que se reporta ao funcionário com ID 1 (Sue)

g.addV('employee').property('id', '3').property('firstName', 'Alice')
g.V('3').addE('reports to').to(g.V('1'))

A consulta a seguir retorna todos os vértices do funcionário , na ordem de ID.

 g.V().hasLabel('employee').order().by('id')