一、数仓和数据库的区别
数据库与数据仓库的区别实际讲的是OLTP与OLAP的区别
操作型处理(数据库),叫联机事务处理OLTP(On-Line Transaction Processing),也可以称面向用户交易的 处理系统,它是针对具体业务在数据库联机的日常操作,通常进行增删改查操作。用户较为关心操作的响应时间、数据的安全性、完整性和并发支持的用户数等问题。传统的数据库系统作为数据管理的主要手段,主要用于操作型处理。
分析型处理(数据仓库),叫联机分析处理OLAP(On-Line Analytical Processing),也可以称为面向专业分析人员进行数据分析,通常进行查询分析操作,一般针对某些主题的历史数据进行分析,支持管理决策。
数据仓库主要特征: 面向主题的(Subject-Oriented )、集成的(Integrated)、非易失的(Non-Volatile)和时变的(Time-Variant )
二、数仓的分层架构
数据仓库架构可分为三层——源数据层、数据仓库层、数据应用层。
三、数仓的分层架构
源数据层(ODS):此层数据无任何更改,直接沿用外围系统数据结构和数据,不对外开放;为临时存储层,是接口数据的临时存储区域,为后一步的数据处理做准备。
数据仓库层(DW):也称为细节层,DW层的数据应该是一致的、准确的、干净的数据,即对源系统数据进行了清洗(去除了杂质)后的数据。
数据应用层(DA或APP):前端应用直接读取的数据源;根据报表、专题分析需求而计算生成的数据。
四、ETL和ELT
ETL: 先从数据源池中抽取数据,数据保存在临时暂存数据库中(ODS)。然后执行转换操作,将数据结构化并转换为适合目标数据仓库系统的形式,然后将结构化数据加载到数据仓库中进行分析。
ELT: 从数据源中抽取后立即加载。没有专门的临时数据库(ODS),这意味着数据会立即加载到单一的集中存储库中,数据在数据仓库系统中直接进行转换,然后进行分析。
五、数据库操作
• 创建数据库
create database if not exists myhive;
use myhive;
• 查看数据库详细信息
desc database myhive;
创建数据库表语法
创建表的语法还是比较复杂的
• EXTERNAL,创建外部表
• PARTITIONED BY, 分区表
• CLUSTERED BY,分桶表
• STORED AS,存储格式
• LOCATION,存储位置
六、Hive表的类型?
• 内部表(MANAGED_TABLE)
• 分区表
• 分桶表
• 外部表(EXTERNAL_TABLE)
• 分区表
• 分桶表
七、内部表区别?
删除内部表:直接删除元数据(metadata)及存储数据
删除外部表:仅仅是删除元数据(表的信息),不会删除数据本身