首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PDI /Kettle -将数据从上一跳传递到数据库查询

PDI /Kettle -将数据从上一跳传递到数据库查询
EN

Stack Overflow用户
提问于 2018-11-20 02:17:10
回答 2查看 804关注 0票数 0

我是PDI和Kettle的新手,我认为这是一个简单的实验来教自己一些基本知识,但现在却变成了很多挫折。

我想检查一个数据库,看看是否存在一个特定的记录(即供应商)。我想从读取平面文件(.CSV)中获得供应商的名称。

我的第一个障碍是只从CSV中的8个字段中选择供应商名称。

第二个障碍是如何在数据库查询中使用供应商名称作为变量。

我的第三个问题是用于数据库查找的步骤的类型。

我尝试了一个动态SQL查询,但无法确定如何使用变量构建查询,然后如何将所需的值传递给变量。

数据库表(VendorRatings)有30个字段,其中一个是供应商。CSV还有8个字段,其中一个也是供应商。

我最大的努力是使用一个动态查询,使用: SELECT * FROM VENDORRATINGS,哪个供应商=?

如何以编程方式将所需的值分配给"?“在查询中?具体来说,如何将特定字段的输出从文本文件输入链接到“供应商=”?SQL查询?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-21 10:48:50

,因为事实上

  1. 每个供应商最多只能有一个供应商认可。
  2. 如果没有对手,你就得做点什么。

我建议以下流程:

读取CSV,并在表中查找每一行(即:查找表是SQL表,而不是CSV文件)。并将默认设置为不匹配。我建议一些明显的东西,比如“-不匹配-”。

然后,在不匹配的情况下,过滤器将流重定向到替代操作(此处:插入SQL表)。然后这两个流合并到下游流中。

票数 1
EN

Stack Overflow用户

发布于 2018-11-20 09:16:04

最佳实践是Stream lookup。对于主流(VendorRating)中的每个记录,根据其标识符(可能是其编号或名称或firstname+lastname),在参考文件( CSV)中查找供应商详细信息(查找字段)。

第一个“关卡”:一旦定义了csv文件的路径,就按Get field按钮。

它将以第一行作为标题来知道字段名,并探索前100条(可定制的)记录来确定字段类型。

如果名称不在第一行,请取消选中Header row present,按Get field按钮,然后更改面板上的名称。

如果有多个标题行或其他复杂情况,请使用Text file input

对于lookup step同样有效:使用Get lookup field按钮并删除不需要的字段。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53385287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档