У меня есть запрос 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?
dblink
все еще выполняется? - person Laurenz Albe   schedule 17.10.2019