Репликация ТБ данных между AWS rds и на экземплярах sql в помещении за <5 минут - PullRequest
0 голосов
/ 12 марта 2019

Я только что начал проект с некоторыми довольно пугающими требованиями. Компания A использует приложение, которое записывает записи в компанию B. Задача состоит в том, чтобы перемещать / обновлять / синхронизировать очень большие объемы данных (195 таблиц и 2500 ГБ данных, миллионы и миллионы строк) из экземпляра AWS RDS sql (Компания B ) я считаю, что это sql 2017, для локального экземпляра (Компания A), который является 2016. Приемлемый порог задержки составляет <= 5 минут. У нас есть доступ только для чтения к источнику, и мы не можем ничего там установить, поэтому традиционные средства репликации недоступны. </p>

Существует 1 центральная таблица, которую мы будем называть таблицей A, для которой определен первичный ключ (TableAID). Остальные таблицы имеют отношение внешнего ключа к таблице А, и у них также есть свои собственные первичные ключи, определенные с другими отношениями между ними. Причиной всего этого является то, что при обновлении источника все данные удаляются и вставляются заново, создавая все новые первичные ключи, за исключением TableAID. Таким образом, TableAID является единственным первичным ключом, который сохраняется и на который можно рассчитывать. Другие таблицы сохранят свои отношения, но с другими первичными ключами после обновления. Это делает обновление цели с помощью дельт очень трудным для всех отношений один-ко-многим. В дополнение к этому, компания B будет время от времени архивировать данные, и мы в компании A должны будем синхронизировать существующие данные, сохраняя при этом данные, которые были заархивированы и больше не являются частью потока данных.

Мы исследовали использование SSIS для этого, но не смогли приблизиться к ожиданиям. После некоторых поисков в других темах форума я наткнулся на рекомендацию использовать MS StreamInsight. Я не знаком с этим, но если он будет работать как средство репликации в реальном времени, я смогу ускориться. Я не привязан к какой-либо конкретной технологии, но, сказав это, мой опыт связан с набором инструментов MS. Прежде чем потратить кучу времени на StreamInsight, я хотел бы получить представление о том, является ли это жизнеспособным решением моей проблемы. Любые другие рекомендации также приветствуются!

Спасибо!

...