0

我创建了一个可重复用于新文件的作业。除了文件名之外,作业中的整个活动、地图和其他所有内容都将保持不变。我已经尝试过一次,但似乎我需要重新“加载”文件并重新映射所有内容。这是低效的。有什么方法可以让我在作业中传递不同的文件而无需重新映射、重新配置和重新加载任何东西?

4

2 回答 2

1

您有多个选项可让 DataStage 并行作业在每次作业运行时使用不同的文件名进行输入:

  1. 当使用顺序文件阶段或文件连接器阶段时,您可以输入已在作业属性对话框的参数选项卡上定义的作业参数的名称,而不是输入实际的文件名。例如,如果您定义字符串参数 myFile,那么在输入阶段的文件名字段中,您将输入 #myFile#,并且在作业运行时,它将被 myFile 参数的当前值替换。如果您从 Director/Designer 客户端手动运行作业,您将看到作业运行对话框,您可以在其中指定作业参数的值。如果您通过 dsjob 命令启动作业,则有一些选项可以在命令行上传递作业参数。您还可以选择使用可以在作业运行之前修改的参数集文件。

  2. 另一种选择是使用文件位置和模式而不是特定文件名。Sequential File 阶段和 File Connector 阶段都允许您指定模式,例如:/data/my_input_files/*.txt 然后,每次运行作业时,它将在该位置输入与上述模式匹配的任何文件,因此它可以处理多个文件。但是,为了防止重新处理先前作业运行的文件,您需要在作业完成后清理该位置的所有文件。然后,当您有新文件要处理时,只需将它们放在该目录中并重新运行该作业。

于 2020-09-02T15:08:13.310 回答
1

如果所有文件都包含相似的数据结构,则需要实现一个并行作业,并且如果所有文件名的文件名模式相似,例如 1234ab.xls、1234vd.xls、1234gd.xls、...您可以将文件名作为 1234??.xls 在包含上述要执行的并行作业的顺序作业文件名参数(在并行作业中将此用作文件名)中传递。

于 2020-09-03T05:56:43.847 回答