1 Rein relationale DB in Prod? Datenbanken in produktiven Einsatz? 2 SQL + NoSQL DB in Prod? (MongoDB, Redis, CouchDB, Cassandra) 3 DB-Cluster in der Cloud?
NoSQL?!? SQL Normalformen Come as you are
Warum wurde DB entwickelt Interne Nutzung und ihre Anforderungen Schritt halten mit dem atemberaubenden Datenzuwachs und den wachsenden Verarbeitungsanforderungen Iterative Entwicklung machte Schema-Migration kompliziert durch parallel bestehende und ständig fortschreitende Datenmodelle Unsere Anwendungen wurden unnötig komplex, weil den existierenden Dokumenten-DBs transaktional sichere Verarbeitungs- und Abfrage-Fähigkeiten fehlten
DB innerhalb von Microsoft msn user data store Global verfügbar für alle Märkte über 425 Millionen unique Users speichert 20TB Daten JSON Dokumente Speicher für 40+ App/Device Kombinationen unter 15ms Writes und einstellige ms für Reads
Designed / entwickelt / optimiert für JSON { } "id": "AzureDB", "servicetype": "Data Platform", "servicename": "Azure DB", "releasetype": "Preview", "public": true, "regions": [ { "name": "North Europe", "visible": true, "capacity": 230034 }, { "name": "West US", "visible": true, "capacity": 800034 }, { "name": "East US", "visible": false, "capacity": 1000034 } ] { } "id": "employee:chgeuer", "name": "Christian Geuer-Pollmann", "jobrole": "Technology Evangelist", "companyname": "Microsoft", "photo": null, "bio": "Helps ISVs rocking on Azure", "topics": [ "Cloud", "Security", "Development" ]
Client SDKs.NET Python Node.js JavaScript REST API Stored Data Indexes SSD Store and retrieve JSON Query via SQL Retrieve JSON Store JavaScript functions JavaScript is the new T-SQL Stored Procedures Triggers User-Defined Functions
DB Resource Model / /dbs/{id} /dbs/{id}/users/{id} /permissions/{id} Subscription DB Account Database Database Database Users Permissions /dbs/{id}/colls/{id} Collection Collection Collection../colls/{id}/sprocs/{id} SPROC Stored Procs../colls/{id}/triggers/{id}../attachments/{id} Attachment Attachment Attachment Attachment../colls/{id}/docs/{id} Triggers../colls/{id}/udfs/{id} UDF UDF
Schema-frei und trotzdem frei abfragbar SQL
Abfragen auf Schema-losen Daten
Automatische Indizierung Indexing Policy Automatic Manual Indexing Mode Consistent (synchron) Lazy (asynchron) Dokumente: Einzelne Dokumente einschließen oder ausschließen JSON Pfade: includedpaths excludedpaths
Multi- Transaktionen Database Collection s Stored Procs Triggers UDF
Schnell und frei wählbare Konsistenz
Tunable Consistency Levels Eventual: read operations always read a valid subset of writes and will eventually converge Session: monotonic reads (you never read old data, then new, then old again), monotonic writes (writes are ordered) and that you read the most recent writes within any single client s viewpoint. Strong: read operations always return the value that was last written. Bounded Staleness: reads are not too out-of-date. It specifically guarantees that the reads are no more than K versions older than the last written version.
Skalierbar und komplett gemanagt
DB Resource Model / /dbs/{id} /dbs/{id}/users/{id} /permissions/{id} Subscription DB Account Database Database Database Users Permissions /dbs/{id}/colls/{id} Collection Collection Collection../colls/{id}/sprocs/{id} SPROC Stored Procs../colls/{id}/triggers/{id}../attachments/{id} Attachment Attachment Attachment Attachment../colls/{id}/docs/{id} Triggers../colls/{id}/udfs/{id} UDF UDF
Horizontales Skalieren über Capacity Units / /dbs/{id} /dbs/{id}/users/{id} /permissions/{id} Subscription DB Account Database Database Database Users Permissions /dbs/{id}/colls/{id}../colls/{id}/sprocs/{id} Collection 1..5 Collection Capacity SPROC Collection Stored Units (CU) Collection Procs../colls/{id}/triggers/{id}../attachments/{id} Attachment Attachment Attachment Attachment../colls/{id}/docs/{id} Triggers../colls/{id}/udfs/{id} UDF UDF
Capacity Units und Request Units Eine Capacity Unit (CU) entspricht einem Shard (Storage & Compute) Eine Capacity Unit bietet Speicherplatz für bis zu 10 GB für Dokumente Eine Request Unit (RU) ist eine Größe für Rechenaufwand (stored procs, indexing, queries, userdefined functions) Eine volle Capacity Unit (mit 10GB JSON Daten) bietet dem Nutzer 2000 Request Units (RU) pro Sekunde Die RU werden dem genutzten Speicherplatz, entsprechend bereitgestellt, mindestens 667 RU. Tatsächlich aufgetretene RU in jedem Response aufgeführt Throttling!! (Alerts, x-ms-retryafter-ms)
Entworfen und entwickelt As-A-Service Komplett Schema-frei (JSON), aber trotzdem frei abfragbar Was ist neu an DB Transaktionale Verarbeitung durch integrierten JavaScript-Support Einstellbare Konsistenz und vorhersagbare Performance
Neue Webanwendungen und mobile, Cloud-basierte Apps Scenarios für DB Schnelle Entwicklungszyklen und hohe Anforderungen bzgl. Skalierung Kunden, die Key/Value-Stores nutzen und reichhaltigere Queries und Verarbeitung brauchen Kunden, die Dokumenten-DBs in Virtuellen Maschinen (IaaS) betreiben und einen gemanagten Service suchen
Get started http://aka.ms/docbstart Learn query language http://aka.ms/docdbquery Download Open Source DB Studio http://aka.ms/docdbstudio