©ArdeaA/Shutterstock.com
Cosmos DB in eigenen Projekten einsetzen: Grundlagen und Einsatzszenarien

Ganz ir-relational


Dokumentendatenbanken wie Microsofts Cloud-basierte Azure Cosmos DB bieten neue Ansätze und Möglichkeiten, um mit Daten umzugehen – zumindest neu für die Microsoft-Entwicklerwelt, die von relationalen Datenbanken dominiert wurde.

Dieser Artikel gibt Ihnen einen kleinen Überblick über die Grundlagen, Möglichkeiten und unterstützten APIs, die Azure Cosmo DB für Ihre Projekte bereitstellt, und bietet Überlegungen zu möglichen Einsatzszenarien an.

Einführung

Microsofts Azure Cosmos DB ist eine Dokumentendatenbank, ein NoSQL JSON Data Storage, das neben einer ganzen Reihe interessanter Features mehrere APIs bietet, um mit diesen zu arbeiten. „NoSQL“ steht dabei übrigens für „Not only SQL“, was einen Hinweis auf die unterschiedlichen APIs darstellt.

Dabei ist der Ansatz, Daten zu speichern, ein völlig anderer als z. B. bei relationalen Datenbanken. So werden Daten nicht in Tabellen abgelegt, sondern in Collections (auch Container genannt). Eine Dokumentendatenbank speichert Daten in Form von Dokumenten im JSON-Format. Dies erlaubt, diese Daten verschachtelt und – und das ist wichtig – heterogen abzuspeichern. Das heißt, Dokumente, die sich einen Container (Collection) teilen, müssen nicht über den gleichen Aufbau verfügen. Es können also mal mehr, mal weniger oder schlicht unterschiedliche Informationen in einem solchen Dokument untergebracht werden. Auch können von Dokument zu Dokument für gleichnamige Eigenschaften unterschiedliche Datentypen verwendet werden. Listing 1 zeigt ein kleines JSON-Dokument als Beispiel. Bei Abfragen wird dies (je nach API) entsprechend berücksichtigt.

{
"BusinessEntityID": 1,
"PersonType": "EM",
"NameStyle": false,
"Title": null,
"FirstName": "Ken",
"MiddleName": "J",
"LastName": "Sánchez",
"Suffix": null,
"EmailPromotion": 0,
"AdditionalContactInfo": null,
"Demographics": "<IndividualSurvey xmlns=\"http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey\"><TotalPurchaseYTD>0</TotalPurchaseYTD></IndividualSurvey>",
"rowguid": "92c4279f-1207-48a3-8448-4636514eb7e2",
"ModifiedDate": "2009-01-07T00:00:00",
"Password": {
"Hash": "pbFwXWE99vobT6g+vPWFy93NtUU/orrIWafF01hccfM=",
"ModifiedDate": "2009-01-07T00:00:00",
"Salt": "bE3XiWw="
}
}

Listing 1

Für den Zugriff auf diese Daten stehen aktuell fünf unterschiedliche APIs zur Verfügung (mehr dazu später). Existieren also schon Code für und Erfahrung mit z. B. MongoDB oder Apache Cassandra, steht einem Einsatz von Azure Comos DB eigentlich nichts im Weg. In Abbildu...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang