#ssrs-2008 #etl #informatica #informatica-powercenter
#ssrs-2008 #etl #informatica #informatica-powercenter
Вопрос:
Я создал сопоставление, которое извлекает данные из плоского файла, который показывает мне данные об использовании для конкретных отчетов SSRS. Файл перезаписывается каждый день данными об использовании за предыдущие дни. Моя проблема в том, что иногда отчет не используется в течение этого дня, и мой ETL отправляет мне электронное письмо с ошибкой, потому что в источнике не было никаких данных. Выполнение задания при отсутствии данных в источнике или для предотвращения сбоя.
—Спасибо
Комментарии:
1. «… есть ли способ предотвратить выполнение задания, если в источнике нет данных …»
2. Привет, Джонсон, это не сбой сеанса, потому что в источнике нет данных. Опубликуйте сообщение об ошибке, будет полезно предоставить вам решение
Ответ №1:
Простой способ решить эту проблему — создать сквозное сопоставление, которое содержит только источник плоского файла, квалификатор источника и целевой объект плоского файла.
Вы должны создать сеанс, который запускает это сопоставление в начале вашего рабочего процесса, и заставить его прочитать ваш источник плоского файла. Целью может быть просто фиктивный плоский файл, который вы продолжаете перезаписывать. Тогда у вас будет это условие в ссылке на ваш следующий сеанс, который фактически обработает файл:
$ s_Passthrough.SrcSuccessRows > 0
Ответ №2:
Да, есть несколько способов, вы можете это сделать.
Вы можете предоставить пустой файл для задания ETL, когда нет исходных данных. Для этого используйте команду перед сеансом, как touch <filename>
в рабочем процессе Informatica. При этом будет создан пустой файл с <filename>
if, если он отсутствует. Рабочий процесс будет успешно запущен с 0 строками.
Если у вас есть скрипт, который запускает задание Informatica, вы также можете установить там проверку следующим образом:
if [ -e <filename> ]
then
pmcmd ...
fi
Это приведет к пропуску выполнения задания.
Комментарии:
1. Привет, Самик, очень хороший ответ. Действительно ценится. Но дело в том, что у него есть исходный файл без данных. Это должно работать без проблем. Надеюсь, у них есть условие для задачи электронной почты. А также touch command предоставляет вам фиктивный файл без имени столбца, который завершится ошибкой при выполнении сеанса
2. Эй, Джим, я думал, что нет исходного файла, из-за чего рабочий процесс не работает. Вы уверены, что произойдет сбой, если в файле нет имен столбцов? Я должен это проверить.
3. Да, конечно, это не удастся. Поскольку во время выполнения сеанса запрос переопределения SQL не будет предоставлять какое-либо имя столбца из источника. Чтобы поддерживать связь с informatica, просто укажите путь — etlinfromatica.wordpress.com
4. У вас не может быть переопределений SQL в файле!
5. Я не упоминаю файл. Переопределенный запрос автоматически сгенерирует имена столбцов во время выполнения сеанса, если столбцы не указаны — сеанс завершится с ошибкой
Ответ №3:
Проведите еще один сеанс перед фактической загрузкой данных. Прочитайте файл, используйте ЛОЖНЫЙ фильтр и какую-нибудь фиктивную цель. Свяжите этот сеанс с сеансом, который у вас уже есть, и задайте следующее условие ссылки:
$yourDummySessionName.SrcSuccessRows > 0