Azure Cosmos DB-API's identificeren

Voltooid

Azure Cosmos DB is de volledig beheerde en serverloze gedistribueerde database van Microsoft voor toepassingen van elke grootte of schaal, met ondersteuning voor zowel relationele als niet-relationele workloads. Ontwikkelaars kunnen snel toepassingen bouwen en migreren met behulp van hun favoriete opensource-database-engines, waaronder PostgreSQL, MongoDB en Apache Cassandra. Wanneer u een nieuw Cosmos DB-exemplaar inricht, selecteert u de database-engine die u wilt gebruiken. De keuze van de engine is afhankelijk van veel factoren, waaronder het type gegevens dat moet worden opgeslagen, de noodzaak om bestaande toepassingen te ondersteunen en de vaardigheden van de ontwikkelaars die met het gegevensarchief werken.

Azure Cosmos DB voor NoSQL

Azure Cosmos DB for NoSQL is de systeemeigen niet-relationele service van Microsoft voor het werken met het documentgegevensmodel. Het beheert gegevens in JSON-documentindeling en ondanks het feit dat het een NoSQL-gegevensopslagoplossing is, maakt gebruik van SQL-syntaxis om met de gegevens te werken.

Een SQL-query voor een Azure Cosmos DB-database met klantgegevens kan er ongeveer als volgt uitzien:

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

Het resultaat van deze query bestaat uit een of meer JSON-documenten, zoals hier wordt weergegeven:

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

Azure Cosmos DB voor MongoDB

MongoDB is een populaire opensource-database waarin gegevens worden opgeslagen in de binaire JSON-indeling (BSON). Met Azure Cosmos DB voor MongoDB kunnen ontwikkelaars MongoDB-clientbibliotheken en code gebruiken om te werken met gegevens in Azure Cosmos DB.

MongoDB Query Language (MQL) maakt gebruik van een compacte, objectgeoriënteerde syntaxis waarin ontwikkelaars objecten gebruiken om methoden aan te roepen. De volgende query gebruikt bijvoorbeeld de zoekmethode om een query uit te voeren op de verzameling producten in het db-object :

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

De resultaten van deze query bestaan uit JSON-documenten, vergelijkbaar met deze:

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

Azure Cosmos DB for PostgreSQL

Azure Cosmos DB for PostgreSQL is een systeemeigen PostgreSQL, wereldwijd gedistribueerde relationele database waarmee gegevens automatisch worden shards, zodat u zeer schaalbare apps kunt bouwen. U kunt beginnen met het bouwen van apps op één knooppuntservergroep, op dezelfde manier als met PostgreSQL. Naarmate de schaalbaarheids- en prestatievereisten van uw toepassing toenemen, kunt u naadloos schalen naar meerdere knooppunten door uw tabellen transparant te distribueren. PostgreSQL is een relationeel databasebeheersysteem (RDBMS) waarin u relationele tabellen met gegevens definieert, bijvoorbeeld u kunt een tabel met producten als volgt definiëren:

ProductID ProductName Prijs
123 Hammer 2.99
162 Schroevendraaier 3.49

U kunt vervolgens een query uitvoeren op deze tabel om de naam en prijs van een specifiek product op te halen met behulp van SQL, zoals deze:

SELECT ProductName, Price 
FROM Products
WHERE ProductID = 123;

De resultaten van deze query bevatten een rij voor product 123, zoals deze:

ProductName Prijs
Hammer 2.99

Azure Cosmos DB voor tabel

Azure Cosmos DB for Table wordt gebruikt om te werken met gegevens in sleutelwaardetabellen, vergelijkbaar met Azure Table Storage. Het biedt meer schaalbaarheid en prestaties dan Azure Table Storage. U kunt bijvoorbeeld een tabel definiëren met de naam Klanten zoals deze:

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

Vervolgens kunt u de Table-API gebruiken via een van de taalspecifieke SDK's om aanroepen naar uw service-eindpunt te maken om gegevens uit de tabel op te halen. De volgende aanvraag retourneert bijvoorbeeld de rij met de record voor Samir Nadoy in de bovenstaande tabel:

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

Azure Cosmos DB voor Apache Cassandra

Azure Cosmos DB voor Apache Cassandra is compatibel met Apache Cassandra. Dit is een populaire opensource-database die gebruikmaakt van een kolomfamilieopslagstructuur. Kolomfamilies zijn tabellen, vergelijkbaar met die in een relationele database, met uitzondering dat het niet verplicht is voor elke rij om dezelfde kolommen te hebben.

U kunt bijvoorbeeld een tabel Werknemers als volgt maken:

Id Naam Manager
1 Sue Smith
2 Ben Chan Sue Smith

Cassandra ondersteunt een syntaxis op basis van SQL, zodat een clienttoepassing de record voor Ben Chan als volgt kan ophalen:

SELECT * FROM Employees WHERE ID = 2

Azure Cosmos DB voor Apache Gremlin

Azure Cosmos DB voor Apache Gremlin wordt gebruikt met gegevens in een grafiekstructuur; waarin entiteiten worden gedefinieerd als hoekpunten die knooppunten vormen in een verbonden grafiek. Knooppunten worden verbonden door randen die relaties vertegenwoordigen, zoals:

A graph showing employees and departments and the connections between them

In het voorbeeld in de afbeelding ziet u twee soorten hoekpunt (werknemer en afdeling) en randen waarmee deze worden verbonden (werknemer 'Ben' rapporteert aan werknemer Sue, en beide werknemers werken op de afdeling Hardware).

De Gremlin-syntaxis bevat functies die kunnen worden uitgevoerd op hoekpunten en randen, zodat u gegevens in de grafiek kunt invoegen, bijwerken, verwijderen en er query's op kunt uitvoeren. U kunt bijvoorbeeld de volgende code gebruiken om een nieuwe werknemer met de naam Alice toe te voegen die rapporteert aan de werknemer met id 1 (Sue)

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

De volgende query retourneert alle hoekpunten van de werknemer , in volgorde van id.

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