Каков наилучший способ импорта автономных данных в базу данных? - PullRequest
0 голосов
/ 14 мая 2010

Немного фона:

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

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

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

Спасибо, что уделили время.

1 Ответ

1 голос
/ 14 мая 2010

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

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...