一. 理解数据仓库和数据库的区别
操作型处理(数据库),叫联机事务处理OLTP(On-Line Transaction Processing),也可以称面向用户交易的处理系统,它是针对具体业务在数据库联机的日常操作,通常进行增删改查操作。用户较为关心操作的响应时间、数据的安全性、完整性和并发支持的用户数等问题。传统的数据库系统作为数据管理的主要手段,主要用于操作型处理。
分析型处理(数据仓库),叫联机分析处理OLAP(On-Line Analytical Processing),也可以称为面向专业分析人员进行数据分析,通常进行查询分析操作,一般针对某些主题的历史数据进行分析,支持管理决策。
(一)数仓和数据库的区别
数据库设计是尽量避免冗余,一般针对某一业务应用进行设计,比如一张简单的User表,记录用户名、密码等简单数据即可,符合业务应用,但是不符合分析。
数据仓库在设计是有意引入冗余,依照分析需求,分析维度、分析指标进行设计。
(二)数仓的分层架构
数据仓库架构可分为三层——源数据层、数据仓库层、数据应用层
(三)ETL和ELT
ETL:先从数据源池中抽取数据,数据保存在临时暂存数据库中(ODS)。然后执行转换操作,将数据结构化并转换为适合目标数据仓库系统的形式,然后将结构化数据加载到数据仓库中进行分析。
ELT:从数据源中抽取后立即加载。没有专门的临时数据库(ODS),这意味着数据会立即加载到单一的集中存储库中,数据在数据仓库系统中直接进行转换,然后进行分析
二.掌握内部表和外部表的区别
(一)表分类
Hive中可以创建的表有好几种类型,分别是:
•内部表(MANAGED_TABLE)
•分区表
•分桶表
•外部表(EXTERNAL_TABLE)
•分区表
•分桶表
(二)内部表区别?
删除内部表:直接删除元数据(metadata)及存储数据
删除外部表:仅仅是删除元数据(表的信息),不会删除数据本身
(三)查看,修改表
查看所有表:
show tables;
查看建表语句:
show create table 表名;
查看表结构信息:
desc 表名;
查看表格式化信息:
desc formatted 表名;
修改表操作
修改表名:
alter table 旧表名 rename to新表名;
修改表路径:
alter table 表名 set location 'hdfs中存储路径';
注意:建议使用默认路径
修改表属性:alter table 表名set tblproperties ('属性名'='属性值');