Сбой сеанса Informatica

#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