有关Java中优秀数据挖掘工具的参考资料吗?

时间:2011-03-26 23:24:50

标签: java database data-mining

我们正在为公司开展实习项目。该项目本身由Datamining组成。假设我们必须工作的数据库结构很大(以GB为单位)。

伤心地说,数据库本身有不一致的值,最重要的结构非常糟糕的没有主键和外键。因此,在我们提取和显示不一致数据的简单Servlet模块中,查询执行并显示在servlet上需要花费很长时间。

作为n00b程序员,我们不知道在DB中加入和这样的事情。我们也使用MySQL作为我们的数据库服务器。数据库由来自电信塔的实时数据组成。

要查找表值中的样本不一致,我们使用多个查询的组合,输出一个查询作为另一个查询的输入,如:

"SELECT distinct(tow_id) FROM 'tower_data' WHERE TIME_STAMP LIKE ? ";

//查询找到塔号。

"SELECT time_stamp FROM tower_data WHERE 'TIME_STAMP' LIKE ? AND 'PARAM_CODE' = ? AND 'TOW_ID'=? GROUP BY time_stamp HAVING count( * ) >1";

//查询查找包含重复数据的时间戳。

等等。

数据库中也有10个表。我们需要组合2-3个表来获取自定义查询的值。

在找到多个因素的所有不一致值后,我们必须在下一阶段进行数据清理,消除噪音,数据预测和此类任务。

所以我们认为我们可以应用一些Java数据挖掘工具,这些工具反过来会应用一些算法来加速数据检索。

请引导我们使用一些优秀的数据挖掘工具。任何有关优化/重写查询的指导也将受到高度赞赏。

2 个答案:

答案 0 :(得分:1)

我不是百分百肯定它会对你的情况有帮助,但看看google-refine ......

答案 1 :(得分:0)

由于您似乎有很多结构不合理的数据,我不认为数据挖掘会有所帮助。 您可以考虑使用Apache Hadoop来查看所有这些数据并找出不一致之处。您可以使用Amazon EC2以简单且相对便宜的方式运行Hadoop。您还可以使用Hadoop将数据库移植到更好的架构,前提是您可以构建一个。

编辑:我猜你也可以在MySQL中做一些事情。使用query explanation查找查询的缓慢部分 - 我相信'LIKE'通常很慢,也许您可​​以更快地将查询重新表述。也许您可以先按时间戳对模式进行排序,然后查看子范围。同样,您首先必须有一种有效的方式来获取数据,然后您可以尝试挖掘它。祝好运。