Как непрерывно заполнять кластер Redshift из AWS Aurora (не синхронизируется) - PullRequest
0 голосов
/ 24 января 2019

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

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

Ответы [ 2 ]

0 голосов
/ 28 января 2019

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

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

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

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

Направления пожарных рукавов AWS

0 голосов
/ 25 января 2019

Вы можете рассмотреть возможность использования 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», но вы можете игнорировать или обрабатывать их в зависимости от ваших потребностей.

...