基于数据流的大规模数据分析处理语言语言——PigLatin

基于数据流的大规模数据分析处理语言语言——PigLatin

ID:44110089

大小:79.62 KB

页数:5页

时间:2019-10-18

基于数据流的大规模数据分析处理语言语言——PigLatin_第1页
基于数据流的大规模数据分析处理语言语言——PigLatin_第2页
基于数据流的大规模数据分析处理语言语言——PigLatin_第3页
基于数据流的大规模数据分析处理语言语言——PigLatin_第4页
基于数据流的大规模数据分析处理语言语言——PigLatin_第5页
资源描述:

《基于数据流的大规模数据分析处理语言语言——PigLatin》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于数据流的大规模数据分析处理语言语言一一PigLatin摘要随着互联网的飞速发展,数据量不断增大,对海量数据的的按需分析处理需求不断增加。传统的SQL语言对海量数据的查询效率地下、开销过大,难以满足需求,map/reduce的单输入,两阶段数据流编程模式过于苛刻,系统难以优化,PigLatin,该语言借鉴了SQL和map/reduce两者的优点,既具有类似SQL的灵活可变式性,又有过程式语言的数据流特点。关键词PigLatin海量数据UDF1、PigLatin简介对海量数据的按需分析处理需求不断增加,尤其是对于因特网公司,它们的技术革新主要依赖于

2、对每天收集的数据的分析处理能力。要提高如此巨大数据集的存储和分析效率,必须采用高度并行的系统,例如:shared-nothingclustero并行数据库产品,如:Teradata提供了一种解决方案,但是这种方案的web规模扩展开销太大,性价比不高,而且为程序员提供了一种不太自然的编程语言・SQL。事实上很多程序员更加偏爱过程式程序设计语言,因为这种语言的数据流更加清晰,便于分析和调试。这也是map/reduce编程模型流行的原因之一。另外map/reduce的运行于普通商业硬件组成的集群,软件框架保证了可靠性和可用性,通过低端破件实现了高性能计算

3、,这也是map/reduce的优势所在。尽管如此,map/reduce也存在一些限制,它的单输入,两阶段数据流编程模式过于苛刻,对于超出该限制Z外的数据分析任务,需要进行一些额外的数据转换。另外,它没有通用操作子,即使是对最通用的操作,如:projection和filtering。这些限制导致map/reduce代码重用性和可维护性不高,任务的分析语义不够清晰,将对系统性能优化造成影响。基于以上问题,Yahoo!发了一种新的基于数据流的大规模数据分析处理语言・PigLatin,该语言借鉴了SQL和map/reduce两者的优点,既具有类似SQL的灵

4、活可变式性,又有过程式语言的数据流特点。首先以一个例子来直观感受PigLatin的特点:假设我们有一个表urls:(url,category,pagerank)下而是一个简单的SQL查询,对每个足够大的分类,找出其包含的高pagerank的平均值。查询如下:SELECTcategory,AVG(pagerank)FROMurlsWHEREpagerank>0.2GROUPBYcategoryHAVINGCOUNT(*)>106与上述SQL等价的PigLatin程序如下:good_urls=FILTERurlsBYpagerank>0.2;group

5、s=GROUPgood_urlsBYcategory;big_groups=FILTERgroupsBYCOUNT(good_urls)>106;output=FOREACHbig_groupsGENERATEcategory,AVG(good_ur1s.pagerank);可见,PigLatin是一种一步一步顺序执行的编程语言,每一步都完成一次数据转换。这种风格为很多程序员所喜爱。同时每步的转换也都是高级抽象,例如:filtering,grouping,aggregation,抽象级别类似于SQL。事实上,PigLatin程序更像是对查询执行计划

6、的规范。因此更易于程序员理解和控制。PigLatin的实现系统叫pig,Yahoo!的程序员使用pig对大规模数据进行分析处理。PigLatin程序被编译为mapreduce作业,在hadoop上执行。2、特点和动机2.1、数据流语言PigLatin语言在编程风格上与SQL有明显差别,前者凸显了程序的执行数据流,后者只关注最终结果。SQL更适合于编程经验不丰富的程序员,适合小规模数据集;PigLatin更适合有经验的程序员和大规模数据集。2.2、快速开始和协同工作能力Pig支持对各种存储格式的查询处理,前提是用户要给出特定的处理函数,该函数能够分析

7、文件内容,提取需要的元组,因此Pig不需要像传统数据库管理系统那样在查询数据之前要花费大量时间导入数据。类似地,Pig程序的输岀也会按照用户白定义函数将元组类型转换为特定格式的字节序列。这就简化了后续应用程序对Pig输出结果的使用,例如可视化应用程序或者类Exel的电子表格应用程序。2.3、用户自定义函数(UDF)对搜索FI志,爬虫数据,点击流等数据分析的关键就是定制化处理。例如,一个用户对搜索词的自然语言填充感兴趣,或者判断一个特殊的网页是否是spam等都需要定制化处理。为完成这种特殊的数据处理任务,PigLatin提供UDF实现扩展支持。事实上

8、,PigLatin的所有处理(包括grouping,filtering,joining和per-tupleprocessi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。