网站首页 > 数据库> 文章内容

在 Oracle 数据库中实现 MapReduce

※发布时间:2014-10-8 21:25:20   ※发布作者:habao   ※出自何处: 

  在程序员开发并行程序时,Map-Reduce模式正变得流行起来。这些map-reduce程序通常来并行处理大量数据。本文来演示如何在Oracle数据库上,通过使用Parallel Pipelined Table函数及并行操作,来实现Map-Reduce程序。(注:table()是oracle中一个函数,可以把定义为Pipelined的function的返回结果进行SQL查询)

  Pipelined Table函数是在Oracle 9i引入的,作为能在数据流中嵌入过程逻辑代码方法。从逻辑上说,一个Table函数是可以出现在from子句中,该函数就像数据表一样的返回多行数据。Table函数同样也可以接收多行数据做为输入参数。大多数情况下,Pipelined Table函数可以嵌入到一个数据流中,它让数据“流”进SQL语句中,从而避免增加一个物理层(直译:具体化的中介)。再次说明,Pipelined Table函数是可以并行处理的。

  所有的例子都在omr.sql文件中。

  为了说明并行的使用方法以及用Pipelined Table函数在Oracle数据库内写一个Map-Reduce算法, 我们实现一个最经典的map-reduce例子--单词计数。单词计数是实现返回一组文档中所有不重复单词出现的个数的程序,也可以说是查询单词出现频率功能。

  示例代码是用PL/SQL实现,但如前所说,Oracle允许你选择其它语言来实现这个过程逻辑。

  1、配置

  我们将在一组文档中查找,这些文档可以是数据库之外的文件中,也可以保存在Secure Files/CLOB的数据库内的列中。在我们这个存文档的表也相当于一个文件系统。

  在本例中,我们将在数据库内创建一个表,用下面的声明:

  map代码和reduce代码都将包含在一个包中,保持代码的整洁。为了展示这些步骤,我将把这些代码段从包中拿出来,在下面各小节展示。在实际的包中,还必须要定义几个types。所有代码均在Oracle Database 11g (11.1.0.6)测试通过。

  2、创建Mapper and the Reducer

  首先我们要创建一个普通的map函数来给文档做标记。记住,我们不是要展示这个map函数有多么好,而是要表达这在数据库工作的原理。这个map函数非常基本,其它地方也可能有更好的实现。

  你可以使用数据库的聚合引擎及仅map函数来得到最终结果。一个请求和结果看起来是: SQL完成聚合操作,不需要reducer的函数。

  当然,你也可以写自己的聚合的Table函数来计算单词的出现次数。如果你不用oracle的聚合引擎的话,你必须自己来写map-reduce的程序。这个聚合Table函数就相当于map-reduce中的reducer部分。

  Table函数要求输入必须按单词分组,需要将数据排序(用oracle 执行引擎的sort)或单词分簇。我们展示一个简单的记数程序在本文中。

  Oracle Table函数是经得起验证的技术,并在Oracle的内外广泛使用的扩展Oracle11g的技术。

  Oracle Table函数是稳定并可扩展的方法,在Oracle数据库内实现Map-Reduce,并且能够利用Oracle并行执行框架的扩展性。在SQL中利用它,能让数据库开发人员用自己熟悉的和语言,为他们提供一个有效的、简单的机制去实现Map-Reduce方法。

  你可以下载orm.sql,没有什么特殊的权限需求。

  附:orm.sql代码

  ?

延伸内容:
相关阅读
重庆学习网zslpsh,0755深圳房产人才招聘网,拾年网90后,anedc股票,最新电影下载淘娱淘乐,重庆中学生网高考,重庆中学生网高考,学习重庆方言网,重庆中学生学习方法,重庆俗语网,中学生网zslpsh,0755深圳交友网,重庆初中生,贵州重庆方言网,025新闻网,西南重庆方言歌曲,025南京交友网,重庆农家乐美女,观赏蟹种类zadull,云南重庆方言网,重庆中学学习网,028成都交友网,推广taoyutaol,西南四川方言网,观赏龟论坛zadull,四川重庆方言网,022天津交友网,重庆中学生网家长,鹦鹉鱼zadull,重庆俗语,电影淘娱淘乐,taoyutaole娱乐,华夏视讯网,0755深圳旅游招聘,昆明重庆方言网,淘娱淘乐影视,www.00game.net,观赏鱼zadul,重庆高考zslpsh,重庆中学生网高考,027房产招聘网,坝坝舞wagcw,西南重庆方言网,贵州重庆方言网,重庆言子儿网,热带鱼zadull,重庆高考zslpsh,0755深圳旅游招聘网,淘娱淘乐影视网,0571.361.cm,重庆方言学习网,028成都新闻,异形观赏鱼种类,影视网淘娱淘乐,最新电影下载淘娱淘乐,0773桂林论坛,拾年网80后动画片,观赏蟹论坛zadull,观赏龟繁殖教程,重庆一中zslpsh,重庆俗语网,广场舞wagcw,观赏虾的种类zadull,观赏鱼观赏虾观赏龟,西南方言网,观赏鱼之家论坛zadull,战争前线辅助00game,西南重庆方言小说,重庆中小学zslpsh,推广taoyutaol,战争前线论坛00game,0871交友网,025南京新闻网,重庆言子儿网站,娱乐taoyutaole,022天津交友网,025新闻网,重庆中学生网学习,022天津交友网,重庆方言歌网,www.120.cm健康网,anedc股票,重庆初中生