Import

DynoTable importiert CSV-, JSON- und NDJSON-Dateien in eine bestehende Tabelle – die andere Hälfte von Export. Die gesamte Datei wird geprüft, bevor eine einzige Zeile geschrieben wird, sodass eine fehlerhafte Datei mit Zeilennummern scheitert, statt nur die Hälfte deiner Daten zu importieren.

Öffne ihn über die Schaltfläche Import in der Tabellen-Symbolleiste. Import schreibt in die Tabelle, daher ist eine Test- oder Aktivlizenz erforderlich.

DynoTables DynamoDB-Import-Dialog: die gewählte Datei, ihre erkannten Spalten und abgeleiteten Typen sowie eine Vorschau der ersten Zeilen.
DynoTables DynamoDB-Import-Dialog: die gewählte Datei, ihre erkannten Spalten und abgeleiteten Typen sowie eine Vorschau der ersten Zeilen.

Import lädt Daten in eine Tabelle, die bereits existiert – er legt nie eine neue an. Erstelle zuerst die Tabelle (und ihren Primärschlüssel), dann importiere hinein.

Zwei Genauigkeitsstufen

ExaktJSON / NDJSON, geschrieben in der (DynamoDB-JSON) Wire-Form. Nichts wird geraten: Jeder Wert trägt seinen Typ bereits mit sich, sodass ein Export in diesem Format unverändert zurückimportiert wird. Dieses Format nimmst du, wenn die Daten wichtig sind.

ConvenienceCSV und schlichtes (unmarshalled) JSON. Diese tragen keine Typinformation, daher leitet DynoTable pro Spalte einen Typ ab und zeigt dir vor dem Commit, was es gewählt hat. Bequem, und auf dokumentierte Weise verlustbehaftet – siehe Wo Convenience-Dateien Informationen verlieren.

Spalten und Typen

Die Kopfzeilen der Datei werden zu Attributnamen. Die Vorschau listet jede Spalte mit dem von DynoTable abgeleiteten Typ. Rechtsklicke auf eine Spaltenüberschrift, um sie umzubenennen, wenn die Kopfzeile nicht zu deinem Attributnamen passt, oder um ihren Datentyp zu ändern, wenn der abgeleitete nicht passt – zum Beispiel ein Produktcode, der nur aus Ziffern besteht, aber Text bleiben muss statt zu einer Zahl zu werden.

Die Typliste bietet nur das an, was die Werte dieser Spalte tatsächlich werden können, sodass eine Spalte mit reinem Text nicht Map oder List anbietet. Hat eine Spalte nur einen möglichen Typ, erscheint keine Liste. Über diese Vorschau hinaus gibt es keinen eigenen Mapping-Bildschirm.

Deine Datei muss den vollständigen Primärschlüssel der Tabelle liefern. Eine Zeile, der ein Schlüsselattribut fehlt oder die dafür den falschen Typ trägt, wird namentlich abgelehnt.

Nichts wird geschrieben, bis die ganze Datei besteht

Import liest die Datei zweimal. Der erste Durchlauf validiert jede Zeile und schreibt nichts; nur wenn die Datei besteht, schreibt der zweite Durchlauf.

  • Probleme werden mit Zeilennummern gemeldet (oder Item-Positionen, bei einem JSON-Array), bis zu 20 auf einmal.
  • Zwei Zeilen mit demselben Key in einer Datei werden abgelehnt, und dir werden beide Positionen angezeigt – DynamoDB würde stillschweigend nur die letzte behalten.
  • Korrigiere die Datei und drücke erneut auf Import; der Dialog bleibt bei der gewählten Datei.

Import ersetzt passende Items

Eine importierte Zeile ersetzt jedes bestehende Item mit demselben Primärschlüssel, Attribut für Attribut – sie wird nicht damit zusammengeführt. Attribute, die das alte Item hatte und die Datei nicht enthält, sind weg.

Import läuft außerdem nicht über Staging, es gibt also keinen Prüfschritt und kein Revert. Anders als ein gestagter Edit lässt sich ein Import nicht aus dem Verlauf der App rückgängig machen. Bei Daten, die dir wichtig sind, importiere zuerst in eine Kopie der Tabelle und prüfe das Ergebnis.

Limits

LimitWert
CSV-/NDJSON-Dateigröße250 MB
Ein einzelnes .json-Array50 MB – darüber NDJSON verwenden
Zeilen pro Import2.000.000
Ein Item400 KB (DynamoDBs eigene Obergrenze)

Eine .json-Datei enthält ein großes Array, das als Ganzes geparst werden muss, weshalb ihr Limit niedriger liegt. NDJSON – ein Item pro Zeile – wird stattdessen gestreamt und schöpft damit die vollen 250 MB aus.

Wo Convenience-Dateien Informationen verlieren

Das gilt nur für CSV und schlichtes JSON. Das marshallte DynamoDB-JSON-Format hat keine dieser Einschränkungen.

  • Typen werden aus einer Stichprobe von rund den ersten 200 Zeilen abgeleitet. Eine Spalte, die dort numerisch aussieht, später in der Datei aber nicht-numerisch wird, wird bei der Validierung abgelehnt – die Lösung ist, die Datei zu korrigieren.
  • Sets und Binärdaten lassen sich in CSV nicht ausdrücken, daher können sie aus einer solchen Datei nicht importiert werden.
  • Leere Zellen werden übersprungen, nicht als leere Strings geschrieben. Ein Item hat dieses Attribut dann einfach nicht.
  • Maps und Lists überstehen den Trip. Export schreibt sie als JSON-Text in eine CSV-Zelle, und Import erkennt diesen Text und baut die Struktur wieder auf. Ist eine Spalte tatsächlich Text, der zufällig wie JSON aussieht, zeigt die Vorschau, was daraus wurde, und du kannst den Datentyp dieser Spalte wieder auf String setzen.
  • Sehr große Zahlen in schlichtem JSON verlieren an Präzision, bevor DynoTable sie überhaupt sieht – das ist eine Einschränkung von JSON selbst. Verwende DynamoDB-JSON für IDs und Beträge, die exakt bleiben müssen.
  • Spreadsheet-Sicherheitsmarkierungen werden beim Rückweg berücksichtigt. Export stellt Zellen, die eine Tabellenkalkulation als Formel behandeln würde, ein Apostroph voran. Beim Import wird '-5 zur Zahl -5 und '+7 kommt als Text +7 zurück – aber eine echte Formel wie '=SUM(A1) behält ihr Apostroph, dauerhaft. Es zu entfernen würde genau das wieder scharf schalten, was die Markierung entschärfen soll.

Fortschritt, Abbrechen und Fehler

Ein laufender Import erscheint mit Live-Fortschritt im Aktivität-Dock am unteren Rand der Seitenleiste und läuft weiter, während du in anderen Tabs arbeitest. Von dort aus kannst du ihn stoppen; bereits geschriebene Zeilen bleiben geschrieben.

Wenn DynamoDB die Tabelle so stark drosselt, dass manche Zeilen auch nach Wiederholungsversuchen nicht geschrieben werden können, schließt der Import ab und teilt dir mit, wie viele Zeilen nicht geschrieben werden konnten. Dieselbe Datei erneut auszuführen ist sicher – Zeilen, die angekommen sind, werden einfach mit denselben Werten erneut geschrieben.

Import-Einträge bleiben im Dock, bis du sie verwirfst: Ein Import erzeugt keine Datei, auf die verwiesen werden kann, daher ist diese Zeile der einzige Nachweis, dass der Lauf abgeschlossen ist.

Aktualisiert