目录
一、数仓和数据库的区别
数据库与数据仓库的区别实际讲的是OLTP与OLAP的区别 操作型处理(数据库),叫联机事务处理OLTP(On-Line Transaction Processing),也可以称面向用户交易的 处理系统,它是针对具体业务在数据库联机的日常操作,通常进行增删改查操作。用户较为关心操作的响应时间、数 据的安全性、完整性和并发支持的用户数等问题。传统的数据库系统作为数据管理的主要手段,主要用于操作型处理.
分析型处理(数据仓库),叫联机分析处理OLAP(On-Line Analytical Processing),也可以称为面向专业分析 人员进行数据分析,通常进行查询分析操作,一般针对某些主题的历史数据进行分析,支持管理决策。
数据仓库主要特征: 面向主题的(Subject-Oriented )、集成的(Integrated)、非易失的(Non-Volatile)和时变的(Time-Variant )
主要区别如下: 数据库是面向事务的设计,数据仓库是面向主题设计的。 数据库一般存储业务数据,数据仓库存储的一般是历史数据。 数据库是为捕获数据而设计,数据仓库是为分析数据而设计 数据库设计是尽量避免冗余,一般针对某一业务应用进行设计,比如一张简单的User表,记录用户名、密码等简单 数据即可,符合业务应用,但是不符合分析。 数据仓库在设计是有意引入冗余,依照分析需求,分析维度、分析指标进行设计。
二、数仓的分层架构
数据仓库架构可分为三层——源数据层、数据仓库层、数据应用层:
源数据层(ODS):此层数据无任何更改,直接沿用外围系统数据结构和数据, 不对外开放;为临时存储层,是接口数据的临时存储区域,为后一步的数据处理做 准备。
数据仓库层(DW):也称为细节层,DW层的数据应该是一致的、准确的、干 净的数据,即对源系统数据进行了清洗(去除了杂质)后的数据。
数据应用层(DA或APP):前端应用直接读取的数据源;根据报表、专题分析 需求而计算生成的数据。
三、数据库和数据表操作
1. 创建库的语法
CREATE DATABASE [IF NOT EXISTS] db_name [LOCATION position];
2. 删除库的语法
DROP DATABASE db_name [CASCADE];
3. 创建表的语法
4. 数据类型
5. Hive表的类型?
内部表(MANAGED_TABLE) 分区表 分桶表
外部表(EXTERNAL_TABLE) 分区表 分桶表
(1)创建内部表:
create table [if not exists] 内部表名( 字段名 字段类型 , ... )...;
复制内部表: 复制表结构: CREATE TABLE 表名 like 存在的表名;
复制表结构和数据: CREATE TABLE 表名 as select语句;
删除内部表: drop table 内部表名;
查看表格式化信息:desc formatted 表名;
truncate清空内部表数据: truncate table 内部表名;
(2)创建外部表:
create external table [if not exists] 内部表名( 字段名 字段类型 , ... )...;
复制外部表: 复制表结构: CREATE EXTERNAL TABLE 表名 like 存在的表名;
删除外部表: drop table 外部表名;
查看表格式化信息: desc formatted 表名;
注意: 外部表不能使用truncate关键字清空数据
通过这次实操,我深刻感受到了分布式计算在大数据处理中的重要作用。Hive作为其中的一员,不仅提供了强大的数据处理能力,还使得大数据的分析和应用变得更加简单和高效。同时,我也认识到了自己在大数据处理方面的不足,需要不断地学习和提升自己的能力。