在本地上进行转换时,我将转换路径设置为本地PC中显示的目标文件夹,在本地上完成测试后,我将转换移至服务器存储库以在服务器环境中安排它,但是每次需要更改设置为服务器文件夹的路径。我相信可以通过创建动态路径或创建任何变量来完成,但是我无法解决它。 Pentaho是否提供此选项?如果是,您能帮我设置动态路径吗?
答案 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
窗口中重新定义这些变量,每次运行转换时都会烦恼您(是的,有原因)。
最后,您可以将这些变量从一个作业发送到另一个作业,然后再转换。