Создание централизованной БД
У меня есть 2 базы данных (A) с одинаковыми именами на разных серверах ( B & C). Обе базы данных имеют одинаковую схему. (SQL Server 2008 R2)
Задача 1: Скопировать (перенести) обе базы данных на 3-й сервер (D) с именами (A_B и A_C).
Задача 2: Объединить обе базы данных в одну базу данных (A_D). (Я не знаю, как я буду обращаться с ключами)
Задача 3: Ежедневно я должен получать данные с серверов B & C и помещать их в централизованный сервер D.
Любая помощь будет оценена.
Благодарю.
Ritesh
2 ответа
Вот несколько идей:
Задача 1: Перенести базы данных, сделав резервную копию на сервер D.
Задача 2: Я думаю, что это будет включать процессы ETL и создание новых суррогатных ключей в базе данных A_D. Сохраните ключи от исходного источника в столбце идентификатора источника данных. Я думаю, что заявление MERGE было бы полезно.
Задача 3: использовать логику в задаче 2
Обновление для Задачи 2:
Скажи источник Table1
в базе данных A и B есть ключевой столбец с именем Table1_ID
, В базу данных A_D добавьте столбцы Table1_SourceID
а также Table1_Source
, населять Table1_SourceID
с ключом из исходной базы данных, и использовать Table1_Source
указать исходную базу данных.
использование Table1_ID
как ключ к Table1
и является уникальным для базы данных A_D. Это будет учитывать коллизии для ключевых столбцов в исходных базах данных. Также вы можете отслеживать строку в исходной базе данных.
Задача 1. Создание целевых баз данных без структур. Я бы использовал задачи -> export
функция в исходных базах данных с опцией создания структур в SSMS. После экспорта у вас будут точные копии в месте назначения.
Задача 2: В каждой таблице A_D
создать новый ключевой столбец (SurKey). Это должна быть комбинация значений, которая даст уникальные значения во всей таблице. Например, исходная таблица abbreviation + PK column + date
,
Для каждой таблицы создайте два потока данных в пакете служб SSIS, которые будут загружать данные из A_B
а также A_C
, Положить Derived Column
компонент, который добавит новый столбец - SurKey.
В A_B
DataFlow положить A_B
как сокращение, A_C
во втором.
Задача 3: Использовать потоки данных, которые вы создали. Сценарий задания в SSMS, добавьте его в ежедневный план.