数据库与数据仓库
数据库是结构化信息或数据的有序集合,一般以电子形式存储在计算机系统中。通常由数据库管理系统 (DBMS) 来控制。它是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据库中的数据按一定的数学模型组织、描述和存储,具有较小的冗余,较高的数据独立性和易扩展性,并可为各种用户共享。
数据仓库是一种面向商务智能 (BI) 活动(尤其是分析)的数据管理系统,它仅适用于查询和分析,通常涉及大量的历史数据。数据仓库是一个面向主题的(subject oriented)、集成的(integrate)、相对稳定的(non-volatile)、反映历史变化(time variant)的数据集合,用于支持管理决策。
数据仓库在许多行业都有广泛的应用场景。
数据库与数据仓库的区别
数据仓库,是在数据库已经大量存在的情况下,为了进一步挖掘数据资源、为了决策需要而产生的。数据仓库的出现,并不是要取代数据库,主要区别如下:数据库是面向事务的设计,数据仓库是面向主题设计的。数据库一般存储业务数据,数据仓库存储的一般是历史数据。数据库是为捕获数据而设计,数据仓库是为分析数据而设计数据库设计是尽量避免冗余,一般针对某一业务应用进行设计,比如一张简单的User表,记录用户名、密码等简单数据即可,符合业务应用,但是不符合分析。数据仓库在设计是有意引入冗余,依照分析需求,分析维度、分析指标进行设计。
数仓的分层架构
数据仓库架构可分为三层:源数据层、数据仓库层、数据应用层
源数据层(ODS):此层数据无任何更改,直接沿用外围系统数据结构和数据,不对外开放;为临时存储层,是接口数据的临时存储区域,为后一步的数据处理做准备。
数据仓库层(DW):也称为细节层,DW层的数据应该是一致的、准确的、干净的数据,即对源系统数据进行了清洗(去除了杂质)后的数据。
数据应用层(DA或APP):前端应用直接读取的数据源;根据报表、专题分析需求而计算生成的数据。
数据库操作
•创建数据库create database if not exists myhive;usemyhive;
•查看数据库详细信息descdatabasemyhive;数据库本质上就是在HDFS之上的文件夹。默认数据库的存放路径是HDFS的:/user/hive/warehouse内
•创建数据库并指定hdfs存储位置create database myhive2 location '/myhive2';使用location关键字,可以指定数据库在HDFS的存储路径。
•删除一个空数据库,如果数据库下面有数据表,那么就会报错dropdatabasemyhive;
•强制删除数据库,包含数据库下面的表一起删除dropdatabasemyhive2cascade;
内部表与外部表
•内部表(CREATE TABLE table_name ...)未被external关键字修饰的即是内部表,内部表又称管理表或者托管表。删除内部表:直接删除元数据和存储的业务数据
•外部表(CREATE EXTERNAL TABLE table_name ...)被external关键字修饰的即是外部表,外部表又称非管理表或者非托管表。删除外部表:仅仅是删除元数据,存储的业务数据并不会被删除