Импорт .CSV, а затем экспорт в Access 2007 DB через SSIS приводит к огромному раздутию - PullRequest
1 голос
/ 10 ноября 2010

У меня есть извлечение .csv размером 90 МБ, которое мне нужно вставить в БД Access 2007.

КАК ТЕСТ - Если я выполняю прямой импорт файла с настройками по умолчанию в новую таблицу, я получаю базу данных размером 134 МБ.

ЧТО МНЕ НУЖНО СДЕЛАТЬ - Извлечение .csv содержит пару столбцов, которые мне нужно обработать, прежде чем помещать их в БД Access. Для этого я использую SSIS (из установки SQL Server 2008) и пару производных столбцов, которые содержат обработанные столбцы, которые затем помещаются в существующую таблицу Access (в которой нет строк в начале процесса) через Подключение ADO.NET с использованием следующей строки подключения: «Источник данных = C: \ Import \ InTheGarden.accdb; Provider = Microsoft.ACE.OLEDB.12.0;». (Строка подключения из подключения в диспетчере подключений в службах SSIS)

Когда я обрабатываю данные с использованием служб SSIS, в результате получается файл объемом 1,16 ГБ, размер которого при сжатии достигает примерно 180 МБ !!!

Две вещи: -

  • Во-первых, я не понимаю, что является причиной вздутия и как я могу обойти это. Я читал, что не знаю, сколько сегодня статей о «Раздутии Access 2007», и не могу найти ничего, что объясняет, что именно происходит: (
  • Во-вторых, хотя я могу импортировать файл .csv, описанный выше, у меня есть другой текстовый файл размером 154 МБ, который необходимо импортировать, и, учитывая, что файл меньшего размера привел к увеличению размера БД до 1,16 ГБ при импорте, я не надеюсь на успех если размер этого файла не превышает 2 ГБ!

Я бы обычно использовал SQL Server в качестве серверной части, но есть причины, не зависящие от меня, почему это не может произойти: (

Рад предоставить дополнительную информацию, я не загружаюсь Access, поэтому может быть ключевая информация, которую я пропустил !! (

Thx!

Ответы [ 2 ]

1 голос
/ 11 ноября 2010

Почему бы не использовать промежуточную таблицу в Access для импорта, обработки данных и вставки в реальную таблицу?Для этого вы бы использовали отдельную временную базу данных, чтобы избежать двойного импорта.Я сделал десятки операций импорта в Access, и всегда так делал, когда мне нужно было обработать данные перед окончательным добавлением.

0 голосов
/ 10 ноября 2010

Попробуйте разбить CSV на несколько файлов меньшего размера и после импорта каждого из них выполните команду Access 'Compact Database.

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