So fügen Sie eine Spalte in DynamoDB hinzu

Antworten:

154

DynamoDB erfordert keine Schemadefinition, daher gibt es keine "Spalte". Sie können einfach ein neues Element mit einem neuen Attribut hinzufügen.

Julio Faerman
quelle
4
Ein Benutzer kann also einfach seine "Profilinformationen" mit einem zusätzlichen Feld hochladen, und Dynamo akzeptiert sie einfach im laufenden Betrieb. Oder muss ich als Administrator hineingehen und es hinzufügen?
Costa
11
@Costa Solange Ihr Code das neue Attribut in seinem PutItem-Aufruf enthält, akzeptiert DynamoDB es nur. Es spielt keine Rolle, dass kein anderer Datensatz dieses Attribut hat.
Osullic
Wie entferne ich ein Attribut aus allen Dokumenten?
Prashant Tapase
2
Nicht in einer einzigen Operation, ich glaube, Sie müssten UpdateItem für jede iterieren und aufrufen
Julio Faerman
1
@HrushikeshDhumal Möglicherweise wird das neue Feld in der Benutzeroberfläche nicht angezeigt, da Sie nicht danach fragen. Dynamodb speichert Daten mit neuen Attributen im Element. Es ist nicht erforderlich, andere Attribute als den Hash-Schlüssel (und den Sortierschlüssel, falls vorhanden) zu definieren.
Bschandramohan
2

Lassen Sie uns nicht in die semantische Diskussion über den Unterschied zwischen "Feldern" und "Spalten" hineingezogen werden. Das Wort "Spalte" erinnert uns an relationale Datenbanken, was Dynamodb nicht ist. Im Wesentlichen bedeutet dies, dass dynamodb keine Fremdschlüssel hat .

Dynamodb verfügt jedoch über "primäre Partitionsschlüssel" und "Indexpartitionsschlüssel" , genau wie bei relationalen Datenbanken.

Sie müssen diese Schlüssel beim Hinzufügen von Daten berücksichtigen. Abgesehen von diesen Anforderungen müssen Sie Ihre Felder nicht vordefinieren (mit Ausnahme der zuvor genannten Partitionsschlüssel).

Angenommen, Sie sind neu in diesem Bereich, einige zusätzliche bewährte Methoden:

  • Fügen Sie jedem Datensatz ein numerisches Feld hinzu, um die Erstellungszeit in Sekunden zu speichern . Dynamodb verfügt über optionale Reinigungsfunktionen, für die diese Art von Feld in Ihren Daten erforderlich ist.
  • Sie können in dynamodb keine Datumsangaben verwenden , daher müssen Sie diese als numerische Felder oder als Zeichenfolgen speichern. In Anbetracht der zuvor erwähnten Bemerkung können Sie einen numerischen Typ für sie bevorzugen.
  • Speichern Sie keine großen Dokumente darin, da die maximale Abrufgröße 16 MB und die maximale Datensatzgröße 400 KB beträgt. Glücklicherweise hat AWS auch eine DocumentDB.
bvdb
quelle
-1

Eine Möglichkeit, einer vorhandenen Tabelle in DynamoDB in Amazon AWS eine neue Spalte hinzuzufügen:

Wir können die Werte in DynamoDb auf zwei Arten speichern: (i) In einem RDBMS-Strukturtyp für die DynamoDB können wir eine neue Coulmn hinzufügen, indem wir denselben Befehl ausführen und den Eintrag "Neue Spalte" beibehalten, in dem sich die Datensätze in der vorhandenen Tabelle befinden wurde erschaffen. Wir können DynamoDb mit Datensätzen / Zeilen verwenden, die Werte für bestimmte Spalten haben, während andere Spalten keine Werte haben.

(ii) In einer NoSQL-Struktur; Hier speichern wir einen Json-String in einer Spalte, um alle Attribute gemäß der Anforderung beizubehalten. Hier generieren wir eine JSON-Zeichenfolge und müssen das neue Attribut in die JSON-Zeichenfolge einfügen, die dann in dieselbe Spalte mit dem neuen Attribut eingefügt werden kann.

user11677199
quelle