2010-05-14 3 views
0

Немного фона:Каков наилучший способ импорта автономных данных в базу данных?

У меня есть удаленная автономная база данных SQL Server, которая усекается в конце каждого выходного дня. Данные вряд ли реляционные, не нормированные вообще, и довольно раздражающие для работы. Кроме того, схема для этой базы данных не может быть изменена вообще, поскольку она воссоздана сторонним приложением. Прежде чем база данных будет уничтожена каждую неделю, создается резервная копия данных этой недели. В среднем каждая база данных будет содержать от 500 000 до 2 000 000 записей.

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

Как я могу убедиться, что у меня есть уникальные идентификаторы в моей исторической версии этой базы данных? Есть ли какие-либо возможности в SQL Server, которые могут сделать некоторые из тяжелой работы в этом для меня?

Спасибо за ваше время.

ответ

1

В SQL Server есть определенная функция, которая может помочь вам, и эта функция называется SSIS (службы интеграции SQL Server). Одним из основных видов использования SSIS является использование ETL (Extract, Transform, Load), что означает извлечение данных из нескольких различных источников, преобразование их в то, что вам нужно, чтобы попасть в вашу целевую базу данных (например, хранилище данных - любое соединение с существующим данные также будут происходить здесь), и, наконец, загрузив их в вашу целевую БД.

Я думаю, что лучший способ начать работу, если это то, что вы хотите, конечно же, - собрать хорошую книгу по SSIS и пройти через нее. Во время чтения не забудьте поиграть с BIDS (Business Intelligence Development Studio - одним из инструментов SQL Server), чтобы создать несколько тестовых пакетов. Кроме того, в Интернете вы найдете множество статей о «начале работы».

В вашем случае, в частности, то, что я хотел бы сделать это:

  • создать общий пакет, который может импортировать данные из источника БД (один из еженедельного DBS) и вставить его в пункт назначения DB - это пакет можно параметризовать, используя конфигурацию родительского пакета.
  • создайте основной пакет, который перебирает все резервные копии в определенной папке, восстанавливает их один за другим и вызывает общий пакет импорта для каждого восстановления. После каждого успешного импорта Control Flow удаляет ранее восстановленную БД.

Я думаю, что я дал вам достаточно материала, чтобы исследовать сейчас :-)

удачи, Валентино.

+0

И чтобы добавить к тому, что сказал Валентино, создайте свой собственный идентификатор и сгенерируйте таблицы, чтобы вы могли обновлять все дочерние таблицы, когда у вас есть новый идентификатор для каждой родительской записи. – HLGEM

Смежные вопросы