mamy naszą mongo DB, która przechowuje dane JSON. Chcieliśmy przenieść dane do Redshift w celach związanych z zapytaniami.
Użyliśmy mongoexport csv, aby utworzyć csv z tabeli mongo i wgraliśmy go do S3. Stworzyliśmy odpowiedni schemat relacyjny w Redshift i użyliśmy poleceń kopiowania, aby załadować te dane csv z s3 do redshift.
Możemy użyć java apis do zapytania mongo oraz tworzenia i przesyłania csv do s3. To samo można załadować do przesunięcia ku czerwieni.
Prawdziwym problemem jest to, że ponieważ używamy mongo (json) lub NoSQL, możemy mieć różną liczbę kolumn dla danego obiektu, który należy do tej samej tabeli (jak my JSON), ale w Redshift mamy stałą liczbę kolumn na tabelę Więc w takich przypadkach trzeba utworzyć wszystkie możliwe kolumny i załadować dane . Dla tych obiektów, które nie mają wszystkich kolumn, możemy wypełnić dla nich wartości null.