2015-06-21 6 views
3

Мы пытаемся разработать оптимальный метод импорта очень больших файлов Excel в базу данных SQL. Использование SSIS несколько хлопотно, потому что оно сканирует верхние записи X, чтобы определить формат файла, но строки в дальнейшем могут быть разными, поэтому требуется много проб и ошибок, и нам нужно принести необычные столбцы вверх, чтобы SSIS может «учиться».Лучший способ импортировать большой файл Excel в SQL Server

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

Есть ли более простой способ создать определения формата для новых файлов, которые мы собираемся вставить? Нам не нужно использовать SSIS, мы открыты для любого другого инструмента, с учетом как можно большей автоматизации. Там это вопрос проверки вменяемости данных мы будем импортировать, мы планировали делать основные запросы к постановочным данным, таким как «менее 1% записи может пропустить почтовый индекс» и т.д.

Большого спасибо

+1

Обязательно ли файл находиться в Excel? Если вы можете экспортировать в CSV, вы можете использовать BCP для импорта всей строки в одну запись в промежуточной таблице, затем запустить Stored Proc для проверки ошибок и часть «обучения», о которой вы упомянули выше. Тогда вы можете легко обдумать автоматизацию. –

+0

Существует параметр уровня сервера, который сообщает SSIS, сколько строк сканировать, чтобы определить формат файла. Я забыл название настройки, но я уверен, что ее можно легко найти в Google. –

+0

@TabAlleman правильно, вы можете использовать TypeGuessRows = 0 (https://jingyangli.wordpress.com/2009/02/13/imex1-revisit-and-typeguessrows-setting-change-to-0-watch-for-performance /), однако могут возникнуть проблемы с производительностью с большим файлом, так как он сканирует все это. Я хотел бы предложить получить файл в формате с разделителями. Большинство систем будут экспортироваться в более чем просто. –

ответ

0

Может быть вы можете импортировать данные в виде текста, после чего вы можете преобразовать их с помощью преобразования Derived Column. Вы можете читать данные из Excel в виде текста, используя параметр IMEX в строке соединения. Подробнее об этом параметре вы найдете here.

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