Дамп большой таблицы SQL в формате .csv и разделить его на несколько отдельных CSV для Redshift

#oracle #amazon-redshift

#Oracle #amazon-redshift

Вопрос:

У меня есть таблица, назовем ее tableA , в базе данных Oracle, которую мне нужно загрузить в redshift. Посмотрел несколько методов в Интернете, большинство из них предлагают использовать datagrip или какую-либо другую среду IDE для ее сброса. Размер таблицы, о которой сообщает Oracle, составляет 89 ГБ, поэтому я не могу использовать DataGrip для дампа ее в виде файла .csv. Как мне сбросить его как разделенный .csv, чтобы я мог использовать COPY команду RedShift для более быстрой загрузки? Пожалуйста, запросите любую дополнительную информацию, которая может потребоваться.

Ответ №1:

Попробуйте использовать эту утилиту.util Он выполняет файлы sql последовательно и сохраняет результат в отдельных файлах csv. Он использует sqlplus в консольном режиме, sqlplus — лучшая утилита для повышения производительности, но это не дружелюбный пользователь.

Попробуйте разделить sql по первичному ключу. Установите диапазоны по первичному ключу в отдельных файлах sql. например

 sql1.sql
select col1, col2, col3. col4 from tableA where col1 >0 and col1<=1000000;
sql2.sql
select col1, col2, col3. col4 from tableA where col1 >1000000 and col1<=2000000;
sql3.sql
select col1, col2, col3. col4 from tableA where col1 >2000000 and col1<=3000000;