Kettle中模糊查询的使用

背景:有时候我们查找数据并非知道具体某个字段的值,也许只知道其中一部分,或者查询时可能输入有误,这种情况下,我们需要进行模糊查找。Kettle提供了这样的功能,接下来我们进行介绍。
假设您收到一个带有书籍订单的外部文本文件,您需要找到某本书籍的价格。问题是你没有那本书的标识,你只有书名,而且你不确定拼写是否正确。

准备工作:在Mysql中准备一个books表(也可以在其他数据库中创建),字段如下图:
在这里插入图片描述
准备一个文本文件,里面保存了要查找的书名,其中有一些错别字,内容如下图:
在这里插入图片描述

  1. 新建一个转换。
  2. 在“输入”类别中选择“文本文件输入”选项,拖到右侧并打开。在“文件”模块下,“文件或目录”栏输入文本文件的路径,点击“增加”,在“内容”模块下,取消“头部”复选框的对勾,如果文档中有中文,“编码格式”选择“UTF-8”,在“字段”模块下,添加一个新的字段“TitleApprox”,类型为“String”。
  3. 在“输入”类别中选择“表输入”选项,拖到右侧并打开,在“数据库连接”栏中选择要连接的数据库,如果没有则新建并测试。在“SQL”栏下输入“select title,price from books”。点击“确定”。
  4. 在“查询”类别中选择“模糊匹配”选项,分别从“文本文件输入”和“表输入”创建指向“模糊匹配”的连接。
  5. 打开“模糊匹配”选项,在“一般”模块下,“匹配流”中“匹配字段”选择“表输入”,“匹配字段”选择“title”;“主数据流-主要流字段”选择“TitleApprox”,设置中,“算法”选择“Levenshtein”,“最小值”设置为“0”,“最大值”设置为“3”。
  6. 在“模糊匹配”的“字段”模块下,“输出字段”中“匹配字段”选择“match”,“值字段”选择“measure value”,“指定额外的在匹配流中的字段”表格下添加“price”字段,点击“确定”。
  7. 总的结构如下图所示:
    在这里插入图片描述
  8. 保存并预览该转换,结果如下图,即使输入文本文件中书名有错字,但依然可以匹配到数据库中正确的书名。
    在这里插入图片描述
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值