动态路径创建

时间:2019-07-11 12:51:47

标签: pentaho pentaho-spoon pentaho-data-integration

在本地上进行转换时,我将转换路径设置为本地PC中显示的目标文件夹,在本地上完成测试后,我将转换移至服务器存储库以在服务器环境中安排它,但是每次需要更改设置为服务器文件夹的路径。我相信可以通过创建动态路径或创建任何变量来完成,但是我无法解决它。 Pentaho是否提供此选项?如果是,您能帮我设置动态路径吗?

2 个答案:

答案 0 :(得分:0)

This answer中有一个所描述解决方案的链接,在答案中,我有一个示例KTR应该可以提供帮助。

您还可以在不同的环境中使用pentaho属性文件,这意味着您可以在两个环境中使用相同的变量,例如$ {path},但是在每个环境中它具有不同的值。

kettle.properties可以在您的用户文件夹中找到。C:\ Users \ YourUser.kettle

答案 1 :(得分:0)

在Kettleis中使用变量处理环境的标准方法。

在主目录中,有一个名为.kettle的(隐藏)文件夹,其中包含应为本地的所有内容:您的首选项,共享连接,高速缓存,以及最重要的是,水壶。属性文件

您可以在其中定义变量,例如$ {myPath}。为此,请使用菜单Edit/Edit the Kettle.properties,然后添加一个名为myPath的变量,并为它提供所需的值,并带有可选的描述。

然后,当您在步骤窗口中看到一个蓝色的菱形,该蓝色菱形的字段右侧带有$时(这意味着您几乎需要任何字段),您可以按该字段中的Crtl+Enter并选择任意一个在tank.properties中定义的变量。或者,您可以在字段中键入或复制/粘贴${your-variable-name}

然后,在启动spoon时,它将不使用硬编码路径,而是使用水壶(kettle.properties)中变量的内容。

没有什么可以阻止您在开发PC和产品服务器上使用不一样的tank.properties。

我们在那儿时,有三个有用的技巧。

  • 有一个预定义的${Internal.Job.Filename.Directory}变量,包含当前转换的路径,该变量用于相对路径。例如,${Internal.Job.Filename.Directory}/../myDir/myFile.ext

  • 如果您在屏幕上的任意位置right-click,然后转到Properties/Parameters,则也可以在此处定义变量。

  • 您还可以在Run Option窗口中重新定义这些变量,每次运行转换时都会烦恼您(是的,有原因)。

  • 最后,您可以将这些变量从一个作业发送到另一个作业,然后再转换。

enter image description here