当前位置: 首页>大数据>正文

Hive知识

一、数据仓库和数据库

数仓和数据库的区别别实际讲的是OLTP与OLAP的区别

操作型处理(数据库),叫联机事务处理OLTP(On-Line Transaction Processing),也可以称面向用户交易的 处理系统,它是针对具体业务在数据库联机的日常操作,通常进行增删改查操作。

分析型处理(数据仓库),叫联机分析处理OLAP(On-Line Analytical Processing),也可以称为面向专业分析 人员进行数据分析,通常进行查询分析操作,一般针对某些主题的历史数据进行分析,支持管理决策。

数据仓库主要特征: 面向主题的(Subject-Oriented )、集成的(Integrated)、非易失的(Non-Volatile)和时变的(Time-Variant )

数据库是面向事务的设计,数据仓库是面向主题设计的。 数据库一般存储业务数据,数据仓库存储的一般是历史数据。 数据库是为捕获数据而设计,数据仓库是为分析数据而设计 数据库设计是尽量避免冗余,一般针对某一业务应用进行设计,比如一张简单的User表,记录用户名、密码等简单 数据即可,符合业务应用,但是不符合分析。

二、数仓的分层架构

源数据层(ODS)为临时存储层为后一步的数据处理做 准备

数据仓库层(DW)也称为细节层,对源系统数据进行了清洗(去除了杂质)后的数据

数据应用层(DA或APP)

数据仓库从各数据源获取数据及在数据仓库内的数据转换和流动都可以认为是ETL(抽取Extract, 转 化Transform , 装载Load)的过程。

但是在实际操作中将数据加载到仓库却产生了两种不同做法:ETL和ELT。

ETL: 先从数据源池中抽取数据,数据保存在临时暂存数据库中(ODS)。然后执行转换操作,将数 据结构化并转换为适合目标数据仓库系统的形式,然后将结构化数据加载到数据仓库中进行分析。

ELT: 从数据源中抽取后立即加载。没有专门的临时数据库(ODS),这意味着数据会立即加载到单 一的集中存储库中,数据在数据仓库系统中直接进行转换,然后进行分析。

三、数据库操作

• 创建数据库

create database if not exists myhive;

use myhive;

• 查看数据库详细信息

desc database myhive;

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

create database myhive2 location '/myhive2';

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

drop database myhive;

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

drop database myhive2 cascade;

3. 数据库和HDFS的关系 :

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

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

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

创建数据库表语法:

• EXTERNAL,创建外部表

• PARTITIONED BY, 分区表

• CLUSTERED BY,分桶表

• STORED AS,存储格式

• LOCATION,存储位置

Hive表的类型

 内部表(MANAGED_TABLE) 有分区表和分桶表

外部表(EXTERNAL_TABLE) 有分区表 和分桶表 

内部表区别 :删除内部表:直接删除元数据(metadata)及存储数据 删除外部表:仅仅是删除元数据(表的信息),不会删除数据本身。


https://www.xamrdz.com/bigdata/7gx1933387.html

相关文章: