Ich habe eine Anwendung, die SQL Azure übertrifft - auf jeden Fall den Preis, den ich zu zahlen bereit bin - und ich bin interessiert, Azure DocumentDB zu untersuchen. Die Vorschau hat eindeutig unterschiedliche Skalierbarkeitsgrenzen (wie beispielsweise here beschrieben), aber ich denke, dass ich wahrscheinlich mit denen für die Vorschauperiode davonkommen könnte, vorausgesetzt, dass ich sie richtig verwende.Wie skaliert Azure DocumentDB? Und muss ich mich darum sorgen?
Also hier ist die Frage, die ich habe. Wie muss ich meine Anwendung so gestalten, dass die integrierte Skalierbarkeit der Azure DocumentDB genutzt wird? Zum Beispiel, ich weiß, dass mit Azure Table Storage - das billig, aber
schrecklich
stark begrenzte Alternative - Sie müssen alle Ihre Daten in einer zweistufigen Hierarchie zu strukturieren: PartitionKey und RowKey. Vorausgesetzt, dass Sie das tun (was in einer realen Anwendung nahezu unmöglich ist), verschiebt ATS (wie ich es verstehe) Partitionen hinter den Kulissen, von Maschine zu Maschine, so dass Sie nahezu unendliche Skalierbarkeit erhalten. Super, und du musst nie darüber nachdenken.
Skalierung mit SQL Server ist offensichtlich viel komplizierter - Sie müssen Ihr eigenes Sharding-System entwerfen, sich damit befassen, herauszufinden, auf welchem Server der fragliche Shard sitzt, und so weiter. Möglich, und zwar recht skalierbar, aber komplex und schmerzhaft.
Wie funktioniert die Skalierbarkeit mit DocumentDB? Es verspricht eine beliebige Skalierbarkeit, aber wie funktioniert die Speicher-Engine hinter den Kulissen? Ich sehe, dass es "Datenbanken" hat, und jede Datenbank kann eine gewisse Anzahl von "Sammlungen" haben, und so weiter. Aber wie ist seine willkürliche Skalierbarkeit diesen anderen Konzepten zuzuordnen? Wenn ich eine SQL-Tabelle habe, die Hunderte von Millionen Zeilen enthält, bekomme ich die Skalierbarkeit, die ich benötige, wenn ich all diese Daten in eine Sammlung lege? Oder muss ich es manuell über mehrere Sammlungen verteilen? Oder über mehrere DB's? Oder ist DocumentDB irgendwie schlau genug, um Abfragen performant über mehrere Maschinen hinweg zusammenzuführen, ohne dass ich darüber nachdenken muss? Oder...?
Ich habe mich umgesehen, und habe noch keine Anleitung gefunden, wie man das angeht. Sehr interessiert daran, was andere Leute gefunden haben oder was MS empfiehlt.
Nicht sicher, warum Sie entschieden haben, Ihre Frage mit subjektiven und negativen Kommentar zu färben ("Table Storage - diese billige aber schreckliche Alternative"). Azure Table Storage ist ein Schlüssel/Wert-NoSQL-Speicher, der sich vollständig von SQL Server (relational) oder DocumentDB (Dokument) unterscheidet. –
Ich stimme zu, dass der negative Kommentar nicht unbedingt notwendig ist, aber ich habe festgestellt, dass ATS kritische Features in anderen Schlüssel-Wert-Speicher-Datenbanken fehlen - siehe http://feedback.azure.com/forums/217298-storage, z Beispiel. Wenn eine weit verbreitete Technologie praktisch unbenutzbar ist, scheint es nicht verboten, dies zu erwähnen. –
Es gibt viele, die es sehr brauchbar finden. Deshalb ist es am besten, diese Art von Farbkommentar aus Ihrer Frage zu lassen. –