Hive基础小结

Hive基础小结


慕课网基础教程推荐:

数据仓库概念、特点:

数据仓库是一个面向主体的、集成的、不可更新的、随时间不断变化的数据集合,
它用于企业或组织的决策分析处理。

数据仓库结构和建立过程:

数据源(业务数据系统、文档资料、其他数据)--> 抽取(Extract)、转换(Transform)、装载(Load)--> 数据仓库引擎(服务器)--> 前端展示(查询、报表、分析、各类应用)

Hive概念:

  • 建立在HDFS之上的数据仓库。
  • 一个HDFS上的SQL引擎,将SQL查询语句转变为一个HDFS之上的Job,进行MapReduce运算。
  • 可以用来进行数据ETL。
  • Hive表其实就是HDFS的目录/文件。

Hive元数据:

  • Hive将元数据存储在数据库中(mysql、derby等)
  • 元数据包括表的名称,列和分区及其属性,表所在的HDFS下的目录等。

Hive访问接口:

  • CLI
  • JDBC/ODBC
  • Web Console

HQL执行过程:

  1. 解释器:词法分析
  2. 编译器:生成HQL的执行计划
  3. 优化器:生成最佳执行计划(MapReduce)
  4. 执行

Hive基本数据类型:

基本数据类型:

  • tiny/smallint/int/bigint
  • float/double
  • boolean
  • string

复杂数据类型(可嵌套):

  • Array(exm: array< float >)
  • Map(exm: map< string, string >)
  • Struct(exm: struct< name:string, age:int, sex:string >)

时间类型:

  • Date(Since Hive0.12.0)
  • Timestamp(Since Hive0.8.0)

Hive表:

默认使用逗号(,)分隔符

  • 内部表:可用查询语句配合as创建内部表
  • 分区表:
通过条件将表分区:
# 根据gender分表
create table patition_t
(sid int, sname string, gender string)
patitioned by (gender string)
row format delimited fields terminated by ',';

# 插入一条数据
insert into patition_t patition(gender='M') select sid, sname from sample_data where gender='M';
  • 外部表:指向已经在HDFS中存在的数据,可以创建Patition;外部表只是一个过程,并不会移动到数据仓库目录中,只是与外部数据建立一个链接。借助location关键字建立外部表。
  • 桶表:对数据进行哈希取值,然后放到不同文件中存储。建表语句:create….clustered by([property]) into [n] buckets。
  • 视图:虚表,与一般关系型数据库的视图概念相似。
#创建视图
create view my_view
as
select ...

关系型数据库可以物化视图,而Hive不可以。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值