• Kettle位置参数(Argument)、命名参数(Parameter)、变量(Variable)


    Kettle支持3种参数:位置参数、命名参数、变量。

      位置参数(argument) 命名参数(parameter) 变量(variable)
    说明 根据参数的位置来设置和读取参数值,用于在KJB外部传入,并在KJB内部使用 根据参数的名字来设置和读取参数值,用于在KJB外部传入,并在KJB内部使用 由用户自定义,在KJB内部随时随地的定义、赋值和使用
    关键点

    1、参数值只能由外部传入(arg1 arg2 arg3)

    2、通过位置来取值;

    3、只能在转换中(transform)获取到参数值;

    4、最多支持10个参数

    5、功能:太弱(不建议使用)

    1、参数值只能由外部传入(-param:Key=Value),Key必须固定,值可以在KJB内部重新赋值;
    2、可以在作业属性中指定默认值,如果外部不传入,就取默认值;
    3、可在作业、转换中任意使用;
    4、不能动态新增;
    5、通过${Key}使用;
    6、强大程度:一般
    1、变量必须在KJB内部定义,在内部赋值,在内部使用(Key=Value);
    2、虽然变量只能在内部定义、赋值和使用,但是因为Key和Value都可以是变量,所以可以从外部(文件、数据库等)读取变量名、变量值,实现动态的变量声明、赋值,功能非常强大;
    3、可在作业、转换任意使用;
    4、可以动态声明、赋值、使用;
    5、通过${Key}使用;
    6、最灵活强大,推荐使用
    如何定义?

    一边定义,一边赋值。

    见下面的“如何赋值”
    双击作业(或转换)的空白处,在弹出的“parameters”标签页,可以设置参数的名字

    1、在作业中,通过General->Set Variables控件定义;

    2、在转换中,通过Job->Set Variables控件定义;

    3、在作业中,通过“JS脚本”控件设置,如parent_job.setVariable("VAR1", "abc123");

    如何赋值? 1、在设计界面(spoon.bat)点击执行按钮时,可以在弹出的“Run Options”设置,每次运行都要重新设置;
    2、在命令行界面(kitchen.bat)执行.kjb文件时,直接指定。如:sh kitchen.sh -file=/kettle/test.kjb 20150101 abc 123,这里按顺序指定了3个参数,以空格隔开;
    3、父作业里面执行一个子作业时,可以在“Job”控件的Arguments标签里指定,可以使用变量
    1、在设计界面(spoon.bat)点击执行按钮时,可以在弹出的“Run Options”设置,每次运行都要重新设置;
    2、在命令行kitchen.bat执行.kjb文件时,直接指定。如:sh kitchen.sh -file=/kettle/test.kjb -param:P1=20150101 -param:P2=abc -param:P3=123,这里指定了三个命名参数P1、P2、P3的参数值,顺序不限
    3、父作业里面执行一个子作业时,可以在“Job”控件的Parameters标签里指定,可以使用变量,可以使用数据流批量赋值并循环
    1、在作业中,通过General->Set Variables控件赋值;
    2、在转换中,通过Job->Set Variables控件赋值,前面必须带有一个Input控件(强大的关键点在这里,Input控件有多少,我们就可以有多少种方法去动态设置变量),且Input控件生成的记录数必须是1条(也可以是0,此时变量未能赋值);
    3、在作业中,通过“JS脚本”控件设置,如parent_job.setVariable("VAR1", "abc123");
    4、父作业里面执行一个子作业时,子作业可以自由使用父作业定义的变量,包括重新赋值,不用刻意传递
    如何读取? 新建一个转换,选择“Input”下的“get System Info”控件,type选择“command line argument1、2、3...”,即可读取对应位置的参数值。 1、在所有控件中,末尾带有菱形$号的输入框都可以使用,通过${KEY_NAME}使用。可以嵌套使用,比如${P1}的内容是ABC${P2}123,那么${P2}的值也会被替代成真实值
    2、通过作业里面的JavaScript脚本控件读取,如:parent_job.getVariable("VAR1");
    1、在所有控件中,末尾带有菱形$号的输入框都可以使用,通过${KEY_NAME}使用。可以嵌套使用,比如${P1}的内容是ABC${P2}123,那么${P2}的值也会被替代成真实值;
    2、通过作业里面的JavaScript脚本控件读取,如:parent_job.getVariable("VAR1");
  • 相关阅读:
    MySQL 存储引擎 (一)
    mssql sqlserver if exists 用法大汇总
    mssql sqlserver 使用sql脚本实现相邻两条数据相减的方法分享
    mssql sqlserver 使用sql脚本获取字符串存在多少个网址(url地址)的方法分享
    mssql sqlserver sql脚本自动遍历重复生成指定表记录
    mssql sqlserver 使用sql脚本剔除数据中的tab、空格、回车等特殊字符的方法分享
    mssql sqlserver 使用SSMS运行sql脚本的六种方法分享
    mssql sqlserver isnull coalesce函数用法区别说明
    C# 当前 .NET SDK 不支持将 .NET Core 2.1 设置为目标。请将 .NET Core 2.0 或更低版本设置为目标,或使用支持 .NET Core 2.1 的 .NET SDK 版本。
    mssql sqlserver 三种数据表数据去重方法分享
  • 原文地址:https://www.cnblogs.com/yoyowin/p/13049502.html
Copyright © 2020-2023  润新知