2017-09-29 76 views
0

我在Pentaho的一个转变,看起来像这样:在Pentaho中生成的随机值(uuid)作为列值?

enter image description here

这种转变填充表PRO_T_TICKETS PostgreSQL中。 而此表主键被命名为OID并且具有uuid数据类型。

这里是我的数据库剪断联接查询:

enter image description here

我想作为Pentaho的列值使用生成的随机值OID

我的问题是我应该在我的Pentaho工作流程中放置“生成随机值(OID)”的步骤,以及我应该在db连接中进行哪些编辑,以便连接选择这个生成的uuid作为其值?

+0

有没有在OID加入,只是一个选择! – AlainD

+0

是的。我指的是Pentaho步骤,而不是单独的OID。 –

+0

您的转换无法工作,因为排序行没有输入。更重要的是,它不能工作,因为连接(它们两个)只有一个输入流。一个连接需要两个输入来加入它们。请提供可以理解的例子。 – AlainD

回答

0

根据需要获取数据流,除非它没有OID。使流程穿过Generate random value并将其命名为OID。这应该是你正在寻找的流程。

另外,请对我们友善,清理你的例子,并删除所有不是强制性的理解问题(如排序,规范和种类)。

+0

现在我在我的SQL查询中传递OID作为参数。 OID被生成并且表PRO_T_TICKETS具有OID作为其主键。我无法使用此来生成唯一的OID。 OID是我的表的主键。 @AlainD –

+0

我不关注。由“SQL Join”或“Generate Random”生成的OID?如果右键单击'Daten SAP_Bcone'和'Show input fields',你会看到名为'OID'的列吗?如果你对'生成随机值(OID)'做同样的事情,你会看到一个名为'OID_1'的额外列吗? – AlainD

+0

嘿。解决了它。我在连接查询中将OID作为参数传递。相反,我应该在table_output步骤之前使用“生成随机值(OID)”步骤。之后,只需将OID字段映射到目标列名称即可。 感谢您的帮助! :) @AlainD –

0

既然你不使用任何数据来生成UUID然后ü可以做一些

create sequence uuid_sequence_sample; 
create table atest(oid uuid default uuid_generate_v5(uuid_ns_url(), cast(nextval('uuid_sequence_sample') as text)), id int, name text); 

insert into atest(id, name) values(12, 'hello'); 

select * from atest; 

oid         | id | name 
------------------------------------------------- 
b80c8fef-a677-5340-85fb-2c162d75df03 | 12 | hello