Назад | Перейти на главную страницу

Перенос данных из реплики чтения RDS в Redshift

Я пытаюсь создать задачу AWS DMS (Data Migration Service) для переноса данных из реплики чтения RDS, на которой запущен Postgres, в кластер Redshift, однако моя задача всегда терпит неудачу, когда приходит время перенести несколько таблиц (обычно те, которые чаще используются неудачно).

Я создал моментальный снимок из этой реплики чтения и смог успешно перенести его в кластер Redshift, поэтому я не думаю, что проблема связана с самой базой данных.

Обратите внимание, что я использую реплику для чтения в качестве источника, потому что моя основная база данных находится в другом регионе, чем Redshift Cluster.

Что я делаю не так?

Я выяснил, в чем проблема: поскольку я использую DMS с репликой чтения, если у меня есть длительный запрос для передачи данных в Redshift, этот запрос будет отменен при обновлении реплики чтения.

Итак, я изменил значения: max_standby_archive_delay и max_standby_streaming_ delay до 15 минут (900000 мс), таким образом Postgres будет ждать до 15 минут, прежде чем применить обновление к реплике чтения, что является достаточным временем для передачи данных из реплики чтения в Redshift.

Обратите внимание, что невозможно создать текущую передачу данных из реплики чтения. Либо полная загрузка, либо ничего.

Справочный документ: https://www.postgresql.org/docs/9.0/hot-standby.html