Как непрерывно заполнять кластер Redshift из AWS Aurora (не синхронизируется)

У меня есть несколько баз данных MySql (OLTP), работающих на кластере AWS Aurora. У меня также есть кластер Redshift, который будет использоваться для OLAP. Цель состоит в том, чтобы реплицировать вставки и изменения из Aurora в Redshift, но не удалять. Redshift в этом случае будет постоянно растущим хранилищем данных, в то время как базы данных Aurora будут иметь созданные, измененные и уничтоженные записи - никогда не следует уничтожать записи Redshift (по крайней мере, не как часть этого механизма репликации). Я смотрел на DMS, но кажется, что DMS не имеет гранулярности, чтобы исключить удаления из репликации. Какой самый простой и эффективный способ настройки среды мне нужен? Я также открыт для сторонних решений, если они работают в AWS.

В настоящее время настроена непрерывная синхронизация DMS.

2 ответа

Вы можете рассмотреть возможность использования DMS для репликации на S3 вместо Redshift, а затем использовать Redshift Spectrum (или Athena) против этих данных S3.

S3 как цель DMS только добавляется, так что вы никогда ничего не теряете.

см. https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html

и https://aws.amazon.com/blogs/database/replicate-data-from-amazon-aurora-to-amazon-s3-with-aws-database-migration-service/

Таким образом, все становится немного сложнее, и вам может понадобиться немного ETL для обработки этих данных (в зависимости от ваших потребностей)

Вы по-прежнему будете получать удаляемые записи с типом записи "D", но вы можете игнорировать или обрабатывать их в зависимости от ваших потребностей.

Простой и эффективный способ перехвата вставок и обновлений из Aurora в Redshift может состоять в следующем подходе:

Aurora Trigger -> Lambda -> Firehose -> S3 -> RedShift

Ниже сообщение в блоге AWS облегчает эту реализацию и выглядит почти как ваш вариант использования. Он также предоставляет пример кода для получения изменений из таблицы Aurora в S3 через AWS Lambda и Firehose. В Firehose вы можете установить пункт назначения как Redshift, который будет копировать данные из S3, по-видимому, в Redshift.

Захват изменений данных в Amazon Aurora с помощью AWS Lambda

Направления AWS Firehose

Другие вопросы по тегам