微信24小时网站建设/怎么创建网站的快捷方式
表输入步骤用于将数据源的数据加载到Kettle转换中的行集,可以说是数据从持久化到内存的一种加载变换,故名为输入。加载内部过程,就是通过JDBC连接到数据源执行SQL语句,将返回结果解析为行集,传递给下一个步骤。注意,上文中数据源并不一定是关系数据库,可以是任何支持JDBC驱动的存储方式,例如HadoopHive、Impala、LucidDB、SAP等。SQL语句可以固定不带参数,也可以通过变量来进行动态替换;可以只执行一次SQL,也可以根据输入行数多次执行SQL。步骤配置信息如图1所示。
图1:表输入插件整体信息
下文详细说明各配置项的含义:
1、转换步骤名称:步骤的名称,在单一的转换中,名称必须唯一。2、数据库连接:读取数据的JDBC连接名称,右侧第一个“编辑”可以对连接信息进行编辑;第二个“新建”按钮可以新建JDBC连接;第三个“向导”按钮可以根据指引分步去建立连接。3、SQL:SQL 语句用来从数据库连接中读取数据,可以手动在SQL框里面写出需要运行的SQL语句;也可以在SQL框右上角点击“获取SQL查询语句”按钮,通过选择模式与表来获取表查询语句。4、允许简易转换:如勾选,则针对行集中的String类型,将按照二进制字节流的形式(如果读者有Java语言开发背景,可以理解为byte[]),从数据源读取数据,性能比直接读取字符串略高。所以,这里翻译为“允许以字节流的形式读取字符串”更为准确。从实际测试情况看,该参数针对非常长的字符串能够提速3%左右;对于一般长度的字符串,观测不到差别。5、替换SQL语句里的变量:将SQL语句中的参数进行位置与值的替换,值来自配置的输入行集(第6个控件)。因此若此控件启用,必须与第6、第7控件结合使用。例如第3个控件中的SQL语句改为select id,info,c_time from test1.table1 where id>? or info like ?,那么执行SQL语句前,Kettle自动将输入行集中的第一个字段值替换为第一个问号、第二个字段值替换为第二个问号。所以务必确保位置对应,且类型匹配。6、从步骤插入数据:从输入行集中选择一个,作为第5个控件的数据来源。7、执行每一行?:勾选之后,Kettle将对输入行集中的每一行执行一次第3个控件指定SQL,并将所有结果合并传递给后续步骤。8、记录数量限制:设置从数据库中读取的最大行数。如果设置值≤0,那么将查询所有记录,不限制返回行数;如果设置其他值,则返回行数不超过设置值。备注:在信息框最下方有一个“预览”按钮,点击之后可以显示出根据当前SQL查询出来的结果,可以检查是否符合预期。内部供稿 CCSAII037