2015-10-29 17 views
0

У меня есть 3 таблицы в базе данных oledb, которые я ежедневно извлекаю данные из SSIS-пакетов на сервер mssql. В течение большей части времени эти данные хороши и не нуждаются в модификации, но примерно два раза в месяц я получаю нулевые значения в течение коротких периодов, которые я хочу заменить, с помощью последнего известного хорошего значения или какого-либо другого сгенерированного значения. Есть ли способ сделать это в SSIS без необходимости запуска нескольких запросов sql с командами CTE после задачи потока данных, как я делаю сейчас? CTE работают, когда есть небольшие пробелы, такие как час или два, но если его больше, чем при использовании CTE, вызывают отклонение от тренда.SSIS: Есть ли более простой способ?

ответ

1

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

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

+0

в случае, если у вас есть сомнения. обсудите с полным сценарием, например no of column, обновите столбец с последним хорошим значением для этого столбца или обновите последнюю строку хороших значений и т. д. –

+0

Хорошо, мне было интересно, может ли это сделать какой-либо материал в панели инструментов SSIS, но это похоже, что SQL-запросы - это путь. – Mnoi

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