数据仓库简介
数据仓库概念
数据仓库,英文名称为 Data Warehouse ,可简写为 DW 或 DWH,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它出于分析报告和决策支持目的而创建。
数据仓库是数据库概念的升级。 从逻辑上理解, 数据库和数据仓库没有区别, 都是通过数据库软件实现的存放数据的地方, 只不过从数据量来说, 数据仓库要比数据库更庞大得多。 数据仓库主要用于数据挖掘和数据分析, 辅助领导做决策。
数据库与数据仓库的区别
数据库主要用于事务处理,数据仓库主要用于数据分析、挖掘
数据库与数据仓库的本质区别是 OLTP 和 OLAP 的区别
OLTP(联机事务处理 on-line transaction processing)
OLTP 主要是执行基本的、日常的事务处理,比如数据库记录的增、删、改、查。比如在银行存取一笔款,就是一个事务交易。
OLTP 的特点一般有:
- 实时性要求高
- 数据量不是很大
- 跟业务系统紧密关联
- 并发性要求高
- 数据一致性要求高
OLAP( 联机分析处理 OLAP On-Line Analytical Processing )
OLAP 是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。典型的应用就是复杂的动态的报表系统。
OLAP 的特点一般有:
- 处理的是历史数据
- 实时性要求不是很高
- 数据量大
- 与业务系统关联不大,更多用于提供数据分析和决策支持
数据仓库比较流行的有:Oracle、Db2、Teradata(商业数据仓库业界老大)、Hive 等
ETL
ELT 的概念
ETL 这个术语来源于数据仓库,ETL 指的是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程。ETL 的目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。
ETL是 BI 项目重要的一个环节。 通常情况下,在 BI 项目中 ETL 会花掉整个项目至少 1/3 的时间,ETL 设计的好坏直接关接到 BI 项目的成败
BI 即商务智能,它是一套完整的解决方案,用来将企业中现有的数据进行有效的整合,快速准确地提供报表并提出决策依据,帮助企业做出明智的业务经营决策。
ETL 的设计分三部分:数据抽取(extract)、数据的清洗转换(transform)、数据的加载(load)
-
数据的抽取是从各个不同的数据源抽取到 ODS(Operational Data Store,操作型数据存储,即一种常被用作数据仓库临时区域的数据库) 中,这个过程也可以做一些简单的数据的清洗和转换。在抽取的过程中需要挑选不同的抽取方法,尽可能的提高 ETL 的运行效率。
-
ETL 三个部分中,花费时间最长的是 “T”(Transform,清洗、转换) 的部分,一般情况下这部分工作量是整个 ETL 的2/3。
-
数据的加载一般在数据清洗完了之后直接写入 DW(Data Warehousing,数据仓库) 中去。
ETL 的实现有多种方法,常用的有三种
- 借助 ETL 工具(如 Oracle的 OWB、SQL Server 2000 的 DTS、SQL Server2005 的 SSIS 服务、Informatic 等) 实现
- 使用 SQL 方式实现
- ETL 工具和 SQL 相结合
前两种方法各有各的优缺点,借助工具可以快速的建立起 ETL 工程,屏蔽了复杂的编码任务,提高了速度,降低了难度,但是缺少灵活性。SQL 的方法优点是灵活,提高 ETL 运行效率,但是编码复杂,对技术要求比较高。第三种是综合了前面二种的优点,会极大地提高 ETL 的开发速度和效率。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现