выполнение задания с другим файлом без перезагрузки файла

#datastage #ibm-infosphere

#datastage #ibm-infosphere

Вопрос:

Я создал задание, которое можно повторно использовать для новых файлов. Все действия в задании, карты и все остальное останутся прежними, за исключением имени файла. Я уже пробовал это один раз, но, похоже, мне нужно повторно «загрузить» файл и переназначить все снова. Это неэффективно. Есть ли у меня какой-либо способ передать другой файл в задание без переназначения, перенастройки и перезагрузки чего-либо?

Комментарии:

1. Как вы думаете, почему вам нужно повторно загружать и повторно сопоставлять его?

2. я не уверен, @MichaelTiefenbacher, но я обнаружил, что мне не нужно перезагружать и переназначать его, поскольку то, что я передал, будет иметь ту же карту и все остальное

Ответ №1:

У вас есть несколько вариантов, позволяющих параллельному заданию DataStage использовать другое имя файла для ввода при каждом запуске задания:

  1. При использовании либо этапа последовательного файла, либо этапа файлового соединителя вместо ввода фактического имени файла вы можете ввести имя параметра задания, который был определен на вкладке Параметры диалогового окна свойств задания. Например, если вы определяете строковый параметр myFile, то в поле filename на этапе ввода вы должны ввести #myFile# и во время выполнения задания это будет заменено любым текущим значением параметра myFile. Если вы запустите задание вручную из клиентов Director / Designer, у вас появится диалоговое окно запуска задания, в котором вы можете указать значение для параметров задания. Если вы запускаете задание с помощью команды dsjob, есть варианты для передачи параметров задания в командной строке. У вас также есть возможность использовать файлы набора параметров, которые вы можете изменить перед запуском задания.

  2. Другим вариантом было бы использовать расположение файла и шаблон вместо определенного имени файла. Как этап последовательного файла, так и этап соединения файлов позволяют указать шаблон, например: /data/my_input_files/*.txt Затем при каждом запуске задания будут вводиться любые файлы в этом расположении, соответствующие указанному выше шаблону, поэтому он может обрабатывать несколько файлов. Однако, чтобы предотвратить повторную обработку файлов из предыдущих запусков задания, вы захотите очистить все файлы в этом расположении после завершения задания. Затем, когда у вас появятся новые файлы для обработки, просто поместите их в этот каталог и повторно запустите задание.

Комментарии:

1. что, если я использую неструктурированный файл? я все еще могу выполнить решение? и для пункта 2, поскольку в моей папке будет 16 файлов с форматом файла (.xlsx), и я создал 16 заданий для каждого из них, как мне указать, какой файл для какого задания? Большое спасибо, Брайан

Ответ №2:

В случае, если все файлы содержат схожую структуру данных, вам необходимо реализовать одно параллельное задание, и если у вас есть похожий шаблон имени файла для всех имен файлов, таких как 1234ab.xls , 1234vd.xls , 1234gd.xls , … вы могли бы передать имя файла как 1234??.xls В параметре имя файла последовательного задания (используйте это как имя файла в параллельном задании), который содержит указанное выше параллельное задание для выполнения.

Комментарии:

1. могу ли я использовать его для неструктурированных данных?

2. Я думаю, что это должно сработать, когда вы считываете имя файла из параметра, который определяется как ‘path/1234??.XLS ‘ в неструктурированных данных попробуйте!! КСТАТИ, это поможет вам

3. что, если первый шаблон исправлен, но остальные изменены, например, sales_february (это будет sales_????????) , sales_may (это будет sales_ ???) из того, что я получаю для вашего объяснения, количество ? должно соответствовать номеру установленного имени файла. как мне определить номер ? , если его количество тоже будет отличаться?

4. В этом случае можно использовать sales_*.XLS поскольку названия месяцев не имеют фиксированного размера