Verwendung von Sparse Indexes - 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.

Verwendung von Sparse Indexes

DynamoDB schreibt für jedes Element in der Tabelle nur dann einen entsprechenden Indexeintrag, wenn der Sortierschlüsselwert des Index im Element vorhanden ist. Wenn der Sortierschlüssel nicht in jedem Tabellenelement vorhanden ist oder der Indexpartitionsschlüssel nicht im Element vorhanden ist, handelt es sich um einen Sparse Index.

Sparse Indexes sind für Abfragen nützlich, die für einen kleinen Unterabschnitt einer Tabelle ausgeführt werden. Angenommen, Sie verfügen über eine Tabelle, in der Sie alle Kundenbestellungen speichern und die die folgenden Schlüsselattribute besitzt:

  • Partitionsschlüssel: CustomerId

  • Sortierschlüssel: OrderId

Um offene Bestellungen nachzuverfolgen, können Sie ein Attribut mit dem Namen isOpen in Bestellelemente einfügen, die noch nicht versendet wurden. Wenn die Bestellung versendet wird, können Sie das Attribut löschen. Wenn Sie anschließend einen Index für CustomerId (Partitionsschlüssel) und isOpen (Sortierschlüssel) erstellen, enthält dieser nur Bestellungen, für die isOpen definiert ist. Wenn es Tausende von Bestellungen gibt, von denen nur eine kleine Zahl offen ist, ist es schneller und kostengünstiger, diesen Index für offene Bestellungen abzufragen, statt die ganze Tabelle zu scannen.

Anstelle eines Attributs wie isOpen könnten Sie ein Attribut mit einem Wert verwenden, der eine nützliche Sortierreihenfolge im Index ergibt. Sie könnten beispielsweise das Attribut OrderOpenDate verwenden, das auf das Datum festgelegt ist, an dem die einzelnen Bestellungen platziert wurden, und dieses löschen, nachdem die Bestellung ausgeführt wurde. Auf diese Weise werden die Elemente sortiert nach dem Datum zurückgegeben, an dem die einzelnen Bestellungen platziert wurden, wenn Sie den Sparse Index abfragen.

Beispiele für Sparse Indexes in DynamoDB

Globale sekundäre Indexe sind standardmäßig Sparse Indexes. Wenn Sie einen globalen sekundären Index erstellen, geben Sie einen Partitionsschlüssel und optional einen Sortierschlüssel an. Im Index werden nur Elemente aus der Basistabelle angezeigt, die diese Attribute enthalten.

Wenn Sie einen globalen sekundären Index als Sparse Index festlegen, können Sie ihn mit einem Schreibdurchsatz bereitstellen, der unter dem der Basistabelle liegt, und dennoch eine herausragende Leistung erzielen.

Eine Gaming-Anwendung könnte beispielsweise zwar alle Punktzahlen sämtlicher Benutzer nachverfolgen, muss jedoch in der Regel nur einige hohe Punktzahlen abfragen. Im folgenden Design wird dieses Szenario effizient behandelt:

Spärliches GSI Beispiel.

Hier hat Rick drei Spiele gespielt und in einem der Spiele den Status Champ erreicht. Padma hat vier Spiele gespielt und in zwei der Spiele den Status Champ erreicht. Beachten Sie, dass das Attribut Award nur in Elementen vorhanden ist, in denen der Benutzer eine Auszeichnung erhalten hat. Der verknüpfte globale sekundäre Index sieht wie folgt aus:

Spärliches Beispiel. GSI

Der globale sekundäre Index enthält nur die hohen Punktzahlen, die häufig abgefragt werden. Dies ist ein kleiner Teilsatz der Elemente in der Basistabelle.