Hive入门(二)

Hive入门(二)

Hive的体系结构

○ Hive的元数据

  • Hive将元数据存储在数据库中(metastore),支持mysql、derby、oracle等数据库,Hive默认是derby数据库
  • Hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等

○ HQL的执行过程

  • 解释器、编译器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划(Plan)的生成。生成的查询计划存储在HDFS中,并在随后有MapReduce调用执行

详细过程:

  1. HQL——select
  2. 解析器——词法分析
  3. 编译器——生成HQL的执行计划(javac java –> .class)
  4. 优化器——生成最佳的执行计划
  5. 执行

设我们有一个员工信息表,进入到oracle:

SQL> ——查询10号部门的员工信息
SQL> explain plan for select * from emp where deptno=10:

已解释。

SQL> ——查看该select的执行计划
SQL> select * from table(dbms_xplan.display):

执行全表扫描,当然全表扫描的代价相对要高一些

下面将对部门号建立索引

SQL> creaete index myindex on emp(deptno):

索引已创建。

SQL> explain plan for select * from emp where deptno=10:

已解释。

SQL> select * from table(dbms_xplan.display):

这事就是基于索引的扫描,对于全表扫描更加快速

对于Hive跟oracle是差不多的


所以:

○ hadoop

  • 用HDFS进行存储,利用MapReduce进行计算

○ 元数据存储(MetaStore)

  • 通常是存储在关系数据库如mysql、derby中

最新文章

  1. 百度sdk定位不成功,关闭定位
  2. intelliJ idea debug模式下启动慢的原因
  3. C#函数式编程
  4. 【CodeForces 616D】Longest k-Good Segment
  5. PDO讲解
  6. log4j.properties详解与例子
  7. vector 之 find 重载
  8. C++ 完美破解九宫格(数独)游戏
  9. class 类(1)
  10. JavaScript闭包的深入理解
  11. gitlab安装备忘录
  12. shell实现centos7双网卡修改网卡名eth0,eth1,并设置网络
  13. php curl cookie 读写
  14. maven详细配置
  15. Java中在java.sql.Date的系统时间上加上30天并写入oracle
  16. 面试题----实现memcpy
  17. PHP生产二维码
  18. [转]Redis 数据类型
  19. web应用中幂等性的学习
  20. Oracle数据库学习笔记(一)

热门文章

  1. 第一个关于ajax的代码
  2. Sublime Text 3 无法使用package control安装插件解决办法
  3. Sublime 学习记录(四) Alignment 插件
  4. 标准C++的vector使用
  5. typedef用法总结。
  6. Git教程--Git安装和版本库的创建
  7. Python之路第五天,基础(6)-模块
  8. Asp.net MVC1 学习1
  9. 为什么国外程序员爱用苹果 Mac 电脑?
  10. 【IOS】在SDK中打开其他接入应用的解决方案