Как читать плоский файл без строки нижнего колонтитула с помощью Informtica - PullRequest
0 голосов
/ 21 ноября 2018

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

HEADER, FILE.TXT, 2018-20-11"COL1", "COL2", "COL3", "COL4"«Дэйв», «123-456-7890», «Шарлотта», «НК»ТРЕЙЛЕР, 1

Заранее спасибо !!

Ответы [ 3 ]

0 голосов
/ 23 ноября 2018

Вы можете использовать команду для чтения файла.Просто нужно изменить свойство Input Type Source Qualifier в сеансе с File на Command и поставить head -n-1 yourFileName в качестве Command.Это должно к подвоху.

0 голосов
/ 23 ноября 2018

Не уверен, что вы можете избежать чтения строки нижнего колонтитула, но вы можете устранить строки нижнего колонтитула.Если структура файла согласована, вы можете использовать только преобразование фильтра, чтобы отфильтровать «TRAILER, 1».Если нет, вы можете попробовать этот подход:

SD > SQ > AGG[+ v_cnt Count(COL1)]
             [+ o_dummy=1)       ] > JN (Join by v_dummy) > FIL (where o_seq < v_cnt) > TGT
        > EXP[+ v_seq=v_seq+1    ] >
             [+ o_seq = v_seq    ]
             [+ o_dummy = 1      ]

После того, как квалификатор источника "разделит" поток на преобразования Агрегатор и Выражение.В Aggregator добавьте два порта:

  1. v_cnt для подсчета всех строк в файле и порт
  2. o_dummy для хранения жестко заданного значения ("1") для соединения со вторым потоком.

И в преобразованиях Expression добавьте три новых порта:

  1. v_seq для назначения последовательного номера.
  2. o_dummy порт для хранения жестко закодированного значения ("1") и
  3. o_seq выходной порт, который возвращает v_seq.

В Joiner объедините эти два потока с помощью v_dummy = v_dummy и установите порты из агрегатора в качестве Master (для производительности).

Если в нижней части есть пустые строки, после строки нижнего колонтитула можно добавить еще один фильтр (лучше после SQ), чтобы отфильтровать пустые строки ... На самом деле, вы можете удалить столько строк нижнего колонтитула, сколько вам нужно, отфильтровав o_seq < v_cnt -N

0 голосов
/ 21 ноября 2018

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

https://network.informatica.com/thread/9404

...