动态路径创建
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
窗口中重新定义这些变量,每次运行转换时都会让您烦恼(是的,这是有原因的)。
最后,您可以将这些变量从作业发送到作业和转换。
【讨论】:
以上是关于动态路径创建的主要内容,如果未能解决你的问题,请参考以下文章
使用 createProxyMiddleware 重写动态路径并创建反应应用程序
C 语言动态库封装与设计 ( 动态库调用环境搭建 | 创建应用 | 拷贝动态库相关文件到源码路径 | 导入头文件 | 配置动态库引用 | 调用动态库中的函数 )