Справка Импорт файла CSV с переменными столбцами на строку в таблицу SQL с помощью инструмента импорта или служб SSIS
Я застрял с файлом CSV с более чем 100 000 строк, который содержит изображения продуктов от поставщика. Вот детали проблемы, я был бы очень признателен за некоторые советы, которые помогут решить эту проблему. Благодарю.
Файл имеет 1 строку для каждого продукта и следующие 4 столбца. Пример: идентификатор,URL, высота, ширина: 1,http://i.img.com,100,200
Проблема начинается, когда продукт имеет несколько изображений. Вместо того, чтобы иметь 1 строку на изображение, файл имеет больше столбцов в той же строке.
Пример:
1,http://i.img.com,100,200,//i.img.com,20,100,//i.img.com,30,50
Обратите внимание, что только первое изображение имеет "http://", остальные изображения начинаются с "//"
Невозможно сказать, сколько изображений на продукт, следовательно, нет способа узнать, сколько всего столбцов в строке или макс. Столбцов.
Как я могу импортировать это с помощью SSIS или SQL импорта мастера.
Также мне нужно делать это на регулярной основе.
Спасибо за помощь.
1 ответ
Я не думаю, что вы можете использовать любую стандартную задачу или мастер SSIS для этого. Вам нужно написать какой-то специальный код, который будет анализировать каждую строку. Вы можете сделать это в службах SSIS с использованием кода VB или импортировать файл в промежуточную таблицу, которая представляет собой один столбец для хранения каждой строки и выполнения анализа в SQL. SSIS, вероятно, будет быстрее для такого рода операций.
Другой возможностью является предварительная обработка файла с помощью регулярных выражений или команды поиска и замены. Попытайтесь получить двойные кавычки вокруг списка изображений, тогда вы сможете импортировать весь файл в порядке, с частью в кавычках, помещенной в один столбец. Поймать начало строки должно быть достаточно легко, учитывая "http:\", по которому вы можете искать. Определить, куда идет заключительная цитата, может быть больше проблемой.
Третьим потенциальным решением было бы получить источник для исправления данных. Даже если вы не можете получить изображения в отдельных строках (или другой файл с отдельными строками, что было бы идеально), возможно, вы можете получить двойные кавычки, добавленные из источника как часть экспорта. Вероятно, это будет менее подвержено ошибкам, чем использование метода поиска и замены.
Удачи!