Verwenden globaler sekundärer Indizes zum Erstellen eines Eventually-Consistent-Replikats - Amazon-DynamoDB

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden globaler sekundärer Indizes zum Erstellen eines Eventually-Consistent-Replikats

Sie können einen globalen sekundären Index verwenden, um ein schließlich konsistentes Replikat einer Tabelle zu erstellen. Wenn Sie ein Replikat erstellen, können Sie Folgendes tun:

  • Legen Sie unterschiedliche bereitgestellte Lesekapazität für verschiedene Leser fest. So könnten Sie z. B. über zwei Anwendungen verfügen: Eine Anwendung verarbeitet Abfragen mit hoher Priorität und benötigt die höchste Leseleistung, während die andere Abfragen mit niedriger Priorität verarbeitet, die eine Drosselung der Leseaktivität tolerieren können.

    Wenn beide Anwendungen aus derselben Tabelle lesen, könnte eine hohe Leselast von der Anwendung mit niedriger Priorität die gesamte verfügbare Lesekapazität für die Tabelle verbrauchen. Dies würde die Leseaktivität der Anwendung mit hoher Priorität drosseln.

    Stattdessen können Sie ein Replikat über einen globalen sekundären Index erstellen, dessen Lesekapazität Sie getrennt von der Tabelle selbst festlegen können. Sie können dann die App mit niedriger Priorität anstelle der Tabelle das Replikat abfragen lassen.

  • Eliminieren Sie Lesevorgänge aus einer Tabelle vollständig. So könnten Sie z. B. über eine Anwendung verfügen, die ein hohes Volumen an Clickstream-Aktivitäten von einer Website erfasst und Sie möchten nicht riskieren, dass Lesevorgänge dies stören. Sie können diese Tabelle isolieren und Lesevorgänge durch andere Anwendungen verhindern (siehe Verwenden von IAM-Richtlinienbedingungen für die differenzierte Zugriffskontrolle), während andere Anwendungen ein Replikat lesen können, das mit einem globalen sekundären Index erstellt wurde.

Um ein Replikat zu erstellen, richten Sie einen globalen sekundären Index ein, der dasselbe Schlüsselschema wie die übergeordnete Tabelle hat, in den einige oder alle Nicht-Schlüsselattribute projiziert werden. In Anwendungen können Sie einige oder alle Leseaktivitäten an diesen globalen sekundären Index statt an die übergeordnete Tabelle richten. Anschließend können Sie die bereitgestellte Lesekapazität des globalen sekundären Indexes anpassen, um diese Lesevorgänge zu verarbeiten, ohne die bereitgestellte Lesekapazität der übergeordneten Tabelle zu ändern.

Es gibt immer eine kurze Verzögerung zwischen dem Schreiben in die übergeordnete Tabelle und dem Anzeigen der geschriebenen Daten im Index zu einer kurzen Verzögerung. Mit anderen Worten, Ihre Anwendungen sollten berücksichtigen, dass das globale sekundäre Indexreplikat mit der übergeordneten Tabelle eventuell konsistent ist.

Sie können mehrere globale sekundäre Indexreplikate erstellen, um verschiedene Lesemuster zu unterstützen. Wenn Sie die Replikate erstellen, projizieren Sie nur die Attribute, die jedes Lesemuster tatsächlich benötigt. Eine Anwendung kann dann weniger bereitgestellte Lesekapazität verbrauchen, um nur die benötigten Daten zu erhalten, anstatt das Element aus der übergeordneten Tabelle lesen zu müssen. Diese Optimierung kann langfristig zu erheblichen Kosteneinsparungen führen.