У меня есть 1 папка с 4 файлами, это sales_jan, sales_feb, debt_jan, debt_feb
. Я создал конкретное задание для каждой продажи и долга. Дело в том, что если я уже выполнял задание ранее только для sales_jan
, а затем наступает sales_feb
, я не хочу повторять чтение sales_jan
снова, я хочу прочитать только последний добавленный файл, который не был обработан. Для чтения файла я передаю шаблон конкретного файла (например, sales_*
), но если я использую его таким образом, то этап повторно обработает sales_jan
, хотя он уже был. Я хочу переместить уже прочитанный файл в другую папку. Как мне это сделать в ibm datastage
? Если нет возможности сделать это, что вы посоветуете решить мою проблему. Любые идеи были бы хорошы.
как переместить файл после чтения файла в данных ibm
Ответы (2)
Самое простое решение - использовать подпрограмму после выполнения задания (ExecSH в Linux / UNIX, ExecDOS в Windows), чтобы переместить файл в другое место. Поскольку вы используете подстановочные знаки для этапа «Последовательный файл», вам нужно будет немного умнее справиться с ситуацией, когда ваше задание обрабатывает только некоторые файлы. Я бы предпочел написать это, используя цикл в последовательности, обрабатывая один файл за раз, чтобы перемещение можно было обрабатывать для каждого файла.
вы можете установить флаг для каждого файла, который уже прочитан вашей работой. Например, добавьте поле maxdate для каждого файла. Если максимальная дата первого файла меньше, чем дата второго файла или нового файла. Затем прочтите последний файл. Это можно сделать с помощью последовательной простой команды Linux или преобразователя. Так же, как Рэй упоминал ранее