Как экспортировать данные из БД AWS Aurora Postgres в Redshift? - PullRequest
0 голосов
/ 11 ноября 2019

У меня есть Postgres DB , размещенный на AWS Aurora , из которого мне нужно извлечь данные и вставить их в Redshift .

Myтекущий подход заключается в следующем:

  1. Создайте соединение Aurora DB , используя Psycopg2 .
  2. С Aurora созданный выше, запросите таблицу Aurora DB и экспортируйте набор результатов как файл CSV в S3 , используя OUTFILE
  3. из S3 , Redshift соединение с использованием Psycopg2 .

Я пытаюсь оптимизировать это, удалив службу S3 иподключение Aurora к Redshift напрямую.

Вот что я хочу сделать, для которого я не смог найти ресурсы:

Запрос Аврора таблица - таблица1 и напрямую экспортируйте набор результатов в таблицу Redshift - таблица1.

Я даже не уверен, возможно ли это с текущей системой. Есть мысли?

1 Ответ

1 голос
/ 11 ноября 2019

Существует два способа получения данных в базу данных Amazon Redshift:

  • COPY команда для загрузки из оператора Amazon S3
  • INSERT для вставки данных, предоставленных как частьоператора SQL

Метод COPY рекомендуется для нормальной загрузки данных. Он работает параллельно между срезами и сохраняет данные настолько эффективно, насколько это возможно, учитывая, что он добавляет данные.

Команда INSERT приемлема для небольшого числа вставок, но нехорошая идея для вставки большого количества строк. Где возможно, вставляйте несколько строк одновременно. Допустимо использовать операторы INSERT ... SELECT, которые могут вставлять объемные данные из другой таблицы за одну операцию.

Таким образом, единственный способ удалить Amazon S3 из вашей операции - это кодировать данные в * 1020. * утверждение, но это не оптимальный способ загрузки данных.

...