我需要对我的kettle作业和转换中的所有变量进行参数化(这些作业将在AWS上运行,所有参数都以环境变量的形式传递)。我的作业和相关转换中的连接、路径和其他各种参数都使用${SOURCE_DB_PASSWORD}、${OUTPUT_DIRECTORY}等格式。当我在Data Integration UI中将它们设置为环境变量时,它们都能正常工作,作业在UI工具中成功运行。但当我从bash脚本中运行它们时:
工作及其所需的转换并未捕获变量。错误信息如下:
#!/bin/sh
export SOURCE_DB_HOST=services.db.dev
export SOURCE_DB_PORT=3306
kitchen.sh -param:SOURCE_DB_PORT=$SOURCE_DB_PORT -param:SOURCE_DB_HOST=$SOURCE_DB_HOST -file MY_JOB.kjb
工作及其所需的转换并未捕获变量。错误信息如下:
Cannot load connection class because of underlying exception: 'java.lang.NumberFormatException: For input string: "${SOURCE_DB_PORT}"'
所以,在不使用jndi文件或kettle.properties的情况下,我需要一种方法来将环境变量映射到PDI作业和转换中的参数/变量。
[Mac OS X 10.13上的PDI版本8.1]