2017-10-27 1 views
0

Ich bin CosmosDB Partitionierungsfunktion und was ich bis jetzt habe ist, dass es gut für die Leistung ist. Es kann uns wirklich helfen, die Fanout-Anfragen zu vermeiden, aber ich habe mich in eine Frage mit der Partitionierung vertieft. Für die Partitionierung in Write, wenn ich verschiedene Arten von Dokumenten habe, kann Tausende von ihnen sein, gehören zu der gleichen Partition die Schreiboperation wird langsam sein, aber wenn ich ihnen verschiedene Partition Schlüssel geben, werde ich das Transaktionsverhalten verlieren, weil Store-Verfahren im Bereich sind eine Transaktion.CosmosDB Transaktionen pro Partition

Mein Anwendungsfall ist, ich habe verschiedene Arten von Dokumenten innerhalb der gleichen Sammlung und zu einem bestimmten Zeitpunkt werde ich Tausende von verschiedenen Arten von Dokumentation aktualisieren und einfügen, und ich muss das innerhalb der gleichen Transaktion, die ich muss benutze den gleichen Schlüssel, aber wenn ich das tue, mache ich HOT-Schreiboperationen, die in CosmosDB nicht vorgeschlagen werden. Irgendeine Hilfe, wie man dieses Problem erreicht, wird geschätzt werden.

Antwort

1

Menschen verwenden gespeicherte Prozeduren, um ihre Dokumente zu Stapeln und heute beschränkt es Sie auf eine Partition. Beachten Sie jedoch auch andere Einschränkungen, die Ihr Partitionsschlüssel als solche haben sollte, damit sich Ihre Dokumente in verschiedenen Partitionen aufteilen. So kann Ihr einzelner Stapel für einen Partitionsschlüssel und der nächste Stapel für einen anderen sein.

lesen Sie hier mehr https://docs.microsoft.com/en-us/azure/cosmos-db/partition-data

hoffen, dass diese Hilfe.

Rafat

+0

Hallo Rafat, Danke für die schnelle Antwort hier. Ich habe was du sagst, aber nur zur Klarstellung werde ich dir ein Beispiel geben, das mir hilft, es besser zu verstehen. Ich habe zwei Partitionen, sagen wir eine für Stadt und eine für Land. Wenn ich ein Land wie eine Charge und eine Stadt wie ein Batch update oder einfüge, wie ich bereits erwähnt habe, denke ich, dass es nicht in einer Transaktion verarbeitet wird, oder? Aber wenn ich nur eine einzige Partition für Stadt und Land erstelle, dann kann ich sie unter einer einzigen Transaktion verwerfen, aber diese Anfrage muss noch in einem Stapel erledigt werden, oder? –

Verwandte Themen