数据开发---数据存储

一.内部表与外部表

1.Hive 内外部表的定义:    内部表(managed table): 未被external修饰的表,也叫管理表。

Sql语句:

CREATE TABLE internal_table (

    id INT PRIMARY KEY,

    name VARCHAR(100),

    created_at DATE

);

  外部表(external table):被external修饰的表。

Sql语句:

CREATE EXTERNAL TABLE external_table (

    id INT,

    name STRING,

    created_at DATE

)

ROW FORMAT DELIMITED

FIELDS TERMINATED BY ','

LOCATION '/path/to/external/data';

2. 内部表&外部表的区别:

        内部表:删除表会删除表的元数据(metadata)和表数据(data)。

        外部表:删除表会删除表的元数据(metadata),但不会删除表数据(data)。

  1. 数据管理方式: 数据(data)都存储在HDFS上,内部表由Hive自身管理,外部表数据由HDFS管理; 元数据(metadata)都存储在mysql上,由mysql管理。
  • 二.分区表与分桶表

分区针对的是数据的存储路径;分桶针对的是数据文件(数据粒度更细)。分区字段不能是表中已经存在的字段分桶则相反

  1. 分区表:分区表是将大表分成多个更小、更易管理的部分,通常基于某个列的值(如日期或地理位置)。每个部分称为一个“分区”。多分区和多级分区。

基本语法:

create table tablename(字段...) partitioned by (分区列 列类型, ......) row format delimited fields terminated by '';

  1. 分桶表:分桶表是将表中的数据按照哈希算法分成多个“桶”,指定固定的桶去分文件,每个桶是一个数据子集划分文件(分桶进行hash取模),必须触发mapreduce

优化:set hive.enforce.bucketing=true;

基本语法:

create table course (c_id string,c_name string,t_id string) clustered by(c_id) into 3 buckets row format delimited fields terminated by '\t';

不能直接加载数据,需要一个表中转

插入的时候 clustered by(c_id)加在末尾

Hash取模相当于给文件加密,加密之后进行取模 (取余)

三.数据仓库

ODS(Operational Data Store):操作数据存储层,存储来自业务系统的实时或接近实时的原始数据,通常用于支持业务操作和短期分析。

DIM(Dimension):维度数据层,存储描述数据的维度表,如时间、地点、产品等。这些表用于支持多维数据分析。

DWD(Data Warehouse Detail):详细数据层,存储经过初步处理的业务数据的详细记录。数据在这个层次经过清洗和结构化,准备进行进一步的汇总和计算。

DWS(Data Warehouse Summary):汇总数据层,存储汇总后的数据,提供高层次的分析和报表支持,通常基于详细数据层进行计算和聚合。

ADS(Application Data Store):应用数据存储层,存储针对具体应用的分析结果或报表数据,通常用于支持特定业务应用的决策和操作。

四.数仓常见模型

概念:星型模型由一个中心的事实表(Fact Table)和多个周围的维度表(Dimension Table)组成,形成了类似星星的结构

特点:事实表包含了业务过程中发生的事实数据,维度表包含了描述业务过程的各种维度信息。事实表和维度表之间通过一对多的关系进行连接。

优势:星型模型结构简单,易于理解和使用,适用于大多数数据分析场景。查询性能较好,适合快速查询和报表生成。

缺点:可能存在数据冗余,因为维度表中的数据可能在事实表中重复出现,导致存储空间的浪费。同时,维度表之间的关系比较简单,不适合描述复杂的维度层次结构。

概念:雪花模型在星型模型的基础上进一步规范化维度表,将维度表中的数据分解成更多的表,形成类似雪花的结构。

特点:雪花模型通过规范化维度表,减少了数据冗余,提高了数据存储的效率。同时,可以更好地描述复杂的维度层次结构。

优势:雪花模型在节省存储空间的同时,仍保持了较好的查询性能,适合需要更详细的维度信息和更复杂的维度结构的场景。

缺点:雪花模型相对于星型模型来说,结构更加复杂,设计和维护成本较高。同时,多层次的连接可能会影响查询性能。

星座模型:维度空间内的事实表不止一个,而一个维表也可能被多个事实表用到。在业务发展后期,绝大部分维度建模都采用的是星座模式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值