【发布时间】:2011-07-23 16:44:47
【问题描述】:
我们正在为公司做一个实习项目。该项目本身由数据挖掘组成。假设我们必须工作的数据库结构很大(以千兆字节为单位)。
遗憾的是,数据库本身的结构非常糟糕,值不一致,最重要的是没有主键或外键。因此,在我们用于提取和显示不一致数据的简单 Servlet 模块中,查询需要永远执行并显示在 servlet 上。
作为 n00b 程序员,我们不知道 DB 中的 Join 和此类事情。我们也使用 MySQL 作为我们的数据库服务器。该数据库由来自电信塔的实时数据组成。
为了发现表值中的样本不一致,我们使用了多个查询的组合,一个查询的输出作为另一个查询的输入,例如:
"SELECT distinct(tow_id) FROM 'tower_data' WHERE TIME_STAMP LIKE ? ";
//查询tower-id。
"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 数据挖掘工具,这些工具反过来会应用一些算法来加速数据检索。
请指导我们使用一些好的数据挖掘工具。任何有关优化/重写查询的指导也将受到高度赞赏。
【问题讨论】:
-
如果表没有键或由于某种原因不允许它,则没有什么可优化的。
-
@BaluC 什么都没有?没有我们可以使用的算法、连接或查询技术?
标签: java database data-mining