1数据仓库和数据库
操作型处理(数据库),叫联机事务处理OLTP(On-Line Transaction Processing),也可以称易处理系统,它是针对具体业务在数据库联机的日常操作,通常进行增删改查操作。用户较为关心操作的响应时间、数据的安全性、完整性和并发支持的用户数等问题。传统的数据库系统作为数据管理的主要手段,主要用于操作型处理。
分析型处理(数据仓库),叫联机分析处理OLAP(On-Line Analytical Processing),也可以称为面向专业分析人员进行数据分析,通常进行查询分析操作,一般针对某些主题的历史数据进行分析,支持管理决策。
数据仓库主要特征:面向主题的(Subject-Oriented)、集成的(ntegrated)、非易失的(Non-Volatile)和时变的(Time-Variant)
数仓和数据库的区别
数据仓库,是在数据库已经大量存在的情况下,为了进一步挖掘数据资源、为了决策需要而产的。数据仓库的出现,并不是要取代数据库,主要区别如下:数据库是面向事务的设计,数据仓库是面向主题设计的。数据库一般存储业务数据,数据仓库存储的一般是历史数据。数据库是为捕获数据而设计,数据仓库是为分析数据而设计数据库设计是尽量避免冗余,一般针对某一业务应用进行设计,比如一张简单的User表,记录用户名、密码等简单数据即可,符合业务应用,但是不符合分析。数据仓库在设计是有意引入冗余,依照分析需求,数仓的分层架构
数据仓库架构可分为三层——源数据层、数据仓库层、数据应用层:分析维度、分析指标进行设计
数仓的分层架构
数仓的分层架构源数据层(ODS):此层数据无任何更改,直接沿用外围系统数据结构和数据,不对外开放;为临时存储层,是接口数据的临时存储区域,为后一步的数据处理做准备。数据仓库层(DW):也称为细节层,DW层的数据应该是一致的、准确的、干净的数据,
即对源系统数据进行了清洗(去除了杂质)后的数据。数据应用层(DA或APP):前端应用直接读取的数据源;根据报表、专题分析需求而计算生成的数据。
2 数据库操作
创建数据库
create database if not exists myhive;
usemyhive
查看数据库详细信息
desc database myhive;
创建数据库并指定
hdfs
存储位置
create database myhive2 location '/myhive2';
使用location关键字,可以指定数据库在HDFS的存储路径。
•
删除一个空数据库,如果数据库下面有数据表,那么就会报错
dropdatabasemyhive;
•
强制删除数据库,包含数据库下面的表一起删除
dropdatabase myhive2 cascade;
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关键字在创建的时候指定存储目录
创建数据库表语法
EXTERNAL,创建外部表
•PARTITIONED BY,分区表•
CLUSTERED BY,分桶表•
STORED AS,存储格式•
LOCATION,存储位置
1. Hive表的类型?
内部表(MANAGED_TABLE)
•分区表
•分桶表
•外部表
(EXTERNAL_TABLE)
•分区表
•分桶表
2.内部表区别?删除内部表:直接删除元数据(metadata)及存储数据删除外部表:仅仅是删除元数据(表的信息),不会删除数据本身
内部表
创建内部表:create table [if not exists]内部表名(字段名字段类型, ...)...;复制内部表:复CREATE 制表结构:TABLE表名like存在的表名;
复制表结构和数据:CREATE TABLE表名as select语句;
删除内部表:drop table内部表名;
查看表格式化信息:desc formatted表名;
truncate清空内部表数据:truncate table内部表名;
外部表
创建外部表:create external table [if not exists]内部表名(字段名字段类型, ...)...;
复制外部表:复制表结构:CREATE EXTERNAL TABLE表名like存在的表名;
删除外部表:drop table外部表名;
查看表格式化信息:desc formatted表名;
注意:外部表不能使用truncate关键字清空数据