Wir haben unsere Mongo-DB, die JSON-Daten speichert. Wir wollten Daten für einige Abfragezwecke nach Redshift migrieren.
Wir haben mongoexport csv verwendet, um CSV aus der Mongo-Tabelle zu erstellen und es in S3 hochzuladen. Wir haben ein entsprechendes relationales Schema in Redshift erstellt und Kopierbefehle verwendet, um diese CSV-Daten von s3 nach Redshift zu laden.
Wir können Java-APIs verwenden, um Mongo abzufragen und CSV zu erstellen und auf S3 hochzuladen. Dasselbe kann in Redshift geladen werden.
Das eigentliche Problem ist, da wir Mongo (json) oder NoSQL verwenden, haben wir möglicherweise eine unterschiedliche Anzahl von Spalten für ein bestimmtes Objekt, das zur selben Tabelle gehört (wie wir JSON), aber in Redshift haben wir eine feste Anzahl von Spalten pro Tabelle. Also in solchen Fällen Sie müssen alle möglichen Spalten erstellen und Daten laden. Für die Objekte, die nicht alle Spalten haben, können wir Nullwerte für sie füllen.