lookup_Pentaho 数据集成
Posted
技术标签:
【中文标题】lookup_Pentaho 数据集成【英文标题】:lookup_Pentaho data Integration 【发布时间】:2020-10-01 18:36:28 【问题描述】:我有两个文件(App.csv 和 Acess.csv)
App.csv 有一列名为 Application 应用 应用-A
应用-B
Access.csv 包含 3 列(应用程序、权利、用户 ID)
Application, entitlement, userid
App-A,ent-A,user1
App-A,ent-B,user1
App-B,ent-c,user2
App-B,ent-d,user1
App-C,ent-c,user2
App-C,ent-d,user1
如果与应用程序文件列匹配,我需要提取所有 App-A 和 App-B 详细信息,并且输出应如下所示
App-A,ent-A,user1
App-A,ent-B,user1
App-B,ent-c,user2
App-B,ent-d,user1
我尝试使用流查找,但它只为每个 App 提供一行,而不是所有行都属于 App-A 和 App-B
感谢任何帮助
【问题讨论】:
【参考方案1】:我已经为你准备了解决方案Here
我使用 user-define-java-class 来比较值。
-
RunTrans.ktr:我从这里获取 app.csv 输入并将数据放在一行中。
ForOnlyLoop.kjb:这只是为了将数据传递给下一个转换。
CopmareAndResult.ktr:我从这里获取 access.csv 输入并比较结果,如果值匹配则返回行,否则不返回任何内容。
请告诉我你是否可以。
另一种解决方案:- 您可以使用 Here 中的 ETL 元数据注入步骤获得相同的解决方案
-
MetaData.ktr:- 获取 App.csv 输入并传递值以比较 ktr。
Compare.ktr:获取 access.csv 输入并将值与“switch/case”步骤进行比较。我提供了来自 MataData.ktr 步骤的 switch-case 比较值。
【讨论】:
谢谢。您的解决方案对我有用...我还使用模糊逻辑进行了尝试,其中 app.csv 中的应用程序名称与 access.csv 中的所有应用程序列匹配,然后我使用过滤器行仅过滤匹配行。 我已经为查找创建了另一个解决方案。我在哪里使用过 ETL-Metadata_injection。以上是关于lookup_Pentaho 数据集成的主要内容,如果未能解决你的问题,请参考以下文章