kettle java脚本怎么获取系统信息变量

kettle java脚本怎么获取系统信息变量,第1张

resultgetrows不是获取trans流程里面‘流动’的数据的。trans里面有个‘复制记录到结果’插件,输出到里面的数据,通过resultgetrows就能获取。java中获取结果集ResutSet的总条数,可以直接使用其提供的getRow方法来取得,实例如下:

1 Join Rows (cartesian product)

a>从多个数据源获取数据

b>指定一个主数据源,指定对主数据源的筛选条件

c>从主数据源取一条数据。如果不符合筛选条件,则丢弃;如果符合筛选条件,把其它数据源的数据循环添加到这条数据后面。

d>从主数据源取下一条数据,重复c步骤,直到主数据源数据取完。

类似SQL(Kettle执行结果与SQL是一致的)如下:

--无筛选

SELECT

FROM

TEST_JOIN_1 A

JOIN TEST_JOIN_2 B

JOIN TEST_JOIN_3 C

;

--有筛选

SELECT

FROM

TEST_JOIN_1 A

JOIN TEST_JOIN_2 B

JOIN TEST_JOIN_3 C

WHERE

AID = ‘123‘

AND ANAME = ‘Lio5n‘ 

;

2 Merge Join

a>从两个数据源获取数据

b>逐行对两个数据源数据进行关联(包括:内、左、右、外关联),以关键字想等为条件。

类似SQL(Kettle执行结果与SQL是一致的)如下:

SELECT

FROM

TEST_JOIN_1 A

JOIN TEST_JOIN_2 B ON AID = BID

;

3 Merge Rows (diff)

a>从两个数据源获取数据

b>以一个数据源为参考(Reference)数据源,以另外外一个为合并(Compare)数据源

c>以关键字段的顺序,逐行从 Reference 和 Compare 取数据,并合并到一起,并添加标记变化(identical, delete, new)字段

d>注意:identical情况下,Compare 的非关键字段出现在结果集里

类似SQL如下(只是类似,一般情况下不是下面的结果,因为 Kettle 是按排序后的关键字逐行处理的):

SELECT

AID ID

,ANAME NAME

,‘deleted‘ FALGFIELD

FROM

TEST_JOIN_1 A

LEFT JOIN TEST_JOIN_2 B ON AID = BID

WHERE

BID IS NULL

UNION

SELECT

BID ID

,BNAME NAME

,‘identical‘ FALGFIELD

FROM

TEST_JOIN_1 A

JOIN TEST_JOIN_2 B ON AID = BID

UNION

SELECT

BID ID

,BNAME NAME

,‘new‘ FALGFIELD

FROM

TEST_JOIN_1 A

RIGHT JOIN TEST_JOIN_2 B ON AID = BID

WHERE

AID IS NULL

;

4 Multiway Merge Join

a>从多个数据源获取数据

b>并关联(包括:内、外关联)字段相等的记录。

类似SQL(Kettle执行结果与SQL是一致的)如下:

SELECT

FROM

TEST_JOIN_1 A

JOIN TEST_JOIN_2 B ON AID = BID

JOIN TEST_JOIN_3 C ON AID = CID

;

5 Sorted Merge

a>从多个数据源获取数据

b>根据关键字顺序分别从两个流里抽取数据

c>最终把两个流里的数据以关键字为顺序合并到一起

类似SQL(Kettle执行结果与SQL是一致的)如下:

SELECT ID, NAME FROM TEST_JOIN_1

UNION ALL

SELECT ID, NAME FROM TEST_JOIN_2

UNION ALL

SELECT ID, NAME FROM TEST_JOIN_3

ORDER BY ID

;

6 Append streams

a>从两个数据源获取数据

b>取出第一个流里的所有数据

c>把第二个流里的数据追加到第一个流后面

类似SQL(Kettle执行结果与SQL是一致的)如下:

SELECT ID, NAME FROM TEST_JOIN_1

UNION ALL

SELECT ID, NAME FROM TEST_JOIN_2

;

7 Prioritize streams

a>从多个数据源获取数据

b>根据指定的顺序依次追加到一个流里

类似SQL(Kettle执行结果与SQL是一致的)如下:

SELECT ID, NAME FROM TEST_JOIN_1

UNION ALL

SELECT ID, NAME FROM TEST_JOIN_2

UNION ALL

SELECT ID, NAME FROM TEST_JOIN_3

在PB开发过程中,由于数据库中使用了 ntext字段,出现以下提示错误,郁闷了很长时间找不到解决方案,后查阅大量资料,终于明白:PB报错: 不能用 DB-Library(如 ISQL)或 ODBC 37 或更早版本将 ntext 数据或仅使用 Unicode 排序规则的 Unicode 数据发送到客户端。————————————————由于sql server中,ntext和nvarchar字段是用unicode编码存储内容的,因此php通过mssql扩展读取带ntext和nvarchar类型字段的时候会抱错。 如果 title 字段类型为 nvarchar,content 字段类型为 ntext ,那么下面的sql语句会报错:select title,content from article 正确的写法是:select convert(varchar(255),title) as title, convert(text,content) as content from article 或者不使用ntext字段这个很受用,解决我的难题!

以上就是关于kettle java脚本怎么获取系统信息变量全部的内容,包括:kettle java脚本怎么获取系统信息变量、以连接为例 说明Kettle和SQL处理数据的区别、使用kettle获取数据库的字段时会报错,错误信息如下,求高手解答等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9729201.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存