Hive基础与编程

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

把信息化打造成为中国电信企业核心竞争力之一
企业信息化部
主题二:Hive开发工具
命令行接口方式 Web接口方式 Thrift Server方式
把信息化打造成为中国电信企业核心竞争力之一
企业信息化部
主题二:Hive开发工具
命令行接口方式
示例 HQL语句:'select a.acc_nbr from tb_mid_serv_day a' $HIVE_HOME/bin/hive -e 'select a.acc_nbr from tb_mid_serv_day a‘ 使用静音模式执行HQL $HIVE_HOME/bin/hive -S -e 'select a.col from tab1 a'
把信息化打造成为中国电信企业核心竞争力之一
企业信息化部
主题三:Hive的表
创建Hive表实例
创建普通表实例 create table normal_table ( col1 string, col2 string col3 string);
创建外部表实例 create external table external_table ( col1 string, col2 string col3 string);
分区 执行延迟
可扩展性 数据规模 数据检查
支持 高
高 大 读时模式
支持 低
低 小 写时模式
把信息化打造成为中国电信企业核心竞争力之一
企业信息化部
主题一:Hive简介
Hive架构
主要分为以下几个部分: 用户接口 主要有三个:CLI,Client 和 WUI
元数据存储 Hive 将元数据存储在数据库中,如 oracle、mysql、derby等 解释器、编译器、优化器、执行器 完成 HQL 查询语句从词法分析、语 法分析、编译、优化以及查询计划的 生成 Hadoop Hive 的数据存储在 HDFS 中,大部 分的查询由 MapReduce 完成
把信息化打造成为中国电信企业核心竞争力之一
企业信息化部
主题六:Hive编程
DDL操作
建分区表
CREATE TABLE partition_table( ID INT, CUST_NAME STRING, AGE STRING, SEX STRING, ADDRESS STRING) PARTITIONED BY(DAYID STRING, LANCODE STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
Hive里的表有两种类型一种叫普通表,一种叫外部表。
普通表与外部表的区别: (1)创建外部表的时候table之前要加关键字external (2)在做drop操作时(drop是hive删除表的命令),普通表执行drop命令的时候,会 删除元数据和存储的数据,而外部表执行drop命令时候只删除元数据库里的数据,而不会 删除存储的数据。
把信息化打造成为中国电信企业核心竞争力之一
企业信息化部
主题五:Hive分区
Hive分区使用说明
在其他数据库中,一般向分区表中插入数据时系统会校验数据是否符合该分区,如果不符 合会报错。而在hive中,向某个分区中插入什么样的数据完全是由人来控制的,因为分区 键是伪列,不实际存储在文件中。
如果需要创建有分区的表,需要在create表的时候调用可选参数partitioned by
把信息化打造成为中国电信企业核心竞争力之一
企业信息化部
主题一:Hive简介
Hive与传统数据库的异同
查询语言 数据存储位置 数据格式 数据更新 索引 执行 HQL HDFS 用户定义 不支持 有 MapReduce SQL Raw Device(裸设备)或 者Local FS 系统决定 支持 有 Executor
把信息化打造成为中国电信企业核心竞争力之一
企业信息化部
主题六:Hive编程
DDL操作
复制一个空表
CREATE TABLE empty_cust_rep LIKE cust_rep;
把信息化打造成为中国电信企业核心竞争力之一
企业信息化部
主题四:Hive的元数据
Hive元数据组织结构
表名
TBLS
说明
所有hive表的基本信息
关联键
TBL_ID,SD_ID
TABLE_PARAM
COLUMNS SDS SERDE_PARAM PARTITIONS PARTITION_KEYS PARTITION_KEY_VALS
把信息化打造成为中国电信企业核心竞争力之一
企业信息化部
主题一:Hive简介
Hive是什么?
Hive是基于Hadoop的一个数据仓库工具;
使用hadoop-hdfs作为数据存储层;
通过hadoop-mapreduce完成数据计算,提供类似SQL的语言(HQL); 通过HQL语言提供使用者部分传统RDBMS一样的表格查询特性和分布式存储计算特性; 其优点是学习成本低,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
DML操作
(1)向数据表内加载文件 (2)将查询结果插入到Hive表中
Hive的SELECT操作
(1)基本的SELECT操作 (2)基于PARTITION的查询
把信息化打造成为中国电信企业核心竞争力之一
企业信息化部
主题六:Hive编程
DDL操作
建表
CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] [CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS] [ROW FORMAT row_format] [STORED AS file_format] [LOCATION hdfs_path]
把信息化打造成为中国电信企业核心竞争力之一
企业信息化部
主题六:Hive编程
DDL操作
创建外部表实例
CREATE EXTERNAL TABLE SERV_REP( ID INT, CUST_NAME STRING, SEX STRING, AGE STRING, ADDRESS STRING COMMENT ‘家庭住址‘ ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE;
把信息化打造成为中国电信企业核心竞争力之一
企业信息化部
主题二:Hive开发工具
Thrift Server方式
Toad For Cloud
Squirrle SQL
Cloudera Hue
Eclipse IDE
把信息化打造成为中国电信企业核心竞争力之一
企业信息化部
主题三:Hive的表
Hive表
hive的表逻辑上由存储的数据和描述表格中的数据形式的相关元数据组成。
把信息化打造成为中国电信企业核心竞争力之一
企业信息化部
主题五:Hive分区
Hive分区的概念
partition是hive提供的一种机制:用户通过指定一个或多个partition key,决定数据存放 方式,进而优化数据的查询。一个表可以指定多个partition key,每个partition在hive中 以文件夹的形式存在。
主题四:Hive的元数据
Hive元数据
Hive的数据分为表数据和元数据。
元数据的存储 Hive将元数据存储在RDBMS中,可以支持Derby,Mysql,Oracle,PostgreSQL,常用为 Derby和Mysql
数据库存储模式 有三种模式可以连接到数据库: 1)single User Mode 2)Multi User Mode 3)Remote Server Mode
把信息化打造成为中国电信企业核心竞争力之一
企业信息化部
主题一:Hive简介
Hive开发语言
Hive提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,通常 称之为:HQL
不支持: INSERT……VALUES、UPDATE和DELETE等操作 BEGIN、COMMIT和ROLLBACK等操作
把信息化打造成为中国电信企业核心竞争力之一
企业信息化部
主题一:Hive简介
Hive不是什么
Hive运算基于Hadoop的MapReduce模型,MapReduce不能保证低延迟。因此,hive 的查询也不能保证低延迟。 Hive的工作模式是:提交一个任务,等到任务结束时被通知,而不是实时查询。相对应 的是,类似于Oracle这样的系统当运行小数据集的时候,响应非常快,可当处理的数据 集非常大的时候,可能需要数小时。需要说明的是,hive即使在很小的数据集上运行,也 可能需要数分钟才能完成。 总之,低延迟不是hive追求的首要目标。Hive的设计目标是:可伸缩、可扩展、容错及 输入格式松耦合。
企业信息化部
主题五:Hive分区
Hive分区使用总结
1、减少查询操作处理的数据规模
2、优化查询、加快数据的检索速度
3、分区对应的就是表下的一个目录
把信息化打造成为中国电信企业核心竞争力之一
企业信息化部
主题六:Hive编程
HiveQL是什么
Hive 定义了简单的类 SQL 查询语言,称为 HQL,它允许熟悉 SQL 的用户查询数据。
HQL的特点: (1)帮助无MapReduce开发经验的数据分析人员,有能力处理大数据 (2)构建标准化的MapReduce开发过程
把信息化打造成为中国电信企业核心竞争力之一
企业信息化部
主题六:Hive编程
Hive基础操作
DDL操作
(1)建表:建立普通表,建立外部表,建立分区表,复制一个空表 (2)修改表结构:增加/删除分区,重命名表,修改列的名字、类型、位置、注释,增加/更新列 (3)删除表 (4)创建数据库 (5)创建/删除视图 (6)显示命令 :show tables; show databases; show partitions; show functions;
2014年中国电信大数据技术与应用培训
Hive基础与编程
江西电信大数据支撑团队 2014年06月
把信息化打造成为中国电信企业核心竞争力之一
企业信息化部
目录
1、Hive简介 2、Hive开发工具 3、Hive的表 4、Hive的元数据 5、Hive分区 6、Hive编程 7、HiveQL优化 8、HiveSQL与SQL的比较 9、Hive的用户自定义函数
表级属性,如是否外部表,表注释等
Hive表字段信息(字段注释,字段名,字段类型,字段序号) 所有hive表、表分区所对应的hdfs数据目录和数据格式 序列化反序列化信息,如行分隔符、列分隔符、NULL的表示字符等 Hive表分区信息 Hive分区表分区键 Hive来自百度文库分区名(键值)
TBL_ID
SD_ID SD_ID,SERDE_ID SERDE_ID PART_ID,SD_ID,TB L_ID TBL_ID PART_ID
分区表类型: 动态分区 静态分区
把信息化打造成为中国电信企业核心竞争力之一
企业信息化部
主题五:Hive分区
Hive分区适用场景
分区提供了一种便捷的方式去隔离数据和优化查询。
但是,并不是所有的数据集都适合去进行分区,需要根据适当的数据集大小合理的进行分 区。
把信息化打造成为中国电信企业核心竞争力之一
把信息化打造成为中国电信企业核心竞争力之一
企业信息化部
主题三:Hive的表
Hive中创建HBase外部表
Hive与HBase利用两者本身对外的API来实现整合。
Hive访问HBase中表数据,实质上是通过MapReduce读取HBase表数据。
把信息化打造成为中国电信企业核心竞争力之一
企业信息化部
把信息化打造成为中国电信企业核心竞争力之一
企业信息化部
主题二:Hive开发工具
Web接口方式
Hive的web界面:HWI HWI是Hive Web Interface的简称,是hive cli的一个web替换方案。
HWI与CLI对比的优缺点: 优点:HWI支持浏览器的方式浏览,方便直观。 缺点:无执行过程提示。
相关文档
最新文档