Kopieren von Daten aus MySQL in Amazon DynamoDB
Ich habe eine Tabelle in MySQL, die 500 Millionen Datensätze. Ich möchte zum importieren dieser Tabelle in Amazon DynamoDB.Ich verstehe, es gibt zwei Möglichkeiten, es zu tun:
-
JAVA-Api: Das problem bei diesem Ansatz ist, dass es langsam ist, auch die Verbindung zur Datenbank wird gelöscht manchmal.
-
Amazon-Daten Import Pipeline : Scheint vielversprechend, Aber wie Exportiere ich die Daten aus der MySQL-format erkannt von DynamoDB?
Bitte lassen Sie mich die bestmögliche Annäherung zwischen den beiden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
AWS hat zwei Dienste, die helfen können Sie zum ausführen dieses Vorgangs.
Daten-Pipeline
Sehr einfache Weise -, wenn Sie Ihre "Schemata" sind ähnlich (ich fühle mich immer peinlich darüber zu reden-schema für DynamoDB) - wäre der export von MySQL auf S3, dann ist ein import aus S3, DynamoDB.
Daten-Pipeline hat zwei-Tutorials zu helfen, Sie zu setup dir Aufgaben
http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-copydata-mysql.html
http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-importexport-ddb-part1.html
Können Sie weiter zu verbessern, diesen Prozess durch die Entwicklung einer einzigen pipeline, führen Sie den import und den export. Sollten Sie zum transformieren der Daten zwischen den import-und export, müssen Sie entwickeln Ihre transformation code und führen Sie es aus der pipeline.
In Daten-Pipeline-Bedingungen, dies ist Aufruf einer Aktivität. Eine Aktivität kann so einfach wie ein shell-Skript oder so Komplex wie ein Hive /Hadoop /Pig-Anwendung läuft auf einem EMR näher.
http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-concepts-activities.html
Daten-Pipeline wird auch Sie planen, Ihre Durchführung in regelmäßigen Zeitintervall.
Hive und EMR
Hive ist ein hadoop-tool zu schreiben, SQL-Befehle, um Daten zu manipulieren Quellen. Hive übersetzt SQL in eine Hadoop-Anwendung, die auf einem cluster.
Sie können ausführen von Hive auf AWS Elastic Map Reduzieren-Cluster (managed service hadoop-cluster).
Hive auf EMR verbinden können, um nicht gegenüber Datenquellen wie Dateien auf S3 oder DynamoDB Datenbank. Es erlaubt Ihnen, SQL-Anweisungen schreiben, die oben auf DynamoDB !
In Ihrem Fall verwenden, müssen Sie schreiben ein Hive-Skript, das würde das Lesen von MySQL und schreiben zu DynamoDB. Sie können die Daten transformieren, indem standard (Stock) SQL-Ausdrücke.
Mehr über Hive auf EMR :
http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-hive.html
Mehr über DynamoDB und Hive :
http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/EMRforDynamoDB.Walkthrough.html
http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/EMRforDynamoDB.html
Zusätzlich zu den anderen Antworten möchte ich erwähnen, dass dynamodb erkennt
csv
odertsv
- format-Dateien für den Import. Wir können auch HIVE-sql-Elastic Map reduce to Massenladen von Daten aus einercsv
- Datei. Das einzige, was wir betrachten müssen, wenn wir windows verwenden, um einen dump der Tabelle zucsv
dann müssen wir sicherstellen, dass das Zeilenende von windows-system\r\n
ersetzt werden durch\n
um es konform zu machen mit amazon.Ich fand die einfachste Möglichkeit für mich war zu schreiben, ein Skript zu übertragen, um alle Daten in eine json-Datei in das angegebene format hier : AWS-Daten Laden
erstellen und dann die Tabellen, und führen Sie den code von meiner Konsole
Herunterladen und so konfigurieren, aws cli :https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tools.CLI.html