08. 新兴研究与应用领域
1. 数据仓库(Data Warehouse)与联机分析处理(OLAP)
1.1 决策支持系统的数据需求
在网络时代海量数据背景下,如何高效利用数据、从中发现有用信息成为关键。决策制定需要的数据与日常事务处理不同,主要体现在以下几个方面:
- 汇总数据(Summarized Data):而非详细数据。
- 历史数据(Historical Data):而非仅当前数据。
- 多数据源(Multi Data Source):需要整合大量企业内部和外部数据。
- 面向决策主题(Decision Subject Oriented):而非面向日常事务处理。
- 非实时更新(Non-real-time Updating):主要用于读取和分析,更新频率较低。
1.2 数据仓库的定义与特征
数据仓库是一个从多个源收集信息的存储库,专为支持决策制定而设计。
- 面向主题(Decision Subject Oriented):围绕特定的决策主题组织数据。
- 集成性(Integrated):提供统一的数据视图,消除数据源之间的不一致。
- 历史性(Historical):存储长期历史数据,支持趋势分析。
- 非易失性(Non-volatile):数据一旦进入数据仓库,通常不进行修改或删除,只进行追加。
- 主要用于检索(Mainly Retrieved):数据主要用于查询和分析,而非频繁更新。
- 周期性加载(Periodically Downloaded):数据通常从联机事务处理(OLTP)系统周期性(如每晚)加载。
- 不影响OLTP系统:在数据仓库上运行大型查询,避免影响OLTP系统的性能。
1.3 数据库与数据仓库的对比
| 特性 | 联机事务处理(OLTP)数据库 | 联机分析处理(OLAP)数据仓库 |
|---|---|---|
| 数据特点 | 详细数据 | 汇总数据 |
| 数据描述 | 当前数据 | 当前及历史数据 |
| 数据来源 | 企业内部数据 | 内部与外部数据;分布式;异构 |
| 数据组织 | 围绕事务处理 | 围绕决策主题 |
| 数据更新 | 即时更新 | 周期性或按需更新 |
| 数据量 | 单次操作涉及少量数据 | 单次操作涉及海量数据 |
| 操作特点 | 简单、重复的短事务处理 | 复杂查询的长事务处理 |
1.4 数据仓库的挑战(Warehousing Issues)
- 语义集成(Semantic Integration):处理来自不同源的数据时,消除不匹配(如不同货币、模式)。
- 异构源(Heterogeneous Sources):访问各种格式和存储库的数据。
- 加载、刷新、清除(Load, Refresh, Purge):数据加载、周期性刷新及清除过旧数据。
- 元数据管理(Metadata Management):跟踪数据来源、加载时间等信息。
1.5 数据仓库的软件解决方案
- 联机分析处理(OLAP):支持用户多维度、多层次分析数据。
- 分析与查询报告解决方案(Analysis and Query Reporting Solutions):定制分析工具,使用数学模型生成交互式解决方案。
- 数据挖掘(Data Mining):识别数据中的模式和关联,或创建预测模型。
1.6 多维数据模型(Multidimensional Data Model)
多维数据模型将数据组织成一个“立方体”(Cube),包含数值度量(Measures)和维度(Dimensions)。
- 度量(Measures):通常是数值型数据,如销售额(Sales)。
- 维度(Dimensions):描述度量的不同视角,如产品(Product)、地点(Location)、时间(Time)。
1.6.1 维度层次(Dimension Hierarchies)
每个维度都可以组织成层次结构,支持从不同粒度进行分析,如时间维度可分为日、周、月、季度、年。
1.6.2 MOLAP vs ROLAP
- MOLAP (Multidimensional OLAP):将多维数据物理存储为数组形式。
- ROLAP (Relational OLAP):将多维数据存储为关系表形式。
1.6.3 事实表(Fact Table)与维度表(Dimension Table)
- 事实表:存储度量值和指向维度表的外键,通常是大型表。
- 维度表:存储维度的详细信息,通常是小型表。
1.6.4 星型模式(Star Schema)与雪花模式(Snowflake Schema)
- 星型模式:一个事实表直接连接多个维度表,维度表之间不连接。结构简单,查询性能高。
- 雪花模式:维度表进一步规范化,形成多个子维度表,维度表之间存在连接。减少数据冗余,但查询可能更复杂。
1.6.5 实例化视图(Materialized View)
由于聚合函数计算耗时,数据仓库中常将计算结果存储为实例化视图。这些视图是预先计算并存储的查询结果,可以显著提高查询性能。
示例: 假设有销售数据 Sales (PID, SID, DID, SaledMoney),其中 PID (产品ID), SID (商店ID), DID (日期ID), SaledMoney (销售额)。
- PSD视图:每天每个产品在每个商店的销售总额。
CREATE VIEW PSD (PID, SID, DID, TotalSales) AS
SELECT PID, SID, DID, SUM(SaledMoney) AS TotalSales
FROM Sales
GROUP BY PID, SID, DID; - PS视图:每个产品在每个商店的总销售额(所有时间)。
CREATE VIEW PS (PID, SID, TotalSales) AS
SELECT PID, SID, SUM(TotalSales) AS TotalSales
FROM PSD
GROUP BY PID, SID; - P视图:每个产品的总销售额(所有商店和所有时间)。
CREATE VIEW P (PID, TotalSales) AS
SELECT PID, SUM(TotalSales) AS TotalSales
FROM PS
GROUP BY PID; - ALL视图:所有产品、所有商店、所有时间的总销售额。
CREATE VIEW ALL (TotalSales) AS
SELECT SUM(TotalSales) AS TotalSales
FROM P;
这些视图之间存在依赖关系 ,形成一个格状结构,支持不同粒度的聚合查询。
1.7 OLAP查询操作
OLAP查询支持用户从不同角度和粒度分析数据。
- 钻取(Drill-down):从高层汇总数据深入到低层详细数据。例如,从按州销售额钻取到按城市销售额。
- 上卷(Roll-up):从低层详细数据聚合到高层汇总数据。例如,从按城市销售额上卷到按州销售额。
- 切片(Slice):在某个维度上选择一个特定值,生成一个子立方体。例如,只看2023年的销售数据。
- 切块(Dice):在多个维度上选择特定范围或值,生成一个更小的子立方体。例如,只看2023年第一季度在华东地区的销售数据。
- 旋转(Pivoting):重新排列维度的显示方向,改变数据视图。例如,将产品作为行,时间作为列。
1.7.1 CUBE操作符
CUBE 操作符可以生成所有可能的维度组合的聚合结果。对于 GROUP BY 查询。
示例:
CUBE PID, SID, DID BY SUM Sales 将生成关于产品、商店和日期所有
1.7.2 ROLLUP操作符
ROLLUP 操作符生成指定维度层次的聚合结果。
示例:
GROUP BY PID, SID, DID ROLLUP 将生成 (PID, SID, DID), (PID, SID), (PID), () 四种聚合结果。
1.8 位图索引(Bitmap Index)
位图索引是一种特殊的索引,适用于低基数(distinct values少)的列。它为列的每个唯一值创建一个位图,位图中的每个位对应一行数据,如果该行包含该值,则对应的位为1,否则为0。
优点:
- 高效的布尔运算:对于多个条件的AND/OR查询,可以直接对位图进行位运算,速度极快。
- 节省存储空间:对于低基数列,位图索引比B+树索引更紧凑。
示例: 查询“Class A”且“State NY”的商店数量: 将“Class A”的位图与“State NY”的位图进行AND位运算,结果位图中1的数量即为符合条件的商店数量。
1.9 数据仓库工程流程
- 需求分析(Requirements Analysis):确定业务需求和目标。
- 数据仓库架构设计(Data Warehouse Architecture Design):规划整体架构,包括数据源、ETL、存储、访问等。
- 环境构建(Environments Construction):搭建硬件和软件环境。
- 数据仓库模式设计(Data Warehouse Schema Design):设计星型或雪花模式。
- ETL处理(ETL Processing):
- 抽取(Extract):从源系统获取数据。
- 转换(Transform):清洗、 转换、整合数据。
- 加载(Load):将数据加载到数据仓库。
- 元数据管理(Meta Data Management):管理数据仓库中数据的元数据。
- 前端应用设计与实现(Front Applications Design & Implementation):开发报表、OLAP工具、数据挖掘工具等。
- 测试(Testing):验证数据质量和系统性能。
- 运行与维护(Running & Maintaining):日常运营和维护。
1.9.1 数据仓库架构设计模式
- 自顶向下(Top Down):先构建企业数据仓库(EDW),再从EDW中抽取数据构建部门数据市集(Data Marts)。
- 优点:数据一致性高,冗余少,支持全局数据探索。
- 缺点:初期投入大,建设周期长。
- 自底向上(Bottom Up):先构建部门数据市集,再逐步整合形成企业数据仓库。
- 优点:快速满足局部业务需求,部门自治。
- 缺点:可能存在数据冗余和不一致,整合困难。
- 混合方法(Mixed Method):结合两种方法的优点。
2. 数据挖掘(Data Mining)
2.1 定义
数据挖掘是从大量数据中探索和分析,以发现有效(Valid)、新颖(Novel)、**潜在有用(Potentially Useful)且最终可理解(Ultimately Understandable)**的模式的过程。
- 有效:模式普遍适用。
- 新颖:模式是事先未知的。
- 潜在有用:模式可用于指导行动。
- 可理解:模式可被解释和理解。
2.2 为什么使用数据挖掘
- 数据量巨大:人工分析能力不足以处理海量、高维度、高增长率的数据。
- 技术成熟:数据、存储、计算能力、现成软件和专业知识的可用性。
- 商业竞争压力:通过发现独特模式获得竞争优势。
2.3 知识发现过程(Knowledge Discovery Process)
- 识别业务问题(Identify business problem)
- 数据挖掘(Data mining)
- 数据预处理(Data preprocessing):
- 数据选择(Data selection):识别目标数据集和相关字段。
- 数据清洗(Data cleaning):移除噪声和异常值。
- 数据转换(Data transformation):统一单位,生成新字段。
- 数据挖掘模型构建(Data mining model construction)
- 模型评估(Model evaluation)
- 数据预处理(Data preprocessing):
- 行动(Action)
- 评估与度量(Evaluation and measurement)
- 部署与集成(Deployment and integration into businesses processes)
2.4 数据挖掘的应用与操作
| 应用(Applications) | 操作(Operations) | 技术(Techniques) |
|---|---|---|
| 数据库营销 | 分类与预测 | 聚类分析 |
| 客户细分 | 聚类 | 最近邻算法 |
| 客户留存 | 关联分析 | 神经网络 |
| 欺诈检测 | 预测 | 朴素贝叶斯 |
| 信用检查 | 决策树 | |
| 网站分析 |
2.5 数据挖掘的类型(Types of Data Mining Operations)
每种操作反映了在复杂数据集中区分模式或趋势的不同方式。
2.5.1 分类与预测(Classification and Prediction)
- 分类(Classification):根据已知结果对数据集进行细分。例如,将客户分为“高”或“低”信用风险。
- 预测(Prediction):预测连续值,如根据个人信息预测收入。
技术:决策树、神经网络、最近邻算法。 训练(Training):模型在历史数据上进行训练,并使用独立的测试数据集进行验证,以避免过拟合(Overfitting)。