KNIME的学习使用心得

时间:2021-07-21 16:43:13

最近学习了下KNIME,感觉还真不错。虽然知道这个软件很久了,但直到现在才发现他的能耐,惭愧啊。鉴于网上关于这个软件的学习资源相当的少,我把自己学习使用的心得整理一下,放在这里给大家参考,也算是推动下KNIME这个优秀开源软件在中国的传播吧。

 

手头并没有笔记资料,只是把自己想到的回忆到的有空就加进来而已。。。也没时间专门写,一点一点慢慢来吧。

 

工作中同事经常有一些数据需要分析,比如两个月数据对比,找出新增项目等。我之前都是用Access数据库来做,但我发现每次都是在重复一样的操作,而且更要命的是我必须自己做,或则教会同事使用Access(不是搞计算机行业的,这个比较有难度)。于是我想找一些简单的方法。开始我想通过编程的手段来实现,这确实是一条可行之路,但很快我发现,如果一种分析方式就编一个小程序,那也是相当消耗时间的事情。。。

我无法预知同事们的需求,如果他们提出一个要求,我告诉他们请等我花几天时间写好程序(本人非专业人士,编程水平有限),那未免有些太夸张了。就是在这样的背景下,KNIME满足了我的需求。

 

通过KNIME,可以简单的设置数据源,用名为NODE的节点来对数据进行处理,直到最后获取你所需要的结果。举个简单的例子:

 

数据源(Access数据库文件)-过滤掉不使用的列-过滤掉不符合条件的行-修改列名-按照指定列排序-导出结果到CVS文件。

 

这个过程完全是图形化的,你要做的是把用到的节点一个一个拖到合适的位置,然后用鼠标把他们连接起来,最后从头到尾逐个设置好,然后便可以点击执行了,执行过程就像红绿灯,红灯表示节点有问题,你需要查看Log窗口了解问题,黄灯表示等待执行状态,绿灯表示执行正常,偶尔有个叹号则表示有需要提醒你注意的地方,比如说按照现有设置会覆盖原有文件等等。

 

Database Reader

Database Reader 用于从数据库读取数据,是工作流的源头,该节点后面可以连接各种数据处理节点。

默认使用JDBC-ODBC桥来读取数据库文件,你也可以自己加载其它的JDBC驱动。

使用方法和一般JAVA使用JDBC差不多。以ACCESS为例:

Database Driver: 默认值

Database URL:jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=C:/TEST.mdb

username:空

password:空

SQL Statement:SELECT * FROM test

 

我的数据库文件是TEST.mdb,表是test

 

输完后点击OK,如果设置正确图标会亮黄灯,然后就可以右键Execute,执行完再右键Data from Database查看结果。

 

如果访问Excel,那么需要修改的设置为:

Database URL:jdbc:odbc:Driver={Driver do Microsoft Excel (*.xls)};DBQ=C:/TEST.xls

SQL Statement:SELECT * FROM [sheet1$]

注意,[ ] 是必须的。我的数据库文件是TEST.xls,表是Sheet1

 

 

 

 

 


KNIME Node 用途

IO

Database

Data Manipulation

  Column

      One2Many 把选定列的所有可能值转换成以值命名的新列。如原来“年龄列”有10岁,11岁,那么转换后就增加了“10岁”列和“11岁”列。

 

             姓名  年龄

               A     10

               B     11

 

             姓名  年龄  10  11

               A     10     1    0

               B     11     0    1