1概要模式

概要模式其实就是数据的全貌信息的获取,主要分为3种:

1.1数值概要

#HSQL
SELECT MIN(num),MAX(num),COUNT(num) FROM table GROUP BY groupcol;
#Pig
b = GROUP a BY groupcol;
c = FOREACH b GENERATE group, MIN(a.num), MAX(a.num), COUNT_STAR(a)

1.2倒排索引概要

1.3计数器概要

2过滤器模式

过滤模式是不改变原有记录,而寻求子集的设计模式,主要应用于如下方面:

2.1过滤

#HSQL
SELECT * FROM table WHERE value<3;
#Pig
b = FILTER a BY value <3;

2.2布隆过滤

2.3TopN模式

#HSQL
SELECT * FROM table ORDER BY col DESC LIMIT 10;
#Pig
b = ORDER a BY col DESC;
c = LIMIT b 10;

2.4去重

#HSQL
SELECT DISTINCT * FROM table;
#Pig
b = DISTINCT a;

3数据组织模式

数据组织模式是将一组数据进行重组,重点在于将个别记录的价值放大到全局,主要有如下几个设计模式:

3.1分层

#HSQL
##在关系数据库中,很少;在RDBMS中解决类似问题方法一般是先对数据进行连接,然后在结果上分析
#Pig
##pig对于分层数据结构有一定支持,包括层次化的包和元组。
a = LOAD '/data/a' AS PigStorage('|');
b = LOAD '/data/b' AS PigStorage(',');
group_c = COGROUP a BY $2, b BY $1;
annalyzed = FOREACH group_c GENERATE udfs.ananlyze(group ,$1 ,$2);
...

3.2分区

3.3分箱

3.4全排序

#HSQL
SELECT * FROM table ORDER BY col DESC;
#Pig
b = ORDER a BY col DESC;

3.5混排

#HSQL
SELECT * FROM table ORDER BY RAND();
#Pig
b = GROUP a BY RANDOM(); #随机
c = FOREACH b GENERATE FLATTEN(a);#分组打平

4连接模式

连接模式是对于多处数据进行组织的一种方法,主要有以下几种:

4.1终端连接

#HSQL
SELECT column_name
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
#Pig
C = JOIN A BY a1 LEFT OUTER,B BY b1; #左外,也可以:{左右全}外
C = JOIN A BY a1,B BY b1; #内

4.2复制连接

#pig
#只有内连接和左外才支持这种复制链接优化模式
#除了第一个数据集以外,要求所有的数据集都要在内存中
big = LOAD 'big_data' AS (b1,b2,b3);
tiny = LOAD 'tiny_data' AS (t1,t2,t3);
mini = LOAD 'mini_data' AS (m1,m2,m3);
C = JOIN big BY b1, tiny BY t1, mini BY m1 USING 'replicated';

4.3组织连接

4.4笛卡尔

#HSQL
SELECT * FROM table a ,b;
#Pig
c = CROSS a , b ;

5模式的模式

5.1作业链

5.2折叠链

5.3归并链

6IO模式

转载于:https://my.oschina.net/u/3511143/blog/1808961

