数据库与数仓

数据库
	描述:
		按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
	三范式
		1原子性:字段不可再分
		2唯一性:仅说明一件事情,有主键,非主键字段依赖主键
		3非主键字段不能互相依赖和传递依赖
	E R实体关系
		Entity-Relationship
		数据库设计的理论基础,将事物抽象为“实体”、“属性”、“关系”来表示数据关联和事物描述
	数据仓库(Data Warehouse)
		出现原因
			OLTP数据库,面向事物。存储信息较为分散,难以支持企业决策,难以从多个角度去分析
			需要对企业中各类数据进行汇集,清洗,管理,找出战略决策信息,这就需要建立数据仓库。
		描述:
			数据仓库是面向主题(一个主题与多个系统相关)的、集成(ELT)的(非简单的数据堆积)、相对稳定的、反应历史变化的数据集合,
				数仓中的数据是有组织有结构的存储数据集合,用于对管理决策过程的支持。
		发展:
			1998年,Bill Inmon提出了新的BI架构CIF(Corporation information factory),把Kimball的数据集市也包容进来。
				CIF的核心是将数仓架构划分为不同的层次以满足不同场景的需求,比如常见的ODS、DW、DM等,每层根据实际场景采用不同的建设方案
		维度建模
			源于数据集市
			实体-关系建模是面向应用,遵循第三范式,以消除数据冗余为目标的设计技术。
				维度建模是面向分析,为了提高查询性能可以增加数据冗余,反规范化的设计技术。
			组成:
				事实表
					数据仓库中,事实表的前缀为“fact”7-
				维度表
					维度表包含了维度的每个成员的特定名称。维度成员的名称称为“属性”
					数据仓库中,维度表的前缀为"dim"
				在数据仓库中事实表就是我们需要关注的内容,维度表就是我们从哪些角度观察这些内容。
			星型模型:
				所有的维度表都由连接键连接到事实表,
					多维数据集的每一个维度都直接与事实表相连接,不存在渐变维度,所以数据有一定的冗余
			雪花模型
				有一个或多个维表没有直接连接到事实表上,而是通过其他维表连接到事实表
					对星型模型的维表进一步层次化,原有的各维表可能被扩展为小的事实表,形成一些局部的“层次”区域,
						这些被分解的表都连接到主维度表而不是事实表
							通过最大限度地减少数据存储量以及联合较小的维表来改善查询性能,雪花型结构去除了数据冗余
		数仓分层
			ODS 操作数据
			DW 数据仓库
				DWD 数据明细
				DWM 数据中间
				DWS 数据服务
			DM 数据集市



### 数据库数据仓库和数据湖的关系区别 #### 数据库的特点 数据库主要用于在线事务处理(OLTP),支持实时读写操作,适用于频繁更新的小规模数据集。设计上更注重于高并发下的快速响应时间以及ACID特性(原子性、一致性、隔离性和持久性)。通常情况下,数据库中的表结构较为固定,字段类型严格定义。 #### 数据仓库的功能定位 相比之下,数据仓库侧重于联机分析处理(OLAP), 主要用于支撑决策支持系统(DSS) 和商业智能(BI) 应用程序。它通过ETL过程抽取来自多个源系统的异构数据并进行清洗转换加载到统一的目标模式中保存起来供后续查询统计之用;因此可以容纳海量的历史记录,并允许复杂的多维数据分析[^1]。 #### 数据湖的独特价值 至于数据湖,则提供了一种更加灵活开放的大容量存储解决方案,不仅能够接纳各种格式未经加工原始状态的信息资源——无论是结构化的表格文件还是半/非结构性文档图像视频流媒体等等皆可存入其中待进一步挖掘利用;而且往往基于分布式架构构建,在成本效益方面具备明显优势特别适合新兴大数据应用场景的需求[^5]。 综上所述: | 特征 | 数据库 | 数据仓库 | 数据湖 | | --- | --- | --- | --- | | **主要用途** | 日常交易处理 (OLTP) | 商业智能报表生成 (OLAP/DSS) | 大量多样化未加工数据长期保留| | **数据类型** | 结构化 | 经过整理后的结构化 | 原始形式的各种类型包括但不限于结构化, 半结构化及非结构化 | | **性能需求** | 高频次短延时交互式访问优化 | 批量复杂查询效率优先考虑 | 存储空间最大化兼顾一定检索速度 | | **灵活性** | 较低;需预先设定好schema | 中等程度预设schema但支持扩展 | 极高自由度无需提前规划具体schema | ```sql -- 示例SQL语句展示三者可能的操作差异 SELECT * FROM orders WHERE order_date >= '2023-01-01'; -- 数据库存取当前订单详情 WITH RECURSIVE sales_summary AS ( SELECT product_id, SUM(sales_amount) as total_sales FROM historical_sales_data GROUP BY product_id ) SELECT p.product_name, s.total_sales FROM products p JOIN sales_summary s ON p.id = s.product_id; -- 数据仓库存取汇总销售情况 CREATE EXTERNAL TABLE IF NOT EXISTS raw_logs( log_time STRING, user_ip STRING, request_url STRING ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LOCATION '/data/raw/logs/' ; -- 数据湖创建外部表指向HDFS路径上的日志文件 ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值