SSIS: импорт файлов, некоторые с именами столбцов, некоторые без - PullRequest
0 голосов
/ 08 октября 2011

Или, возможно, из-за непоследовательной конфигурации устройств регистрации, мне нужно загрузить коллекцию CSV-файлов через SSIS, которая иногда будет иметь первую строку с именами столбцов, а иногда нет.В остальном формат файла идентичен.

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

Скорее, я хотел бы указать что-то вроде Destination.MaxNumberOfErrors, что позволило бы до одной строки ошибки на файл (так что если единственной проблемой в файле был заголовок,это не подведет).Однако ошибка источника плоских файлов является фатальной, поэтому я не вижу способа заставить ее продолжать работать.

Значение кода ошибки определяется компонентом, но ошибка является фатальнойи конвейер перестал выполняться.Перед этим могут быть сообщения об ошибках с дополнительной информацией о сбое.

Мне кажется, что лучше всего сейчас просто игнорировать первую строку данных и подождать, чтобы увидеть, можно ли сделать более унифицированную конфигурацию.достигнуты.Конечно, набор данных недействителен, пока эта стратегия действует.Я должен добавить, что данные очень большие, поэтому процедуры ETL должны быть максимально эффективными.На мой взгляд, это противопоказано любому разбору файлов или условному разбиению, если есть какая-либо альтернатива.

Вопрос в том, есть ли способ настроить Источник файла, чтобы продолжить работу с этой фатальной ошибкой?

Ответы [ 2 ]

0 голосов
/ 08 октября 2011

Да, есть!

На странице «Вывод ошибок» в редакторе измените ответ «Ошибка» для каждой строки на «Перенаправить строку». Затем вы можете перехватить проблемные строки (в вашем случае заголовки), взяв их за один столбец через вывод ошибок вашего источника.

0 голосов
/ 08 октября 2011

Если вы можете предположить, что значения имен заголовков никогда не появятся в ваших данных, тогда определите ваш менеджер соединений с плоскими файлами как не имеющий заголовков. Первый шаг в вашем потоке данных будет проверять значения столбца 1-N против значений строки заголовка. Пропускать данные, только если значения не совпадают.

Есть ли что-то более сложное в этой проблеме, чем это?

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