Как непрерывно заполнять кластер 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
Таким образом, все становится немного сложнее, и вам может понадобиться немного ETL для обработки этих данных (в зависимости от ваших потребностей)
Вы по-прежнему будете получать удаляемые записи с типом записи "D", но вы можете игнорировать или обрабатывать их в зависимости от ваших потребностей.
Простой и эффективный способ перехвата вставок и обновлений из Aurora в Redshift может состоять в следующем подходе:
Aurora Trigger -> Lambda -> Firehose -> S3 -> RedShift
Ниже сообщение в блоге AWS облегчает эту реализацию и выглядит почти как ваш вариант использования. Он также предоставляет пример кода для получения изменений из таблицы Aurora в S3 через AWS Lambda и Firehose. В Firehose вы можете установить пункт назначения как Redshift, который будет копировать данные из S3, по-видимому, в Redshift.
Захват изменений данных в Amazon Aurora с помощью AWS Lambda