跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
数据仓库概念
”︁
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
= 数据仓库概念 = == 引言 == '''数据仓库'''(Data Warehouse, DW)是面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。与传统的[[数据库]]不同,数据仓库专注于分析处理而非事务处理,其核心目标是为企业提供统一的数据视图,支持商业智能(BI)工具进行复杂查询、报表生成和数据挖掘。 == 核心特征 == 数据仓库具备以下四大关键特征(由数据仓库之父Bill Inmon提出): # '''面向主题''':按业务主题(如销售、库存、客户)组织数据,而非按功能划分。 # '''集成性''':数据来自多个异构系统,经过清洗、转换和标准化。 # '''非易失性''':数据一旦加载,通常不再修改,仅定期追加。 # '''时变性''':记录数据随时间的变化,支持历史分析。 == 架构组成 == 典型数据仓库架构包含以下层级: <mermaid> graph TD A[数据源] -->|ETL| B(ODS-操作数据存储) B --> C[DW-数据仓库] C --> D[数据集市] D --> E[BI工具/报表] </mermaid> === 详细说明 === * '''数据源''':ERP、CRM、日志文件等原始系统 * '''ETL'''(Extract-Transform-Load):数据抽取、转换、加载流程 * '''ODS''':临时存储原始数据的区域 * '''DW''':整合后的核心数据存储 * '''数据集市'''(Data Mart):针对特定部门/功能的子集 == ETL 流程示例 == 以下Python伪代码演示简单的ETL过程: <syntaxhighlight lang="python"> # 抽取(Extract) def extract_data(source_db): return source_db.query("SELECT * FROM sales_raw") # 转换(Transform) def transform_data(raw_data): cleaned_data = [] for record in raw_data: # 标准化日期格式 record['sale_date'] = pd.to_datetime(record['sale_date']).strftime('%Y-%m-%d') # 转换货币单位为美元 record['amount'] = record['amount'] * exchange_rates[record['currency']] cleaned_data.append(record) return cleaned_data # 加载(Load) def load_data(target_db, clean_data): target_db.insert_many('fact_sales', clean_data) # 主流程 raw_data = extract_data(source_db) clean_data = transform_data(raw_data) load_data(dw_db, clean_data) </syntaxhighlight> '''输入示例'''(源数据): {| class="wikitable" |- ! sale_id !! sale_date !! amount !! currency |- | 1001 || 2023/05/15 || 1200 || JPY |- | 1002 || 15-May-2023 || 85 || EUR |} '''输出结果'''(数据仓库表): {| class="wikitable" |- ! sale_id !! sale_date !! amount_usd !! customer_id |- | 1001 || 2023-05-15 || 8.76 || C205 |- | 1002 || 2023-05-15 || 92.65 || C119 |} == 与数据库对比 == {| class="wikitable" |- ! 特性 !! 操作型数据库 !! 数据仓库 |- | 目的 || 事务处理(OLTP) || 分析处理(OLAP) |- | 数据时效 || 当前数据 || 历史数据 |- | 查询类型 || 简单读写 || 复杂分析 |- | 规范化程度 || 高度规范化 || 星型/雪花模式 |- | 更新频率 || 实时 || 批量加载 |} == 实际应用案例 == '''零售行业案例''': 某全球零售商使用数据仓库实现: * 整合来自50+国家的销售点系统、电商平台和供应商数据 * 建立统一的产品分类体系(如将"薯片/Chips/Crisps"映射为标准编码P123) * 通过分析3年历史数据发现: ** 冬季羽绒服在南半球销售旺季是6-8月 ** 促销活动对会员客户的吸引力比普通客户高37% == 数学基础 == 数据仓库中常用的聚合计算可表示为: <math> \text{销售增长率} = \frac{\sum \text{本期销售额} - \sum \text{上期销售额}}{\sum \text{上期销售额}} \times 100\% </math> == 扩展阅读 == * 星型模式与雪花模式设计 * 缓慢变化维(SCD)处理技术 * 现代数据仓库技术栈(如Snowflake、Redshift) == 总结 == 数据仓库是企业数据分析的基础设施,通过整合多源数据、保留历史记录、优化分析查询,为决策者提供可靠的"单一数据源"。随着大数据技术的发展,现代数据仓库已演进为支持实时分析、半结构化数据处理和云原生架构的解决方案。 [[Category:计算机科学]] [[Category:数据库与信息系统]] [[Category:数据仓库与商业智能]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)