Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么时候使用Hadoop是一种过度使用?_Hadoop - Fatal编程技术网

什么时候使用Hadoop是一种过度使用?

什么时候使用Hadoop是一种过度使用?,hadoop,Hadoop,我有一个Oracle数据库(大约12亿条记录),上面有一个web应用程序,可以生成查询(生成SQL代码并返回计数)。基本上,您通过一个AJAX UI以图形方式生成SQL查询……并且它在性能方面运行得非常好 这大约是一个400 GB的数据库。我一直在研究Hadoop,并考虑使用它而不是Oracle(让我的应用程序生成配置单元查询代码),但在我看来,这似乎是一种过度杀伤力……Hadoop的目标不是更多地针对数十TB到PB级的数据集吗?对于我正在执行的任务,它是否适合替代关系数据库(如Oracle)

我有一个Oracle数据库(大约12亿条记录),上面有一个web应用程序,可以生成查询(生成SQL代码并返回计数)。基本上,您通过一个AJAX UI以图形方式生成SQL查询……并且它在性能方面运行得非常好

这大约是一个400 GB的数据库。我一直在研究Hadoop,并考虑使用它而不是Oracle(让我的应用程序生成配置单元查询代码),但在我看来,这似乎是一种过度杀伤力……Hadoop的目标不是更多地针对数十TB到PB级的数据集吗?对于我正在执行的任务,它是否适合替代关系数据库(如Oracle)

hadoop的目标不是更倾向于数十TB到PB级的数据集吗

也许吧。但它适用于各种各样的问题。它也适用于Hadoop“功能性”编程风格有帮助的非常小的数据集

SQL不是完美的查询语言。它刚刚被广泛采用

对于我正在执行的任务,它是否适合替代关系数据库(如Oracle)

如果没有太多的要求,几乎不可能知道。然而,如果您正在做大量插入、更新和删除的事务性工作,那么SQL RDBMS可能是必要的


如果你没有做复杂的交易;如果您正在进行批量加载和批量查询,那么数据库就会妨碍您。文件系统会更快。而且通常更简单。

基本上,如果某件东西没有损坏,就不要试图修复它。从我在维基百科上读到的内容来看,这无疑是一种过激的做法,但除此之外,你还说该应用程序“在性能方面运行得非常好。”

没有更多细节,很难说。然而,根据我的经验,如果您的所有数据都是SQL,那么您的SQL引擎可能比SimpleMapReduce有更多的优化

如果不知道要处理的是什么以及数据的状态,那么除非您的环境遇到了一些主要的边缘问题,否则在您的环境中设置和使用hadoop可能会有更多的困难,并且可能不会花费更多的时间

如果您的所有数据都在Oracle中,那么它可能都是经过解析、索引的,并且希望有点规则。如果处理完全存在于该域中(并且您没有尝试处理一些不常见的东西,比如大量的blob或其他奇怪的情况),大多数时候最好让您的数据库引擎来处理它

故事的寓意:

Hadoop真的很棒,但它不是 神奇的,不会让普通的SQL更快


您发现当前的Oracle实现中缺少什么?这可能有点离题,但如果您的网站流量很大,您可以查看memcached(),什么都没有!经理试图推广Hadoop,一想到使用Hadoop就改变了我的想法,现在我正在做一些研究来验证这一点,这是不必要的:)我想问一下您的经理,他发现您当前的Oracle实现中存在哪些不足。希望答案不会是“它不是Hadoop”。Hadoop不适用于小型数据集,如果您希望Map/Reduce查询您的数据,还有其他解决方案。