大数据学习:hive篇,入门学习大数据开发大数据开发之路漫漫其修远兮,吾将上下而求索。对于很多http://www.dtinone.com/ 入门学习大数据开发的小伙伴,可能第一个接触到的,是我们的大数据领域的数据仓库工具hive。在大数据生态中,hive一般作为数据仓库 来使用。Hive本身是不做数据存储的,它是构建在分布式存储系统HDFS之上,我们平常看到的表数据其实本质上来说还是HDFS的文件 。Hive把这些HDFS数据文件,通过元数据规则映射为数据库的表,并且可以提供SQL操作的功能。Hive总体结构比较简单,总体有 三个组件:用户接口、元数据系统、驱动器。用户通过用户接口来输入操作指令。一般接口有三种形式:CLI端:一般在Linux服务器直接输 入hive即可进入;WEB模式:通过命令bin/hive--servicehwi启动,默认访问9999端口;远程模式:一般 是JDBC之类的编程接口;Hive的核心在于驱动器,一般驱动器接收到用户接口传递的一条SQL之后,会进行下面的一系列操作:驱动器开 始进行语法和语义分析?生成逻辑计划并且逻辑优化?生成物理计划?发送计划到执行引擎(常用有mapredue和sprk)执行结果返回常 用hive语法:分组统计一般常用的分组就是groupby了,然后配合上一些窗口函数,SUM、AVG、MIN、MAX、COUNT 等,就可以实现我们很多统计需求了。关联查询有时候我们查询的数据存放在不同的表中,那关联查询就派上用场了。所谓关联查询,一般就是通过 两张表相同的字段值关联起来,同时查询两张表的记录。Hive中常用关联分内外关联。我们先建立两张简单的表tab_a和tab_b,用实 例来说明关联机制。表结构和表数据如下图所示:内关联一般使用关键字Join或innerjoin,内关联只返回关联上的结果。外关联的 形式就比较多样化了,又分为:左外关联:关键字为left[outer]join,以前边的表为主表,返回记录数和主表记录一致,关联 不上的字段为null;?右外关联:关键字为right[outer]join,和左外关联相反,则是以后边的表为主表;?全外关联: full[outer]join,返回两个表的去重之和,关联不上的字段为null。行列转换有时候我们会需要把多列的数据平铺到一行 上输出。比如查询用户的访问轨迹,这时候有两个函数就起上作用了。这两个sql的作用都是把每个用户的点击轨迹拼接暂展示出来,其中co llect_set和collect_set能够把列数据合并,转为一行。而两个的唯一区别就是collect_set会进行去重。优势和 不足:Hive目前作为业内使用最为广泛的数据仓库工具,有着很多优点:?高可靠、容错性高、扩展性强。HQL语法和传统SQL类似,且内 置大量处理函数支持的存储格式种类多,兼容性强。用户接口多,支持各种形式的调用。但是hive也有它自身的一些不足,比如:OLTP支持 不足,不支持事务,目前只有比较新的版本才可以实现行列级别更新且对格式要求严格。完成加米谷大数据培训的相关课程,可以在加米谷大数据申 请考取[大数据专业人才技能证书](大数据工程师证书,数据分析师证书),证书由中国管理科学研究院学术委员会签发。证书详情及相关内容可 联系加米谷大数据张老师进行了解。学习大数据可以参考下加米谷!加米谷大数据零基础开发班六月开课,现在咨询还有机会获得免费试听名额+学费优惠+大数据内部资料!名额有限,先到先得,送完即止。赶紧来咨询吧! |
|