2013-10-18 41 views
1

我目前有五个表经常接收复制数据。 PL/SQL用于基于复杂的业务逻辑转换,清理和聚合这些数据。然后将结果放在三个报告表中。Hadoop/Mapreduce无法处理任何业务逻辑吗?

我有兴趣为此使用MongoDB而不是关系数据库。为了这样做,所有的PL/SQL业务逻辑必须被翻译成另一种语言,比如Java。

但是,有人向我建议Hadoop比MongoDB更好。我现在正在学习Hadoop和Mapreduce,但我感觉Hadoop用于分析数据(从数据导出统计值,即客户操作之间的相关性),而不是基于业务逻辑来转换数据。

为了用Hadoop替换原有系统,我假定所有的PL/SQL业务逻辑都必须被转换为mapreduce函数。这个假设是不正确的?

无论我的个人情况如何,Hadoop(和mapreduce)无法处理的任何业务逻辑,PL/SQL还是Java都可以?

+1

你能描述“分析”和“变换”数据之间的区别吗? –

+0

@JoshLee通过分析我的意思是Hadoop的大数据应用,即企业可以尝试最大化价值的客户操作之间的统计相关性,例如Walmart将尿布放置在啤酒旁边或在飓风期间放置流行馅饼。通过转换我的意思是在ETL中使用的定义。 –

回答

1

首先,MongoDB是NoSql数据库的类型,Hadoop是一种并行处理框架。 如果您确实有tera/peta字节的数据,则可以使用并行处理框架。 并请参考您的数据是否可以使用Nosql数据库+并行处理框架。

  1. 你可以把PL/SQL的业务逻辑为MapReduce函数
  2. 的Hadoop可以处理,如果索引,集中 处理任何业务逻辑大量的损失。(对于非交易系统)

而且我会建议你看看蜂巢,它可能会帮助你。

+1

只需添加MR就是批量导向的,NoSQL就像任何其他具有实时访问权限的数据库。所以,根据要求选择合适的软件。 –

0

我可以确认您可以使用MongoDB + Hadoop。您所要做的就是将所有包中的整个转换逻辑放在一边,然后确定输入,输出和流(依赖关系),然后转换为映射reduce。主要任务是从转换逻辑中识别关键值,规则。我希望你也可以用猪。使用Sqoop进行提取。