目录
一、数据仓库
分析型处理(数据仓库),叫联机分析处理OLAP,也可以称为面向专业分析 人员进行数据分析,通常进行查询分析操作,一般针对某些主题的历史数据进行分析,支持管理决策。
操作型处理(数据库),叫联机事务处理OLTP,也可以称面向用户交易的 处理系统,它是针对具体业务在数据库联机的日常操区别作,通常进行增删改查操作。
数据库与数据仓库的区别
数据库是面向事务的设计,数据仓库是面向主题设计的。
数据库一般存储业务数据,数据仓库存储的一般是历史数据。
数据库是为捕获数据而设计,数据仓库是为分析数据而设计
数仓的分层架构
数据仓库架构可分为三层——源数据层、数据仓库层、数据应用层:
源数据层(ODS):此层数据无任何更改,直接沿用外围系统数据结构和数据, 不对外开放;为临时存储层,是接口数据的临时存储区域,为后一步的数据处理做准备。
数据仓库层(DW):也称为细节层,DW层的数据应该是一致的、准确的、干 净的数据,即对源系统数据进行了清洗(去除了杂质后的数据。
数据应用层(DA或APP):前端应用直接读取的数据源;根据报表、专题分析 需求而计算生成的数据。
ETL和ELT
ETL: 先从数据源池中抽取数据,数据保存在临时暂存数据库中(ODS)。然后执行转换操作,将数 据结构化并转换为适合目标数据仓库系统的形式,然后将结构化数据加载到数据仓库中进行分析。
ELT: 从数据源中抽取后立即加载。没有专门的临时数据库(ODS),这意味着数据会立即加载到单 一的集中存储库中,数据在数据仓库系统中直接进行转换,然后进行分析
二、数据库操作
• 创建数据库 create database if not exists 库名;
• 查看数据库详细信息 desc database 库名;
• 创建数据库并指定hdfs存储位置 create database 库名 location '路径'; 使用location关键字,可以指定数据库在HDFS的存储路径。
• 删除一个空数据库,如果数据库下面有数据表,那么就会报错 drop database myhive;
• 强制删除数据库,包含数据库下面的表一起删除 drop database myhive2 cascade;
三、数据表操作
1、表操作语法和数据类型
• EXTERNAL,创建外部表
• PARTITIONED BY, 分区表
• CLUSTERED BY,分桶表
• STORED AS,存储格式
• LOCATION,存储位置
2、外部表
1. 创建外部表语法: create external table [if not exists] 内部表名(
字段名 字段类型 , ...
)...;
2. 外部表类型: EXTERNAL_TABLE
3. 删除外部表效果: 仅仅是删除元数据(表的信息),不会删除数据本身
3、内部表
1. 创建内部表语法: create table [if not exists] 内部表名(
字段名 字段类型 , ...
)...;
2. 内部表类型: MANAGED_TABLE
3. 删除内部表效果: 直接删除元数据(metadata)及存储数据
4、查看/修改表
查看所有表: show tables;
查看建表语句: show create table 表名;
查看表结构信息: desc 表名;
查看表格式化信息: desc formatted 表名;
修改表名: alter table 旧表名 rename to 新表名;
修改表路径: alter table 表名 set location 'hdfs中存储路径'; 注意: 建议使用默认路径
修改表属性: alter table 表名 set tblproperties ('属性名'='属性值');注意: 经常用于内外部表切换
5、数据分隔符
创建hive基础表的时候,默认的数据间分隔符是:\001(^A)是一种特殊字符,是ASCII值 在Notepad++文本编辑器中是显示为SOH的。