Я изучаю, как на этой неделе разрабатывать пакеты SSIS для систем ETL. Одна из моих первых целей - открыть различные способы импорта плоских файлов в базу данных. Поскольку это довольно прямолинейно по большей части, я играл с разными плоскими файлами, которые содержат множество данных.SSIS Package, который удаляет или игнорирует несколько строк в плоском файле
Одна проблема, с которой я столкнулся сегодня, - это документ Excel, содержащий данные в первой строке, информацию заголовка во второй строке и информацию о ноге в последних парах строк. То, что я хочу импортировать в базу данных, - это заголовок и все строки, ведущие к нижнему колонтитулу. Мне не нужна первая строка, и я не хочу нижний колонтитул.
Мое настоящее решение заключается в создании задачи потока данных в предварительных настройках и OpenRowSet с помощью «Sheet1 $ A2: I20000». Это позволяет мне открыть лист, который я хочу, выбрать вторую строку (где находится мой заголовок), а затем выбрать все остальные строки, находящиеся между A2 и I20000.
Это решение также позволяет мне читать информацию заголовка (который я хочу) и все строки, которые следуют за импорт. К сожалению, это также выбирает строки нижнего колонтитула и не оптимизируется для хорошей производительности, так как пакет должен сканировать массивный ряд строк, независимо от того, есть ли данные в этих строках или нет.
Снимок экрана ниже содержит лист Excel, который я пытаюсь импортировать на основе базы данных MS SQL. Строки, которые я хочу удалить или игнорировать, - это круги с красным полем. Все, что не кругом, - это то, что я хочу импортировать.
Любые мысли о том, как я могу игнорировать первую строку, прочитайте вторую строку для моей информации заголовка, прочитать строки, которые следуют заголовок для моего набора данных, а затем игнорировать последние пару строк, которые я Я считаю, что нижний колонтитул?
Добавление Информация об этом файле
- Первая строка никогда не изменится.
- Строка заголовка никогда не изменится.
- Набор данных после заголовка изменит значения, а не типы данных.
- Первый столбец нижнего колонтитула никогда не изменится.
- Второй столбец нижнего колонтитула изменит значения, а не типы данных.
- Остальные столбцы нижнего колонтитула никогда не будут меняться.
Будут ли строки, которые вы хотите отправить в пункт назначения OLE DB, всегда начинаются с строки 2?Почему вы хотите захватить строку заголовка? Сохраняете ли вы данные строки заголовка в пункте назначения OLE DB? Строки, которые вы хотите игнорировать, всегда будут иметь SUM Total в первом столбце? – jymbo
Я хочу захватить строку заголовка, чтобы она никогда не менялась. Я могу просто поместить этот заголовок в новую таблицу сам по себе для проверки. Наверное, для этого примера мне это действительно не нужно. И да к последнему вопросу. SUM TOTALS всегда будут в конце и в первом столбце файла. – Fastidious