动态路径创建

Posted

技术标签:

【中文标题】动态路径创建【英文标题】:Dynamic path creation 【发布时间】:2019-07-11 12:51:47 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

您还可以在不同的环境中使用 pentaho 属性文件,也就是说,您可以在两个环境中使用相同的变量,例如 $path,但在每个环境中它都有不同的值。

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

【讨论】:

【参考方案2】:

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

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

您可以在其中定义变量,例如 $myPath。为此,请使用菜单 Edit/Edit the Kettle.properties 并添加一个名为 myPath 的变量,并将其作为您首选路径的值,并提供可选描述。

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

那么,在启动spoon时,就不会使用硬编码的路径,而是使用kettle.properties中变量的内容。

没有什么能阻止您在开发 PC 和产品服务器上拥有不同的kettle.properties。

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

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

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

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

最后,您可以将这些变量从作业发送到作业和转换。

【讨论】:

以上是关于动态路径创建的主要内容,如果未能解决你的问题,请参考以下文章

Unity动态创建FBX模型配置文件的存放路径

使用 createProxyMiddleware 重写动态路径并创建反应应用程序

C 语言动态库封装与设计 ( 动态库调用环境搭建 | 创建应用 | 拷贝动态库相关文件到源码路径 | 导入头文件 | 配置动态库引用 | 调用动态库中的函数 )

如何在 Grapevine 中创建动态路径

c#winForm动态创建文件夹访问被拒绝

如何为Android,Mac和Windows平台创建Java JNI动态链接库