У меня есть запрос Dblink Amazon RDS (Postgres), который выполняет INSERT со строками из кластера Amazon Redshift. Запрос завершается через 15/20 минут, если не больше, но я вижу, что все строки вставляются через несколько минут. Я выполняю эти запросы через DataGrip JetBrains.
Некоторые другие похожие dblink в том же соединении завершаются, как и ожидалось. Единственное отличие, которое я вижу, это размер таблицы, который больше в первом случае.
Все эти запросы просто копируют всю таблицу. Примерно так:
insert into rds_table(
select *
from db_link('foreign_server',
$REDSHIFT$
select *
from redshift_table
$REDSHIFT$) as table_n(...)
);
Где "чужой сервер" - это мое соединение с Redshift. Я знаю, что запрос завершен, потому что rds_table имеет то же количество строк, что и redshift_table.
DataGrip показывает, что запрос все еще выполняется:
и выиграл 'Позвольте мне запускать другие запросы, пока я не остановлю запрос вручную. Если я это сделаю, вставленные строки останутся в базе данных, что означает, что транзакция уже зафиксирована.
Почему это происходит? Это проблема с DataGrip или с Postgres? Как я могу это исправить?
Есть ли другая лучшая альтернатива для переноса данных из Redshift в RDS?