一个数据仓库时代开始Hive一、什么是?是一个基于构建的开源数据仓库系统,我们使用它来查询和分析存储在文件中的大型数据集。此外,通过使用Hive,我们可以在中处理结构化和半结构化数据。换句话说,Hive是一个数据仓库基础设施,便于查询和管理驻留在分布式存储系统中的大型数据集。它提供了一种类SQL的查询语言)查询数据的方法。此外,编译器在内部将语句转换为等作业。进一步提交给框架执行。二、我们为什么要使用Hive技术?随着的出现,极大的简化大数据编程的难度,使得普通程序员也能从事开发大数据编程。但在生产活动中经常要对大数据计算分析是从事商务智能行业(BI)的工程师,他们通常使用SQL语言进行大数据统计以及分析,而编程是有一定的门槛,如果每次都采用开发计算分析,这样成本就太高效率太低,那么有没有更简单的办法,可以直接通过SQL在大数据平台下运行进行统计分析?有的,答案即是Hive。Hive主要用于数据查询,统计和分析,提高开发人员的工作效率。Hive通过内置函数将SQL语句生成DAG(有向无环图),再让计算处理。从而得到我们想要的统计结果。而且在处理具有挑战性的复杂分析处理和数据格式时,极大的简化了开发难度。三、Hive架构Hive能够直接处理我们输入的语句,调用计算框架完成数据分析操作。下面是它的架构图,我们结合架构图来看看Hive到整个流程。由上图可知,HDFS和是Hive架构的根基。Hive架构主要分为以下几个组件,下面是各个组件介绍用户接口组件主要包含CLI(命令行接口)、JDBC或(以浏览器访问Hive);组件元数据服务组件,记录表名、字段名、字段类型、关联HDFS文件路径等这些数据库的元数据信息;(执行引擎)包括、和,它们的作用是将语句进行语法分析、语法解析、语法优化,生成执行计划,然后提交给计算框架处理;是开发的一个软件框架,它用来进行可扩展且跨语言的服务的开发,通过该服务使不同编程语言调用Hive的接口。我们通过CLI向Hive提交SQL命令,如果SQL是创建数据表的会通过执行引擎将数据表元数据信息存储中,而如果SQL是查询分析数据的DQL,通过、和进行语法分析、语法解析、语法优化操作,生成执行计划生成一个的作业,提交给计算框架处理。到此Hive的整个流程就结束了,相信你对Hive的整个流程已经有基本了解。接下来我们探讨一条SQL在是如何统计分析。四、SQL如何在执行左边是数据表,右边是结果表,这条SQL语句对age分组求和,得到右边的结果表,到底一条简单的SQL在是如何被计算,编程模型只包含map和两个过程,map是对数据的划分,负责对map的结果进行汇总。)首先看map函数的输入的key和,输入主要看就是表的每一行数据,输入的作为map函数输出的key,输出的固定为1,比如,1>。map函数的输出经过处理,把相同的key以及对应的组合成新,从表看出map输出2次,1>,那么经过处理后则会输出,>,并将输出作为函数的输入。在函数会把所有进行相加后输出结果,,>输出为,2>。这就是一条简单SQL在执行过程,可能你会有点迷糊,在这里我画了一张流程图,结合流程图你会更加清楚。五、Hive和之间的区别说到Hive跟(传统关系型数据库)相比有哪些区别,很多人可能还是说不清楚,在这里我总结一下关于Hive和之间的区别。1、Hive支持部分SQL语法,跟标准SQL有一定区别。2、传统的数据库在写入数据会严格检验数据格式,对于这种我们成为读时模式,而Hive是在查询数据时验证数据,这种验证我们称为写时模式,而且由于每次都是扫描整个表导致高延时;3、Hive是在上运行的,通常而言Hive时一次写入多次读取,而则是多次读写;4、Hive视图是逻辑存在,而且只读,不接受,而视图根据表变化而变化;5、Hive支持多表插入而是不支持,而且Hive对子查询有严格要求,有许多子查询是不支持;6、早期Hive只支持插入数据,从0.14.0开始支持...语句按行添加数据,另外和也允许被执行;7、在之后Hive是支持索引的,只是它跟不一样,比如它不支持主键和外键,而是支持在某些列上建立索引,以提高Hive表指定列的查询速度(但是效果差强人意);其实对于更新、事物和索引,一开始Hive是不支持的,因为这样非常影响性能,不符合当初数据仓库的设计,不过后来不断的发展,也不得不妥协,这也导致Hive和在形式上更加相识。相信看完这些大家已经对它们之间区别有了一些理解,在这里我还贴出一张表格,你可以对照表格加深印象。比较项SQL支持不完全支持更新之后)模式读时模式写时模式数据保存磁盘HDFS延时低高多表插入不支持支持子查询完全支持支持From子句视图索引支持支持表列(0.7.0之后)可扩展性低高数据规模小大读写一次写入多次读取多次读写分析执行等小结在实际生产过程中,其实我们不会经常编写程序,起初在网站的大数据分析基本是通过SQL进的,也因此Hive在大数据中扮演着非常重要作用。随着Hive的普及,我们希望更多的大数据应用场景中使用SQL语句进行分析,于是现在越来越多的大数据SQL引擎被开发出来。在我看来无论是的,还是后来的,对大数据中使用SQL需求越来迫切,对大数据SQL应用场景更多样化,我们只需要通过SQL语句就可以轻易得到我们想要的结果。最后说一点,在这些SQL引擎基本都是支持类SQL语言,但并不像数据库那样支持那样标准SQL,特别是Hive等数据仓库几乎必然会用到嵌套查询SQL,也就是在条件嵌套子查询,但是几乎所有的大数据SQL引擎都不支持。
本文仅代表作者观点,版权归属原创作者,如需转载请在文中标注来源及作则名字。
免责声明:本文系转载编辑文章,仅做分享只用,如有疑问请联系邮箱:110@zbj.com
一个人做自媒体,怎么利用短视频赚钱
中国网络文学行业2022年总营收317.8亿元,同比增长18.94%
六个白手起家的创业案例
现在有什么挣钱快的自媒体平台?
一个零成本创业小项目,适合大学生做!
淘宝怎么看一个店铺是不是旗舰店?
寻人!寻找100位手艺人,用行动帮你赚钱!
个体工商户食品行业怎么填?
淘宝上看不到卖家营业执照怎么办?
抖音短视频制作文字视频方法
微信公众号怎么看文章的阅读量?
做电商,企业营业执照的经营范围怎么定啊?
抖音企业号和蓝v号有什么区别?
特步的logo设计理念
淘宝带企字标志的商家是什么情况?
书包上的烫印的logo怎么去掉?
随着老龄化逐渐加剧,老人的养老和就医成了一个突出问题,也为相关创业带来了契机,子女不在身边的情况成普遍现象,很多子女因为工作原因无法脱身,宁愿花钱去解决问题,随着时间的推移,这样的需求在逐年扩大,现在
如何换PPT里全部字的颜色?
淘宝里怎么找到自己的评价?
新手小白如何从零开始做头条自媒体?