@Riptor

Консолидация данных из баз филиалов в центральной базе c агрегированием. Как реализовать/что выбрать?

Задача: консолидировать данные из нескольких баз в одной с предварительным агрегированием и с отметкой базы, из которой пришли данные. Возможно ли реализовать с помощью репликации MS SQL Server? Какие существуют техники для реализации подобного вручную (на T-SQL)? Как быть со ссылочной целостностью (циклические ссылки сущностей друг на друга)? Как обеспечить консистентность данных при выборке?
  • Вопрос задан
  • 2687 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Sumor
Здесь очень многое зависит от условий задачи.
1. Есть или нет связь между серверами MS SQL, хотя бы раз в какое-то время.
2. БД небольшие и агрегируются целиком, или огромная и планируется не только пополнять, но и удалять записи.
3. Насколько часто вы хотите этим заниматься.
4. И много много чего ещё.

Нужно: одинаковая структура объединяемых данных, просчёт всех возможных коллизий, которые могут возникнуть при слиянии. Использовать GUID в качестве идентификаторов (можно пользоваться функцией NEWSEQUENTIALID для новых записей). Помечать какая запись откуда пришла, возможно потребуется хранить удалённые записи.

Если у вас сервера связаны, или хотя бы иногда связываются - то лучше всего работать с репликациями. Если нет - выгружать БД в бэкапы, отдельные файлы передачи данных и тп, тащить на сервер агрегации и там уже сливать в кучу.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы