Перенос данных из базы данных неизвестной структуры в базы данных известной структуры - PullRequest
1 голос
/ 02 декабря 2010

У меня есть несколько проблем, по которым мне нужна помощь.Мне нужно получить данные в моей базе данных SQL из произвольных источников.Детали: я знаю точную структуру моей базы данных, и структура не изменится.Когда я получаю новые данные, это происходит только один раз, когда я настраиваю экземпляр своей базы данных.Я сделаю много экземпляров своей базы данных, и каждый раз ей придется получать данные из другого источника, и эти источники будут структурированы по-разному.Данные, скорее всего, будут содержать тысячи строк записей.Источник данных, скорее всего, будет храниться в Excel, Access, более редких Word и, что еще реже, он будет храниться в базе данных SQL.Я могу предположить, что большинство основных данных будут одинаковыми, просто помещенными в разные места.Они будут следовать общей группировке, несмотря на то, как там проходят.По сути, я переношу данные из устаревших систем в систему SQL, и это должно быть сделано для многих групп, которым требуется собственный частный экземпляр базы данных.Есть мысли о том, как бы я это сделал?Насколько сложно было бы написать программу, которая бы сделала для меня большую часть этого?

Ответы [ 4 ]

2 голосов
/ 02 декабря 2010

У меня похожий тип проекта, в котором данные извлекаются из Access, INI-файла, даты изменения файла и MySql. Я собираю эти данные каждое утро и в основном добавляю к установленной схеме SqlServer.

Я создал DataTable и, перебирая набор каталогов, вставляю данные в каждую новую строку. После завершения DataTable я выполняю массовую копию для добавления в базу данных.

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

НТН ...

2 голосов
/ 02 декабря 2010

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

Для каждой таблицы в целевой системе создайте представление, в котором отображаются исходные данные, которые, как вы ожидаете, можно будет вставить. Выбирайте имена столбцов, чтобы было легко определить, что нужно сделать; скорее всего, вы выберете имена столбцов, которые соответствуют целевым столбцам в вашем выражении INSERT. Сохраните ваши INSERT операторы как хранимые процедуры.

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

0 голосов
/ 11 февраля 2016

Это строительные блоки для сознания или базы ......

1 База данных, которая организует тысячи файлов, похожих на ДНК,

2 пользовательский интерфейс

3 детали скрыты, предотвращая взлом системы / сбой

0 голосов
/ 31 марта 2011

Лучший способ решения этой проблемы - это решение ETL (Extract-Transform-Load). Хорошим выбором является SSIS, который входит в пакет Microsoft BI.

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