运行 使用不同文件的作业,无需重新加载文件

running job with different file without reloading the file

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

您有多个选项允许 DataStage 并行作业在每个作业上使用不同的文件名作为输入 运行:

  1. 当使用 Sequential File 阶段或 File Connector 阶段时,您可以输入在作业属性的“参数”选项卡上定义的作业参数的名称,而不是键入实际的文件名对话。例如,如果您定义了字符串参数 myFile,那么在输入阶段的文件名字段中,您将输入#myFile# 并在 job run-time 处将其替换为 myFile 参数的当前值。如果您从 Director/Designer 个客户端手动 运行 作业,您将看到作业 运行 对话框,您可以在其中指定作业参数的值。如果您通过 dsjob 命令启动作业,则可以选择在命令行上传递作业参数。您还可以选择使用可以在作业 运行.

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

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