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 数据集成的主要内容,如果未能解决你的问题,请参考以下文章

Dataworks数据集成开发规范

实时数据集成

大数据项目4(数据清洗与集成)

Atlas集成外部组件—集成HiveHBaseKafka

什么是持续集成

数据集成产品分析