Hive个人心得笔记之数据库和数据仓库 青旅半醒 2021-12-14 08:51 697阅读 0赞 # Hive个人心得笔记之数据库和数据仓库 # # 一、数据仓库和数据库对比 # <table> <tbody> <tr> <td style="border-color:#a3a3a3;vertical-align:top;width:4.1708in;"> <p style="margin-left:0in;"><span style="color:#FFFFFF;">数据库</span></p> </td> <td style="border-color:#a3a3a3;vertical-align:top;width:3.6194in;"> <p style="margin-left:0in;"><span style="color:#FFFFFF;">数据仓库</span></p> </td> </tr> <tr> <td style="border-color:#a3a3a3;vertical-align:top;width:4.1708in;"> <p style="margin-left:0in;">为线上系统提供实时数据</p> </td> <td style="border-color:#a3a3a3;vertical-align:top;width:3.6194in;"> <p style="margin-left:0in;">为离线分析存储历史数据</p> </td> </tr> <tr> <td style="border-color:#a3a3a3;vertical-align:top;width:4.1708in;"> <p style="margin-left:0in;">具有完整的增删改查的能力</p> </td> <td style="border-color:#a3a3a3;vertical-align:top;width:3.6194in;"> <p style="margin-left:0in;">只支持一次写入多次查询,不支持行级别的增删改</p> </td> </tr> <tr> <td style="border-color:#a3a3a3;vertical-align:top;width:4.1708in;"> <p style="margin-left:0in;">具有完整的事务能力</p> </td> <td style="border-color:#a3a3a3;vertical-align:top;width:3.6194in;"> <p style="margin-left:0in;">不强调事务的特性</p> </td> </tr> <tr> <td style="border-color:#a3a3a3;vertical-align:top;width:4.1708in;"> <p style="margin-left:0in;">尽量的避免冗余 提高存储 和处理的效率</p> </td> <td style="border-color:#a3a3a3;vertical-align:top;width:3.6194in;"> <p style="margin-left:0in;">人为的制造冗余 提高查询的效率</p> </td> </tr> <tr> <td style="border-color:#a3a3a3;vertical-align:top;width:4.1708in;"> <p style="margin-left:0in;">数据来源单一</p> </td> <td style="border-color:#a3a3a3;vertical-align:top;width:3.6194in;"> <p style="margin-left:0in;">数据来源多样</p> </td> </tr> </tbody> </table> # 二、OLTP和OLAP对比 # 1. 数据库属于OLTP系统(Online **Transaction** Processing)联机事务**处理**系统。涵盖了企业大部分的日常操作,如购物、库存、制造、银行、工资、注册、记账等。比如Mysql,oracle等关系型数据库;数据仓库属于OLAP系统。(Online **Analytical** Processing)联机**分析**处理系统。Hive,Hbase等 2. OLTP是面向用户的、用于程序员的事务处理以及客户的查询处理;OLAP是面向市场的,用于知识工人(经理、主管和数据分析人员)的数据分析 3. OLAP通常会集成多个异构数据源的数据,数量巨大;OLTP系统的访问由于要保证原子性,所以有事务机制和恢复机制 4. OLAP系统一般存储的是历史数据,所以大部分都是只读操作,不需要事务;OLTP系统具有较强的事务 # 三.体系结构 # ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xpdVk1MjE_size_16_color_FFFFFF_t_70][] ## **1.用户接口主要有三个:CLI,****JDBC** **和 WUI** ## 1. CLI,最常用的模式。实际上在>hive 命令行下操作时,就是利用CLI用户接口 2. JDBC,通过java代码操作,需要启动hiveserver,然后连接操作 ## **2.Metastore** ## **Hive将元数据存储在数据库中,如mysql、derby。Hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等** ## **3.解释器****(complier)****、优化器****(****optimizer****)、执行器(executor)组件** ## 这三个组件用于:HQL语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在HDFS中,并在随后有MapReduce调用执行 ## **4.Hadoop** ## Hive的数据存储在HDFS中,大部分的查询、计算由MapReduce完成 # 四.执行流程 # ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xpdVk1MjE_size_16_color_FFFFFF_t_70 1][] 1. 通过客户端提交一条Hql语句 2. 通过complier(编译组件)对Hql进行词法分析、语法分析。在这一步,编译器要知道此hql语句到底要操作哪张表 3. 去元数据库找表信息 4. 得到信息 5. complier编译器提交Hql语句分析方案 6. 执行流程 1. executor 执行器收到方案后,执行方案(DDL过程)。在这里注意,执行器在执行方案时,会进行判断:如果当前方案不涉及到MR组件,比如为表添加分区信息、比如字符串操作等,比如简单的查询操作等,此时就会直接和元数据库交互,然后去HDFS上去找具体数据;如果方案需要转换成MR job,则会将job 提交给Hadoop的JobTracker 2. MR job完成,并且将运行结果写入到HDFS上 3. 执行器和HDFS交互,获取结果文件信息 7. 如果客户端提交Hql语句是带有查询结果性的,则会发生:7-8-9步,完成结果的查询。 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xpdVk1MjE_size_16_color_FFFFFF_t_70]: /images/20211214/53b00d63e99e43dcb40d476905135642.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xpdVk1MjE_size_16_color_FFFFFF_t_70 1]: /images/20211214/df7d7dff36e9488eb579937dbd866c65.png
相关 Hive个人心得笔记之数据库和数据仓库 Hive个人心得笔记之数据库和数据仓库 一、数据仓库和数据库对比 <table> <tbody> <tr> <td 青旅半醒/ 2021年12月14日 08:51/ 0 赞/ 698 阅读
相关 Hive个人心得笔记之基础指令 Hive个人心得笔记之基础指令 -------------------- 一.基础指令 desc 川长思鸟来/ 2021年12月14日 06:21/ 0 赞/ 347 阅读
相关 Hive个人心得笔记之Hive优化 Hive个人心得笔记之Hive优化 一.Hive的优化 Hive的优化 1. 小表缓存:将小表的放入内存 悠悠/ 2021年12月11日 23:49/ 0 赞/ 429 阅读
相关 Hive个人心得笔记之内置函数、UDF Hive个人心得笔记之内置函数 目录 Hive个人心得笔记之内置函数 一.内置函数 淩亂°似流年/ 2021年12月11日 23:15/ 0 赞/ 624 阅读
相关 Hive个人心得笔记之表结构,数据类型,join Hive个人心得笔记之表结构,数据类型,join 目录 Hive个人心得笔记之表结构,数据类型 叁歲伎倆/ 2021年12月11日 22:55/ 0 赞/ 397 阅读
还没有评论,来说两句吧...