Hive的实操

本文探讨了数仓(数据仓库)与数据库在设计目的、操作特性、分层架构以及Hive工具的应用,包括ETL与ELT方法、数据加载和导出的SQL语法,以及Hive表的创建、修改和数据处理过程。
摘要由CSDN通过智能技术生成

1.数仓和数据库的区别

操作型处理(数据库),它是针对具体业务在数据库联机的日常操作,通常进行增删改查操作。

分析型处理(数据仓库),通常进行查询分析操作,一般针对某些主题的历史数据进行分析,支持管理决策。

数据仓库主要特征:

面向主题的(Subject-Oriented)       集成的(Integrated)

非易失的(Non-Volatile)            时变的(Time-Variant )

●数据库是面向事务的设计,数据仓库是面向主题设计的。

●数据库一般存储业务数据,数据仓库存储的一般是历史数据。

●数据库是为捕获数据而设计,数据仓库是为分析数据而设计

●数据库设计是尽量避免冗余 ,数据仓库在设计是有意引入冗余,依照分析需求,分析维度、分析指标进行设计。

2.数仓的分层架构

(1)源数据层(2)数据仓库层(3)数据应用层才培训专家

3.ETL和ELT

ETL: 先从数据源池中抽取数据,数据保存在临时暂存数据库中(ODS)。然后执行转换操作,将数

据结构化并转换为适合目标数据仓库系统的形式,然后将结构化数据加载到数据仓库中进行分析。

ELT: 从数据源中抽取后立即加载。没有专门的临时数据库(ODS),这意味着数据会立即加载到单

一的集中存储库中,数据在数据仓库系统中直接进行转换,然后进行分析

4.数据库操作

• 创建数据库

create database if not exists myhive;

use myhive;

• 查看数据库详细信

desc database myhive;

• 创建数据库并指定hdfs存储位置

create database myhive2 location '/myhive2';

• 删除一个空数据库,如果数据库下面有数据表,那么就会报错

drop database myhive;

• 强制删除数据库,包含数据库下面的表一起删除

drop database myhive2 cascade;

5.数据库和HDFS的关系

• Hive的库在HDFS上就是一个以.db结尾的目录

• 默认存储在:/user/hive/warehouse

• 可以通过LOCATION关键字在创建的时候指定存储目录

5.创建数据库表语法

• EXTERNAL,创建外部表

• PARTITIONED BY, 分区表

• CLUSTERED BY,分桶表

• STORED AS,存储格式

• LOCATION,存储位置

6.内部表和外部表

内部表( CREATE TABLE table_name ...
删除内部表: 直接删除元数据和存储的业务数据

创建内部表:

create table [if not exists] 内部表名(
字段名 字段类型 , ...
)...;
复制内部表:
复制表结构:
CREATE TABLE 表名 like 存在的表名;
复制表结构和数据: CREATE TABLE 表名 as select语句;
删除内部表: drop table 内部表名;
查看表格式化信息: desc formatted 表名;
truncate清空内部表数据: truncate table 内部表名;
外部表( CREATE EXTERNAL TABLE table_name ...
删除外部表: 仅仅是删除元数据,存储的业务数据并不会被删除
创建外部表:
create external table [if not exists] 内部表名(
字段名 字段类型 , ...
)...;
复制外部表:
复制表结构: CREATE EXTERNAL TABLE 表名 like 存在的表名;
删除外部表: drop table 外部表名;
查看表格式化信息: desc formatted 表名;
7. 查看表操作
查看所有表 :
show tables;
查看建表语句 :
show create table 表名 ;
查看表结构信息 :
desc 表名 ;
查看表格式化信息 :
desc formatted 表名;
8. 修改表操作
修改表名 :
alter table 旧表名 rename to 新表名 ;
修改表路径 :
alter table 表名 set location 'hdfs 中存储路径 ';
修改表属性 :
alter table 表名 set tblproperties (' 属性名 '=' 属性值 ');
内外部表转换
内部表转外部表
alter table stu set tblproperties('EXTERNAL'='TRUE');
外部表转内部表
alter table stu set tblproperties('EXTERNAL'='FALSE');
通过stu set tblproperties来修改属性
9.Hive
Hive映射表的流程步骤
创建表
加载数据
验证数据
Hive表指定字段间分隔符的语法
  row format delimited fields terminated by '分隔符'
 Hive表中加载数据的语法
  load data [local] inpath '数据文件路径' into table 表名;
10.数据加载和导出
加载数据的语法
• LOAD DATA [ LOCAL ] INPATH 'filepath' [ OVERWRITE ] INTO TABLE 表名 ;
• INSERT INTO|OVERWRITE TABLE 表名 SELECT...
导出数据的语法
• INSERT OVERWRITE [local] directory ‘ path [format delimited] SELECT...;
• hive -f/-e 执行语句或者脚本 > 文件名
  • 33
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值