ssis sql server 2008 для доступа к базе данных .mdb - PullRequest
0 голосов
/ 17 ноября 2009

Я хочу знать, как импортировать файл .mdb (MS Office 07) в Sql server 2008 через SSIS. Мне нужно запустить этот пакет ETL таким образом, чтобы он проверял наличие дубликатов и, если они есть, не вставлял их заново, а только вставлял новые записи. Если у кого-то есть ссылка на учебник или вы можете объяснить здесь, пошаговая инструкция будет очень полезна

Ответы [ 2 ]

2 голосов
/ 17 ноября 2009

Расширяя ответ HLGEM ...

  1. В SSIS создайте новый объект потока базы данных и войдите в этот раздел (вторая вкладка сверху).

  2. Создайте объект-источник OLE DB (может быть конкретным для Access, но базовый источник OLE DB должен работать) и выберите Access в качестве источника и найдите файл .mdb. Не вдаваясь в подробности, он должен найти столбцы, и вы можете немного отформатировать его, чтобы пропустить строки заголовков и т. Д.

  3. Затем создайте компонент Назначение OLE DB, перетащив его на экран и подключив к нему зеленую стрелку источника. Откройте этот целевой компонент и выберите создание новой базы данных. Он должен автоматически создавать имена столбцов и назначать их типы на основе вашей базы данных .mdb. В этом разделе вы можете указать, какие столбцы вы хотите использовать в качестве ключей, которые будут обозначать уникальные строки, как вы хотели. Если у вас нет полей для ввода, вам придется изучить другие варианты после (см. Сообщение HLGEM). Если у вас есть поле для ввода, сделайте это.

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

Надеюсь, это краткое резюме поможет!

0 голосов
/ 17 ноября 2009

Это немного обширно для обсуждения на таком форуме, как это, но ...

Обычно я делаю это, импортируя данные в рабочую таблицу (а не в ту, в которой вы хотите получить данные). Он также должен иметь собственный столбец идентификаторов (полезно для разделения дубликатов в данных) и столбец для идентификатора записи таблицы базы данных. Надеемся, что данные имеют поле типа id для каждой записи. Если это так, то у вас должна быть таблица сопоставления, которая связывает идентификаторы базы данных из вашей базы данных с идентификаторами записей из базы данных Access. Тогда становится просто искать идентификаторы, которых нет в таблице сопоставления, и вставлять записи, связанные с ними, в производственную таблицу, в которую вы помещаете информацию. Обычно, когда я делаю это, я добавляю свое собственное поле идентификатора в рабочую таблицу, а затем вставляю эти записи в таблицу сопоставления в качестве последнего шага.

Если данные, которые вы получаете, не имеют поля идентификатора, это намного сложнее и может быть невозможно в зависимости от природы естественного ключа или даже если он у вас есть (базы данных Access часто печально известны тем, что не следуют принципам проектирования баз данных). Если ближе всего к уникальному идентификатору у вас есть комбинация имя / адрес, как вы узнаете, что Джон Смит по адресу 10 State Street в Чикаго, штат Иллинойс, является тем же лицом, что и Джон Смит по адресу 25 Main Street Chicalgo, IL. Он мог бы переехать, или это мог быть другой Джон Смит.

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