Pig设计模式概要以及与SQL的设计模式的对比的更多相关文章

  1. java设计模式系列之设计模式概要(1)

    一.什么是设计模式 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. ...

  2. 初探Java设计模式4:JDK中的设计模式

    JDK中设计模式 本文主要是归纳了JDK中所包含的设计模式,包括作用和其设计类图.首先来个总结,具体的某个模式可以一个一个慢慢写,希望能对研究JDK和设计模式有所帮助.一.设计模式是什么(1)反复出现 ...

  3. [Head First设计模式]饺子馆(冬至)中的设计模式——工厂模式

    系列文章 [Head First设计模式]山西面馆中的设计模式——装饰者模式 [Head First设计模式]山西面馆中的设计模式——观察者模式 [Head First设计模式]山西面馆中的设计模式— ...

  4. 设计模式总结(《Head First设计模式》学习总结)

    写在前面: 学习过程中不仅要熟练掌握技能,理论的消化吸收也必不可少.虽然个人更倾向于学习技术类的东西(短时间的精力投入很快就能看到成效...),但看了很多前辈的经验总结后才知道理论性的东西是绝对不能忽 ...

  5. php设计模式课程---1、什么是设计模式

    php设计模式课程---1.什么是设计模式 一.总结 一句话总结:经典场景的经典解决方法. 经典场景的经典解决方法 1.设计模式使用的通俗场景有哪些? 比如:拍电影时,常用设计模式 感情狗血剧:误会模 ...

  6. Java面试 - 什么是单例设计模式,为什么要使用单例设计模式,如何实现单例设计模式(饿汉式和懒汉式)?

    什么是单例设计模式? 单例设计模式就是一种控制实例化对象个数的设计模式. 为什么要使用单例设计模式? 使用单例设计模式可以节省内存空间,提高性能.因为很多情况下,有些类是不需要重复产生对象的. 如果重 ...

  7. LINQ to SQL和Entity Framework对比与关联 (转载)

    LINQ to SQL和Entity Framework对比与关联       LINQ to SQL和Entity Framework都是一种包含LINQ功能的对象关系映射技术.他们之间的本质区别在 ...

  8. 设计模式概要 & 六原则一法则

    参考文章 http://blog.csdn.net/sinat_26342009/article/details/46419873 继承vs组合:http://www.cnblogs.com/feic ...

  9. PHP常用设计模式,PHP常用设计模式详解,PHP详解设计模式,PHP设计模式

    PHP常用设计模式详解 单例模式: php交流群:159789818 特性:单例类只能有一个实例 类内__construct构造函数私有化,防止new实例 类内__clone私有化,防止复制对象 设置 ...

随机推荐

  1. 基于Taro.js和微信小程序云开发的移动端校园平台——《我的衡师》

    我学校教务处目前仅有电脑端,并不适配移动端,电脑端也只能使用IE6浏览器访问,兼容性差.我在没有api接口的情况下,通过Carles和Postman抓包,用node.js爬虫实现了后台和小程序的对接. ...

  2. http之抽丝剥茧,深度剖析http的那些事儿

    最近,小编一心扎跟学技术,毫不顾及头发的掉落速度,都快成地中海了,不过也无大碍,谁让咱是一个爱钻技术的男人呢.最近两周老是看到http,那么这个http,有哪些猫腻呢,很多同学都有这种理解,就是对于h ...

  3. C语言输出 1到20 的阶乘之和

    除了调用库,绝对找不到比这更精简的代码了. #include<stdio.h> #include<string.h> long long getdata(long long n ...

  4. Linux bash篇(三 数据流重定向)

    1>        以覆盖的方式将正确的数据输出到文件或设备上 1>>        以追加的方式将正确的数据输出到文件或设备上 2>        以覆盖的方式将错误的数据输 ...

  5. scala_spark实践3

    Spark 读写HBase优化 读数据 可以采用RDD的方式读取HBase数据: val conf = HBaseConfiguration.create() conf.set(TableInputF ...

  6. lr自带协议工具

    Lr自带的协议分析的工具: 录制脚本之前,选对协议很关键,否则错误的协议会导致Virtual User Generator 录制不到脚本,或录制的脚本不完整,有些应用可能需要选择多个协议才能完整的记录 ...

  7. python初学(一)

    1.输入一个百分制成绩,要求输出成绩等级A.B.C.D.E,其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E. 要求:1)用if语句实现:2)输入百分制成绩 ...

  8. Flask基础-01.Flask简介

    Flask简介 Web应用程序作用 Web(World Wide Web)诞生最初的目的,是为了利用互联网交流工作文档. 关于Web框架 1. 什么是Web框架? 1. 已经封装好了一段代码,协助程序 ...

  9. PHP代码审计理解(二)----齐博CMS7.0文件覆盖

    0x00 前言 因为我是跟着视频操作的,这回真的没理解为什么定位到了这个存在漏洞的文件... /do/fujsarticle.php 因为没有前文,所以这里无法分析这个$FileName为什么可以$_ ...

  10. C# WCF之用接口创建服务契约、部署及客户端连接

    服务契约描述了暴露给外部的类型(接口或类).服务所支持的操作.使用的消息交换模式和消息的格式.每个WCF服务必须实现至少一个服务契约.使用服务契约必须要引用命名空间System.ServiceMode ...