hive初探

hive

  • 数据仓库,OLAP,分析处理,存储和分析,延迟较高,不支持事务,不支持删除更新
  • 数据库,OLTP,在线事物处理,低延迟,事务支持
  • 运行在hadoop之上,类SQL方法方式运行,(HQL)
  • 操纵结构化数据
  • schema(模式,元信息存放到数据库中),HDFS文件,默认存储在derby,也支持外置存放mysql
  • 数据库和表都是路径

hive_01

RDBMS

  • Relation Database Management System,关系型数据库管理系统。

  • 简称:数据库

  • OLTP: online transaction process.[在线事物处理]

  • 要求延迟很小 ,低延迟

  • a.原子性

  • c.一致性

  • i.隔离性

  • f.永久性

hive_02

hive


  • 数据仓库,OLAP,分析处理,存储和分析,延迟较高,不支持事务,不支持删除更新
  • 数据库,OLTP,在线事物处理,低延迟,事务支持
  • 运行在hadoop之上,类SQL方法方式运行,(HQL)
  • 操纵结构化数据
  • schema(模式,元信息存放到数据库中),HDFS文件,默认存储在derby,也支持外置存放mysql
  • 数据库和表都是路径


配置HIVE
1. conf/hive-env.sh
HADOOP_HOME= //不配也可以
2. conf/hive-site.xml
${system:java.io.tmpdir} //配置本地临时目录

$>schematool -initSchema -dbType derby //初始化模式

hive_03

创建分区表

1
2
3
4
5
6
create external table hive1.test2(id int ,name string , age int)
partitioned by(province string , city string)
row format delimted
fields terminated by '\t'
lines terminated by '\n'
store as textfile ;

hive_04

Hive

    1. 内部表
      • 数据生命周期
    1. 外部表
      • 删除外部表,并没有删除数据,删掉了schema(rdbms)
    1. 分区表
      • 表目录的子目录
      • create table xxx(…) partitioned by ()
      • alter table add partitions () ..
      • load data local inpath … into table xxx partition (…)
    1. bucket表
      • create table xxx(…) clustered by (fieldName) into n BUCKETS
      • 数据文件.hash

调优


    1. explain
    • 解释执行计划
      1
      explain select sum(*) from
    1. 启用limit调优,避免全表扫描,使用抽样机制
    • select * from xxx limit 1,2
    • hive.limit.optimize.enable=true