如何使用不同的元数据连接2个数据流?

时间:2014-11-04 14:58:25

标签: stream bigdata pentaho

我有两个不同元数据或数据结构的流,一个组定义表,按用户名,语言,性别指示用户组,用户年龄范围由2个字段描述,“age_start”,“age_end “(所有这些组指标可以在某天后更改,甚至添加新的colnum以指示不同的用户组,因此我需要能够动态地实现工作流程),

enter image description here

第二个表是用户信息表,如下所示

enter image description here

如何使用pentaho查找特定的user_id属于哪个组(按性别,语言,年龄范围)

javascript可以将两个异构数据流作为输入来计算结果,或者我们还有其他更聪明,更直接的方式来做类似的工作

谢谢大家

3 个答案:

答案 0 :(得分:1)

您可以使用Join Rows(笛卡尔积)来满足您的要求。设置"年龄< = age_end和年龄> = age_start"作为条件。

答案 1 :(得分:0)

相反,您可以使用javascript步骤将年龄映射到年龄组,例如:

如果(年龄> = 0且年龄<= 17 ......等),则age_group = AGE_GROUP_ID

您可以指定id执行年龄组(无法查看是否已存在ID),然后使用流查找步骤来获取数据。 Javascript步骤不接受多个输入流。在你的情况下,最好使用2个单独的步骤来实现你想要做的事情。

当然,这只是一种方式,请记住,根据您处理的数据量,javascript步骤可能会非常慢。但同样,我不知道这一点。

答案 2 :(得分:0)

为什么要使用javascript?由于数据已经在表中,为什么不使用数据库连接步骤?

另一种选择是使用表输入读取两个表并加入流。然后你可以使用流查找。这将缓存所有数据,从而导致非常快速的查找。