Da AWS DynamoDB eine Schlüsselwertdatenbank ist, muss jedes Element in einer beliebigen Tabelle eine eindeutige Primärschlüsselidentifikation haben. Es ist wichtig zu beachten, dass Sie diese Primärschlüssel definieren müssen, während Sie Ihre Tabelle erstellen. Außerdem müssen Sie den Primärschlüssel für jedes Element bereitstellen, wenn Sie das Element in eine Tabelle einfügen.
Die Hauptvoraussetzung beim Einrichten der Primärschlüssel ist die Einzigartigkeit. Zwei oder mehr Elemente können keinen ähnlichen Primärschlüssel haben.
In diesem Artikel werden alles erörtert, was Sie über die primären Schlüssel von DynamoDB wissen müssen. Wir werden die verschiedenen Arten von Primärschlüssel diskutieren, die in DynamoDB verwendet werden und wie jeder Typ eingerichtet wird.
Arten von Dynamodb -Primärschlüssel
Es gibt zwei Arten von Primärschlüssel in DynamoDB:
A. Partitionschlüssel (einfacher Primärschlüssel)
Auch als einfacher Primärschlüssel bezeichnet, besteht ein Partitionschlüssel aus einem Attribut. DynamoDB verwendet den Partitionschlüsselwert als Eingabe für eine interne Hash -Funktion. Die Ausgabe aus der Hash -Funktion bestimmt die Partition (physischer Speicher für DynamoDB) zum Speichern Ihrer Elemente.
Ein einfacher Primärschlüssel ähnelt den typischen Schlüsselwertspeichern wie der Verwendung eines Primärschlüssels zum Zugriff auf eine SQL-Tabelle. Sie können die Primärschlüssel auch eng mit den Datenspeichern in Verbindung bringen. Ein hervorragendes Beispiel für einen Partitionschlüssel ist ein User_Name oder user_id in einer Benutzertabelle.
Siehe das folgende Beispiel:
Benutzertabelle
Die bereitgestellte Benutzertabelle verfügt über BenutzerID als einfachen Primärschlüssel oder Partitionschlüssel. Sie können problemlos auf die Details der Elemente in der Tabelle zugreifen, indem Sie die BenutzerID des Elements bereitstellen.
Hier ist ein Beispiel dafür, wie Sie einen Partitionschlüssel in einer DynamoDB -Tabelle mit dem AWS SDK für Python (BOTO3) festlegen können:
Boto3 importieren
# Erstellen Sie einen DynamoDB -Client
DynamoDB = Boto3.Client ('DynamoDB')
# Legen Sie Ihren Tabellennamen und das Attribut (Spalte) fest, um sie als Partitionschlüssel zu verwenden
table_name = 'mytable'
partition_key_name = 'id'
# Definieren Sie das Tischschema
table_schema = [
'Attributename': partition_key_name,
'Keytype': 'Hash'
]
# Erstellen Sie die Tabelle mit dem angegebenen Partitionschlüssel
Antwort = DynamoDB.Tabelle erstellen(
TableName = table_name,
Keyschema = table_schema,
Zugeschriebene Definitionen = [
'Attributename': partition_key_name,
'AttributType': 's'
],
Provisioned Throughput =
'ReadCapacityUnits': 5,
'WriteCapacityUnits': 5
)
Druck (Antwort)
Die angegebene Syntax erstellt eine DynamoDB -Tabelle mit einem Partitionschlüssel mit dem Namen "ID" von "S" (String) -Typ. Der Keytype von „Hash“ gibt an, dass dieses Attribut der Partitionschlüssel ist.
Beachten Sie, dass dies nur eine Möglichkeit ist, einen Partitionschlüssel in DynamoDB festzulegen. Sie können auch die AWS -Verwaltungskonsole, die AWS -CLI oder andere Methoden verwenden, um eine Tabelle mit einem Partitionschlüssel zu erstellen.
B. Partitionschlüssel und Sortierenstaste (zusammengesetzte Primärschlüssel)
Ein zusammengesetzter Primärschlüssel enthält zwei Attribute. Das erste Attribut ist der Partitionschlüssel, und das zweite ist die Sortierschlüssel. Kombinieren Sie den Partitionschlüssel und die Sortierschlüssel bildet eine eindeutige Kennung für ein Element in der Tabelle.
Zusätzlich zum Partitionschlüssel können Sie den Sortierschlüssel weiter verwenden, um die Suche nach einem Element in der Tabelle zu begrenzen. Die Sortierschlüssel hilft auch, die Reihenfolge zu bestimmen, in der die Daten in einer Partition gespeichert werden. Siehe das folgende Diagramm:
Musiktisch
Die vorherige Tabelle hat sowohl ein Partitionschlüsselattribut als auch ein Sortierschlüsselattribut. Somit können zwei Elemente den gleichen Partitionsschlüsselwert haben, aber unterschiedliche Sortier -Schlüsselwerte haben. Die zusammengesetzten Schlüssel (Künstler und Songtitel) im Musiktisch helfen Ihnen, einen bestimmten Artikel zu erhalten.
Sie können eine Tabelle mit einem zusammengesetzten Schlüssel erstellen, indem Sie die folgenden Schritte unterhalten:
Schritt 1: Erstellen Sie einen Partitionschlüssel
Der erste Schritt besteht darin, einen Partitionschlüssel zu erstellen. Verwenden Sie nach dem Eingeben Ihres Tabellennamens die folgende Syntax, um einen Partitionschlüssel zu erstellen.
Attributename = String, KeyType = String…
Die bereitgestellte Attributtypsyntax kann eine Zeichenfolge, Nummer (n) oder binär (b) sein.
Wenn Sie die Kurzsyntax für die Festlegung Ihres Partitionschlüssels finden, können Sie die folgende JSON -Syntax verwenden:
[
"Attributename": "String",
"Keytype": "Hash"
…
]
Alternativ kann der Befehl Python, der im früheren Abschnitt dieses Artikels erörtert wird, Ihnen helfen, einen Partitionschlüssel zu erstellen.
Schritt 2: Erstellen Sie eine Sortierschlüssel
Sie können jetzt einen Sorttaste mit der folgenden JSON -Syntax erstellen. Verwenden Sie die ID -Attribute nicht für Ihre Sorttasten. Stattdessen können Sie einen Attributtyp verwenden.
[
"Attributename": "String",
"Keytype": "Bereich"
…
]
Während wir die Hash -Funktion beim Erstellen eines DynamoDB -Partitionschlüssels verwenden, verwenden wir nun die Bereichsfunktion, um die DynamoDB -Sort -Taste einzurichten.
Abschluss
Durch die Auswahl der richtigen Primärschlüssel für Ihre Tabelle können Sie die Daten effektiv abrufen und in DynamoDB speichern. Es ist wichtig, den Hauptschlüssel beim Entwerfen Ihrer Tabelle sorgfältig zu berücksichtigen, da dies die Leistung und Skalierbarkeit Ihrer Anwendung erheblich beeinflusst. Wenn Sie sich entscheiden, einen Sort -Schlüssel hinzuzufügen, stellen Sie sicher, dass Sie ein Attribut verwenden, mit dem Sie die Elemente in Ihrer Tabelle schnell aussortieren können.