0

我有一个遗留系统,它使用 SAS 从数据库中提取原始数据,清理和整合它,然后对输出的文档进行评分。

我想迁移到 Java 或类似的面向对象的解决方案,这样我就可以实现单元测试,以及一般更好的代码控制。(我不是在谈论检修整个系统,而是在我可以的地方注入 java)。

就数据大小而言,我们谈论的是大约 1 TB 的数据被摄取和创建。在扩展方面,这可能会增加大约 10 倍,但不太可能像全球 Web 项目那样大规模增加。

问题是——什么样的工具最适合这种项目?

我在哪里可以找到这些信息 - 应该使用哪些搜索词?

对 SQL 数据库进行处理(根据需要创建和删除表、添加列)是合适的还是糟糕的解决方案?

我已经快速了解了 Hadoop——但是由于这个项目的规模很小,Hadoop 会不会是一个不必要的复杂性?

是否有任何 Java 包在合并、连接、排序、分组数据集以及修改数据方面具有与 SAS 或 SQL 类似的功能?

4

2 回答 2

1

我认为你需要问自己的问题是

  1. 您的数据集的性质是什么,多久更新一次。
  2. 将来您在这 1TB 或更多数据上的工作量是多少。会不会主要是离线读取和分析操作?还是会有很多随机写操作?

这是一篇关于是否选择使用 Hadoop的文章,我认为值得一读。

如果您只有每天或每周更新数据集,Hadoop 是更好的选择。对数据的主要操作是只读操作,以及进一步的数据分析。对于您提到的合并、加入、排序、分组数据集操作,Cascading是一个运行在 Hadoop 之上的 Java 库,它很好地支持了该操作。

于 2013-10-15T01:16:07.303 回答
1

鉴于您的问题陈述,我很难准确地规定您需要什么。

这听起来像是一个很好的数据库 API(即原生 JDBC可能就是你所需要的一个好的开源数据库后端)

但是,我认为您应该花一些时间来检查一下Lucene。这是一个很棒的工具,可以很好地满足您的评分需求。对您的问题采用搜索引擎索引方法可能会很有成效。

于 2013-10-11T01:55:45.617 回答