发布于2021-07-24 22:04 阅读(1283) 评论(0) 点赞(11) 收藏(5)
1、执行查询:从Hive的CLI或Web UI发出查询命令给驱动程序(任何JDBC,ODBC数据库驱动)执行。
2、获取计划:驱动程序请求查询编译器解析查询、检查语法、生成查询计划或者查询所需要的资源。
3、获取元数据:编译器向元数据存储数据库发送元数据请求。
4、发送元数据:作为响应,元数据存储数据库向编译器发送元数据。
5、发送计划:编译器检查需要的资源,并将查询计划发送给驱动程序。至此,查询解析完成。
6、执行计划:驱动程序向执行引擎发送执行计划。
7、执行作业:执行计划的处理是一个MapReduce作业,执行引擎想namenode上的JobTracker进程发送作业,JobTracker把作业分配给datanode上的TaskTracker进程。此时,查询执行MapReduce作业。
7.1、操作元数据:执行作业的同时,执行引擎可能会执行元数据操作,比如DDL语句等。
8、取回结果:执行引擎从datanode接收结果。
9、发送结果:执行引擎向驱动程序发送合成的结果值。
10、发送结果:驱动程序向Hive接口(CLI或Web UI)发送结果。
1、Antlr定义SQL的语法规则,完成SQL词法,语法解析,将SQL转化成抽象语法树AST Tree。
2、遍历AST Tree,抽象出查询的基本组成单元Query Block。
3、遍历Query Block,编译为执行操作数OperatorTree。
4、逻辑层优化器进行OperatorTree变换,合并不必要的ReduceSinkOperator,减少shuffle数据量。
5、遍历OperatorTree,编译成MapReduce任务。
6、物理层优化器进行MapReduce任务的变换,生成最终执行计划。
内部表:当删除内部表时,Hive也会删除这个表中的数据,内部表不适合与其它工具共享数据。
外部表:删除该表并不会删除原始数据,删除的只是该表的元数据信息。
维度表:存放的数据是对事实的各个方面描述,比如时间维度等。维度表只能是事实表的一个分析角度。
事实表:事实表就是通过各种维度和一些指标值组合确定的一个事实。
实体表:实体表就是一个实际对象的表,存放的数据一定是一条条客观存在的事物数据。
1、Sort By:分区内有序。
2、Order By:全局排序,只有一个Reduce。
3、Distrbute By:类似MR中的Partition,进行分区,结合sort by使用。
4、Cluster By:当distrbute by和sort by字段相同时,可以使用cluster by方式,Cluster By同时具备distrbute by和sort by,但排序只能是升序,不能指定排序规则为asc或desc。
udf:读入一行数据,写出一行数据。一对一
udtf:读入一行数据,写出多行数据。一对多
udaf:聚合函数,读入多行数据,写出一行数据。多对一
1、MapJoin
2、行列过滤
3、采用分桶技术
4、采用分区技术
5、合理设置Map数
6、小文件合并
7、合理设置Reduce数
8、常用参数
// 输出合并小文件
SET hive.merge.mapfiles = true; -- 默认true,在map-only任务结束时合并小文件
SET hive.merge.mapredfiles = true; -- 默认false,在map-reduce任务结束时合并小文件
SET hive.merge.size.per.task = 268435456; -- 默认256M
SET hive.merge.smallfiles.avgsize = 16777216; -- 当输出文件的平均大小小于该值时,启动一个独立的map-reduce任务进行文件merge
星型模型:星型模型的维度只有一层。
雪花模型:雪花模型的维度可能会有多层。
星座模型:基于多个事实表。星座模型与前两个没有冲突。
dwd层(数据明细层)
dws层(数据汇聚层)
kpi层(数据应用层)
根据用户需求,通过分析抽取概念性的要素,确立实体、属性、联系三要素等,使用E-R图表示。
概念数据模型的目标是统一业务概念,作为业务人员和技术人员之间沟通的桥梁,确定不同实体之间的最高层次的关系。
内容包含:
1、实体与实体之间的关系。(无需定义主键与属性)
2、确定不同实体间的层次关系。
逻辑模型是将概念模型转化为具体的数据模型的过程,根据概念模型设计的E-R图转成相对应的逻辑模型,这种转换要符合关系数据模型的原则。
将概念模型细分成所需的具体的功能,需要处理的信息。
根据逻辑模型对应到具体的数据模型的机器实现。
物理模型是对真实数据库的描述。如关系数据库中的一些对象为表、视图、字段、数据类型、长度、主键、外键、索引、约束、是否可为空、默认值。
物理数据模型是在逻辑数据模型的基础上,考虑各种具体的技术实现因素,进行数据库体系结构设计,真正实现数据在数据库中的存放。
原文链接:https://blog.csdn.net/qq1021979964/article/details/109264739
作者:woshidakeai
链接:http://www.pythonpdf.com/blog/article/401/c341dcf77ce2f6660fb2/
来源:编程知识网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!