2017-02-07 1 views
3

Ich möchte einige Dynamodb-Tabellen, nur Schema, zu Testzwecken in meine lokale Umgebung replizieren. Zuerst habe ich versucht:Wie exportiere ich ein existierendes Dynamotabellenschema nach json?

aws dynamodb describe-table --table-name Foo > FooTable.json

Aber es ist offensichtlich, dass das Ausgabeschema mit dem Eingabeschema aus dem create-table Befehl nicht kompatibel ist:

aws dynamodb create-table --cli-input-json file://FooTable.json --endpoint=http://localhost:8000

Was ich versuche zu vermeiden ist es, Dutzende von Skeletten mit aws dynamodb create-table --generate-cli-skeleton zu erzeugen und sie manuell zu füllen:/

Gibt es eine Möglichkeit, das Tabellenschema in einem Format zu bekommen, das "nützlich" ist " zur Erholung? Ich finde es unglaublich, dass es keine einfache Möglichkeit gibt, dies über die grafische Webschnittstelle oder die Standard-Befehlszeile von aws zu tun - nachdem ich gehört habe, wie "gut" ihr Dienst war.

Antwort

1

Ich schaffte es nur eine Müllhalde zu tun und die "Wiederherstellung" mit bchew/dynamodump:

git clone [email protected]:bchew/dynamodump.git 

Beachten Sie die --schemaOnly Option in der Dokumentation https://github.com/bchew/dynamodump. Befehl war:

./dynamodump.py -m backup --schemaOnly --region foo-region --host localhost --srcTable '*' --port 8000 --accessKey fooKey --secretKey barKey 

Dann können Sie den -m restore-Modus verwenden, um die Daten oder das Schema zurück in eine lokale DynamoDB zu setzen oder wo auch immer :) gewünschte

das gesagt ist, ich es immer noch unglaublich finden, wie schlimm das ist amazon dynamodb Werkzeugkette. Komm schon Leute.

+0

' dynamodump.py -h' führt zu 'Angeforderter Python-Version (2) ist nicht installiert' was damit zu tun? Wie wechseln Sie Skript zu Python '3.6.1'? – Cherry

+0

Ich glaube nicht, dass es mit Python 3 kompatibel ist. Sie müssen Python 2 auf Ihrem Computer installieren. – marcio

1

DynamoDB ist eine NoSQL-Datenbank, die mit Ausnahme des Primärschlüssels und der sekundären Indizes kein Schema enthält. Sie können in der Tabelle describe feststellen, dass es nur die Schlüssel und Indizes zeigt, keine anderen Spalten.

Ich schreibe normalerweise Code, um die Tabelle und die Schlüssel in einer Art von Initialisierungscode zu erstellen, und beginne dann die Tabelle zu verwenden. Es wird nicht weh tun, wenn der Tisch schon da ist. Später, wenn ich versuche, Daten einzufügen und die "Spalte" nicht existiert, spielt es keine Rolle, da DynamoDB es automatisch erstellt.

Wenn Sie die Daten exportieren müssen, there are tools for that, können Sie exportieren (und einige Import auch zulassen) von DynamoDB.

+1

Ich weiß, es ist NoSQL. Vielleicht ist das Problem, dass ich eine perfekte Kopie der vorhandenen Tabellenkonfiguration möchte, einschließlich der Schlüssel und Indizes Metadaten und jeder anderen Konfiguration - ohne eine "Migration" mit einer Programmiersprache und dem SDK schreiben zu müssen - daher habe ich das gesagt Ich kann nicht glauben, dass es unter 'aws dynamodb' keinen Befehl dafür gibt:/ – marcio

Verwandte Themen