目录
一、数据仓库和数据库
1.数仓和数据库的区别
数据库与数据仓库的区别实际讲的是OLTP与OLAP的区别
操作型处理(数据库),叫联机事务处理OLTP(On-Line Transaction Processing),也可以称面向用户交易的处理系统,它是针对具体业务在数据库联机的日常操作,通常进行增删改查操作。用户较为关心操作的响应时间、数据的安全性、完整性和并发支持的用户数等问题。传统的数据库系统作为数据管理的主要手段,主要用于操作型处理。
分析型处理(数据仓库),叫联机分析处理OLAP(On-Line Analytical Processing)
,也可以称为面向专业分析人员进行数据分析,通常进行查询分析操作,一般针对某些主题的历史数据进行分析,支持管理决策。
数据仓库,是在数据库已经大量存在的情况下,为了进一步挖掘数据资源、为了决策需要而产生的。数据仓库的出现,并不是要取代数据库,主要区别如下:数据库是面向事务的设计,数据仓库是面向主题设计的。数据库一般存储业务数据,数据仓库存储的一般是历史数据。数据库是为捕获数据而设计,数据仓库是为分析数据而设计数据库设计是尽量避免冗余,一般针对某一业务应用进行设计,比如一张简单的User表,记录用户名、密码等简单数据即可,符合业务应用,但是不符合分析。数据仓库在设计是有意引入冗余,依照分析需求,分析维度、分析指标进行设计。
2.数据仓库架构可分为三层——源数据层、数据仓库层、数据应用层:
源数据层(ODS):此层数据无任何更改,直接沿用外围系统数据结构和数据,不对外开放;为临时存储层,是接口数据的临时存储区域,为后一步的数据处理做准备。
数据仓库层(DW):也称为细节层,DW层的数据应该是一致的、准确的、干净的数据,即对源系统数据进行了清洗(去除了杂质)后的数据。
数据应用层(DA或APP):前端应用直接读取的数据源;根据报表、专题分析需求而计算生成的数据。
二、数据库操作
1.创建库的语法为
CREATE DATABASE [IF NOT EXISTS] db_name [LOCATION position];
2.删除库的语法为
DROP DATABASE db_name [CASCADE];
3.数据库和HDFS的关系
•Hive的库在HDFS上就是一个以.db结尾的目录
•默认存储在:/user/hive/warehouse内
•可以通过LOCATION关键字在创建的时候指定存储目录
三、数据查询
1. Hive表的类型?
•内部表(MANAGED_TABLE)
•分区表
•分桶表
•外部表(EXTERNAL_TABLE)
•分区表
•分桶表
2.内部表区别?
删除内部表:直接删除元数据(metadata)及存储数据
删除外部表:仅仅是删除元数据(表的信息),不会删除数据本身
3.创建内部表语法?
create table [if not exists]内部表名(
字段名字段类型, ...
)...;
4.内部表类型?
MANAGED_TABLE
5.删除内部表效果?
直接删除元数据(metadata)及存储数据
6.查看建表语句的语法?
show create table表名;
7.内部表转外部表alter table stu set tblproperties('EXTERNAL'='TRUE');
8.外部表转内部表alter table stu set tblproperties('EXTERNAL'='FALSE');