1201 数据挖掘前三章知识点整理
第一章,商务智能
本章目录
本门课实际上是三个部分:数据仓库(DW);多维数据分析(OLAP);数据挖掘(DM)
第一节、数据信息知识
数据
- 定义:一些“无意义的符号”,是对客观实体、状态或变化的原始记录。
- 例子:数据库中的一个数字 “10”,本身没有任何具体含义。
信息
- 定义:对数据进行有目的、有规范的加工和处理,赋予其上下文。
- 关键点:我们专业叫“信息管理”而非“数据管理”,核心就在于“加工处理”。用熵去代表信息量。
- 例子:将 “10” 解释为 “这条生产线每小时能生产 10 个零件”。
知识
- 定义:对信息进行更深层次的理解、推理和归纳,将其浓缩后形成的“模式”或“规律”。
- 例子:通过长期观察总结出:“这条生产线的产能上限就是每天 10 个零件”。这是一种经验。
智慧
- 定义:应用已有的知识去解决问题、做出决策的能力。
- 例子:销售部门利用“产能上限 10 个”这一知识,避免做出“100 个零件 7 天交货”的错误决策。
例 如:“5 月 20 日”是 数 据,记录 的 是 你 好 朋 友 的 生 日 就 是 信 息,你 投 其 所 好 送 了 一 瓶 Chanel COCO 小 姐 香 水 用 的 就 是 知 识 与 智 慧。
在企业决策中:
“信息”层面的支持:
- 在企业决策中,我们经常需要通过 KPI(关键性能指标)来判断“企业的运营状态”。
- 例如:查看机器利用率、人均产值等。
- 这种支持主要依赖于信息**(如 OLAP 报表)。
“知识”层面的支持:
- 当我们需要判断“谁是我们的目标用户?”或“目标市场在哪?”时,就需要更复杂的分析。
- 这种支持依赖于数据挖掘**,即从数据中发现未知的模式和规律(知识)。
第二节、决策与决策支持系统
决策层级:
企业信息系统的两大分类
企业内部的信息系统可根据其支持的管理层次和任务,分为两大类:OLTP 和 DSS。
OLTP (联机事务处理)
- 定义:以“业务处理”为主的信息系统。
- 核心目标:支持企业的日常运营 ,完成数据的收集。
- 例子:“选课系统”或电商“下订单”系统。
- 技术特征:
- 高并发:必须支持大规模用户并发访问。
- 事务性:强调数据库事务的 ACID 特性(原子性、一致性、隔离性、持久性),如“要么全提交,要么全回滚” (all or nothing)。
- 小数据量:每次操作(如选课)访问的数据量“小”,可能只涉及几条记录。
- 高性能:响应时间要求“毫秒级”,性能是关键。
DSS (决策支持系统)
- 定义:辅助决策者进行半结构化或非结构化决策的系统。
- 核心目标:监测企业的运营状态,支持管理决策。
- 例子:分析“过去三年,某产品在不同区域按月的销售对比”。
- 技术特征:
- 低并发:通常用户较少,对高并发性要求不高。
- 分析性:主要是查询和分析,几乎没有更新操作。
- 大数据量:每次分析访问的数据量“大得多”,需要汇总海量历史数据。
- 效率关键:关注的是分析效率,而不是实时响应。
决策过程的四个阶段
- 情报阶段 (Intelligence)
- 任务:发现征兆,识别“问题到底是什么?”。
- 设计阶段 (Design)
- 任务:针对问题,找出所有可能的解决方案。
- 例子:老师用“条条大路通罗马”比喻,解决方案可以是飞机、火车或骑行。
- 选择阶段 (Choice)
- 任务:对所有方案进行评估,并选择最优方案。
- 方法:这对应了运筹学中的“目标规划”(如最短路径)或“多目标优化”(如帕累托最优)。
- 实施阶段 (Implementation)
- 任务:执行选定的方案,并检测结果,进行必要的调整。
决策的基础:核心公式
- 决策的本质:决策是“对未来的行动做出选择”,而“未来就是未知”。
- 核心公式:
决策 = 信息 + 知识 (经验) + 冒险
- 关键推论:我们的信息和知识越丰富、质量越高,决策中“冒险的成分就越小”,这个决策也就越科学。
第三节、机器学习
机器学习的核心定义
简单来说,机器学习就是让计算机从大量数据中学习相关的规律和模式,并利用学来的规律去预测未知的事件。
教学模型:
- 我们知道输入 X 和输出 Y,但我们不知道它们之间真实的映射规律 S(只有“造物主”知道)。
- 机器学习的目的,就是训练一个“学习机器” (LM),让它尽可能地逼近那个未知的真实规律 S
案例:图像修复
- 人类的学习过程:给我们一张局部的日落图片。
- 我们会去“查资料”(获取数据),看大量“海边日出日落”的完整图片。
- 学习其中的“规律”(如礁石的形态、海面的色彩分布)。
- 基于规律去“推断”和绘制缺失的部分,而不是“直接复制”某个样本。
- 机器的学习过程:
- 给机器提供大量完整的样本图片(数据)。
- 机器从中学习“颜色的分布”、“变化的规律”等模式。
- 将学到的规律应用到缺失的部分,进行“填充”,最终完成修复。
第六步是模型的保存
对比三种拟合状态(欠拟合、良好、过拟合)的图片进行了讲解。
- 模型 1 (Underfitting / 欠拟合):模型太简单,“误差太大了”。
- 模型 3 (Overfitting / 过拟合):模型“过于关注”训练样本,甚至把“异常点”(噪声)都学进去了。
- 模型 2 (Good Fit / 良好拟合):找到了数据中“普适型的规律”。
这引出了对模型性能的两个关键度量:
学习能力 (Learning Ability)
- 定义:机器对已知训练样本的解释能力。
- 度量:用“训练误差”来度量。
- 问题:模型 3(过拟合)的学习能力最强(训练误差最小),但它不是最好的模型。
泛化能力 (Generalization Ability)
- 定义:机器对未知数据进行正确预测的能力。
- 关键点:这才是机器学习的最终目的。
过拟合 (Overfitting)
- 定义:模型“过于去追求训练误差”(学习能力太强),反而导致其“泛化能力的下降”。
- 原因:模型学到了训练数据中的噪声和“异常点”,而不是普适规律。
第四节、人工智能
一、人工智能的基本定义
- 定义:人工智能(Artificial Intelligence,AI)是研究让机器表现出类似人类智能行为的技术与科学。
- 目标:使机器/计算机系统能够完成那些通常需要人类智慧才能实现的任务。
- 例如:博弈算法(AlphaGo)、机器人控制、自然语言处理、强化学习等。
- 当前阶段:我们仍处于 弱人工智能(Narrow AI) 阶段,距离具有通用思维能力的 强人工智能(General AI) 仍有较长的距离。
二、智能与智能技术
智能(Intelligence)
是个体对客观事物进行合理分析、判断,并能有效地处理周围环境的综合能力。
智能技术 用于捕捉、表达、发现和应用知识的各类人工智能方法:
| 技术类型 | 主要目标 | 典型方法 | 举例说明 |
|---|---|---|---|
| 捕捉隐性知识 | 模拟专家经验,表达不可言传的知识 | 专家系统(Expert System)、基于案例的推理(CBR)、模糊逻辑(Fuzzy Logic) | 中医诊断、自动相机对焦 |
| 知识发现 | 从大量数据中自动提取模式与规律 | 神经网络、机器学习、数据挖掘 | 客户分群、信用评分 |
| 生成解决方案 | 为复杂问题生成最优方案 | 遗传算法、蚁群算法、粒群算法、免疫计算 | 大气污染管控优化、路径规划 |
| 自动化任务 | 自动执行重复性、可预测的任务 | 智能代理(Intelligent Agent) | 网络爬虫、智能邮件过滤 |
| 模式识别 | 识别与分类外界模式 | 图像识别、语音识别、字符识别 | 人脸识别、车牌识别、OCR |
三、AI 的发展阶段
人工智能可分为三个发展阶段,对应“计算—感知—认知”三种智能:
| 阶段 | 能力描述 | 典型技术 | 应用举例 | 价值体现 |
|---|---|---|---|---|
| 计算智能(Computational Intelligence) | 能存会算,进行快速计算与数据处理 | 神经网络、遗传算法 | 智能优化、数值计算 | 为认知与感知提供基础 |
| 感知智能(Perceptual Intelligence) | 感知外界环境,“看得见、听得懂” | 模式识别、语音识别、计算机视觉 | 人脸识别、语音助手 | 替代人完成“看”和“听”任务 |
| 认知智能(Cognitive Intelligence) | 理解、推理并做出行动决策 | 机器学习、知识推理、自然语言处理 | 智能客服、自动驾驶 | 辅助或部分替代人类决策 |
四、AI 的方法与主要技术
人工智能包含多种实现方法,核心技术体系如下:
-
机器学习(Machine Learning)
- 让计算机从数据中自动学习规律与模式。
- 包括监督学习、非监督学习、半监督学习与强化学习。
-
人工神经网络与深度学习(Deep Learning)
- 模拟人脑神经元结构的多层学习系统。
- 用于语音识别、图像生成、自然语言理解等。
-
专家系统(Expert System)
- 以 IF–THEN 规则形式表示专家经验,用于决策支持。
- 典型应用:医学诊断、设备故障分析。
-
基于案例推理(CBR)
- 将历史案例存储在“案例库”中,通过相似性检索帮助决策。
- 典型应用:医疗辅助决策、项目管理。
-
模糊逻辑(Fuzzy Logic)
- 处理模糊、非确定性知识的推理方法。
- 典型应用:智能控制(如自动对焦、空调温控)。
-
进化计算与优化算法
- 包括遗传算法(GA)、蚁群算法(ACO)、粒群算法(PSO)等。
- 模拟自然选择与群体行为,实现复杂问题的优化求解。
案例:大气污染应急方案优化
当预测到空气质量下降时,系统利用遗传算法在上百种管控组合中进化出“最优限产方案”,实现快速决策。
-
智能代理(Intelligent Agent)
- 在无人干预下执行特定任务。
- 典型应用:网络爬虫、智能邮件分类、自动交易系统。
第五节、商务智能
商务智能 (BI) 与业务分析 (BA)
商务智能 (Business Intelligence, BI) 本质上是一个过程,旨在将原始的数据转化为有价值的信息,并通过迭代发现,再将信息提炼为知识,最终指导行动以获得商业收益。
BI 的核心目标不是执行常规的业务处理,而是帮助企业更快、更容易地做出更好的决策。
BI 的技术基础与目标
从技术上看,BI 并非一项全新的技术,而是对数据库、数据仓库 (Data Warehouse)、OLAP (联机分析处理) 和数据挖掘 (Data Mining) 等成熟技术的综合运用。
BI 系统通常被视为一个软件工具集,主要包含:
- 数据仓库 (DW) 和数据集市 (Data Mart)
- 终端用户查询和报告工具
- OLAP (多维分析) 工具
- 数据挖掘 (DM) 软件
BI 的主要目的有两个层面:一是分析“过去发生了什么”以及“为什么会发生”;二是在此基础上,利用数据挖掘和机器学习等手段,预测“未来会发生什么”。
大数据分析 (Big Data Analytics)
大数据分析是 BI 的一种进化形式,它是实现从海量数据到信息、再到知识的关键步骤。它结合了传统的统计分析方法和现代的计算分析方法。
广义的数据分析通常包括“狭义数据分析”和“数据挖掘”:
- 狭义数据分析:目标明确,通常是先做出假设,然后通过数据分析来验证假设是否正确(如现状分析、原因分析)。
- 数据挖掘:重点在于从大量数据中寻找未知的、有价值的模式和规律(如分类、聚类、关联规则)。
大数据分析的层次与方法
大数据分析按照其创造的价值和实现的复杂性,可以归纳为四大类,这个层次也对应了 BI 创造价值的路径:
- 描述性分析 (Descriptive):发生了什么?
- 诊断性分析 (Diagnostic):为什么会发生?
- 预测性分析 (Predictive):接下来会发生什么?
- 规范性分析 (Prescriptive):我们应该怎么做?(优化决策)
为实现这些分析,所使用的方法主要包括:
- 统计:例如数据分布概率。
- 回归:例如一元/多元回归、线性/非线性回归。
- 数据挖掘/机器学习:例如关联分析 (关联规则、序列模式)、分类、聚类、个性化推荐和社交网络分析等。
当然,大数据分析在实践中也面临着数据存储 (SQL/NoSQL)、计算资源调度、算法模型以及多源数据融合等挑战。
第二章,数据仓库概念
本章目录
在任何商业智能(BI)或大数据框架中,第一步永远是准备数据。我们已经拥有成熟的数据管理技术(如文件系统、数据库),那么为什么还需要数据仓库(Data Warehouse, DW)?它与传统数据库(Database, DB)有何根本不同?本章将围绕这些问题展开。
信息集成
不考虑一个非常复杂的生产制造环节,考虑非常典型的一个 b2c 的这样的一个企业(不生产),面临什么事务性任务,什么决策支持性任务?
- 事务性任务 (OLTP - On-Line Transaction Processing)
这类任务支持企业的日常运营和业务处理。它们是事件驱动的,通常涉及对少量记录的增、删、改,并且要求响应时间短、并发量高。
在 B2C 商城的场景下,具体的事务性任务包括:
- 销售子系统: 处理一笔销售订单,记录顾客、商品、数量、单价等信息。
- 采购子系统: 处理一笔采购订单,向供应商订货。
- 库存子系统: 处理一次商品入库(如进料入库单)或出库(如出库领料单)。
- 决策支持性任务 (DSS / OLAP - On-Line Analytic Processing)
**这类任务用于管理人员的决策分析,帮助决策者分析数据以察看趋向、判断
问题。它们需要利用综合信息进行分析,并且经常要访问大量的历史数据,支持复杂的查询。**
在 B2C 商城的场景下,决策支持性任务包括:
- 分析“今年销售量下降的因素”,可能需要按时间、地区、商品、销售部门等不同维度进行综合分析。
- 分析“某商品今年的销售情况与以往相比,有怎样的变化?”。
- 分析“每年的第一季度商品销售在各类商品上的分布情况”。
ERP 和 MRP 的区别:
| 项目 | MRP(物料需求计划) | ERP(企业资源计划) |
|---|---|---|
| 全称 | Material Requirements Planning | Enterprise Resource Planning |
| 核心目标 | 解决生产中“需要什么、需要多少、什么时候需要”问题 | 整合企业所有资源,实现信息化、集成化管理 |
| 主要功能 | 物料计划、库存控制、生产计划 | 财务、人力资源、供应链、生产、销售、库存、客户关系等全流程管理 |
| 管理范围 | 生产与物料领域 | 全企业范围 |
深入对比:为什么 OLTP 与 OLAP 必须分离?
设想一个场景:一位采购经理需要制定采购计划。
- 分析任务:他需要分析历史销量(如过去 3 年)、当前库存、供应商交付周期、财务状况、乃至市场营销计划(如“双十一”促销)。
- 数据需求:这项任务需要跨多个业务系统(销售、库存、财务、SCM、CRM)的大量、综合、历史数据。
我们能否在运行日常订单的 OLTP 数据库上直接运行这种复杂的分析查询?
答案是:不行。
将两类任务放在同一数据环境中,会导致灾难性的“互相影响”,主要原因有二:
- 性能冲突(系统资源)
OLTP 和 OLAP 对系统性能的要求完全相反,它们会通过数据库的并发控制(锁)机制相互“杀死”对方。
| 类型 | 需求与特征 | 操作方式 | 锁机制 |
|---|---|---|---|
| OLTP(事务) | 高并发、极短响应时间(如 0.5 秒内完成订单) | 大量 INSERT、UPDATE 操作 | 独占锁 (Exclusive Lock) |
| OLAP(分析) | 响应时间可容忍(分钟级甚至小时级) | 复杂 SELECT 查询,扫描海量数据 | 共享锁 (Shared Lock) |
冲突点:
- 一个长时间运行的 OLAP 查询(共享锁)会阻塞新的 OLTP 事务(独占锁)。
- 一个正在运行的 OLTP 事务(独占锁)也会阻塞 OLAP 查询的开始。
数据冲突(模型与内容)
两类任务所需的数据在结构、范围和粒度上完全不同。
| 对比维度 | 事务型数据库 (OLTP) | 分析型数据仓库 (OLAP) |
|---|---|---|
| 数据模型 | 规范化 (Normalization)(如 3NF, BCNF)目的:减少数据冗余,避免更新异常。 | **反规范化 (Anti-Normalization)**目的:增加冗余,用空间换时间,减少 JOIN,加速查询。 |
| 数据内容 | 当前数据 (Current Data)(如只保留当前财年)细节数据 (Detailed Data) | 历史数据 (Historical Data)(如保留 3-10 年)汇总数据 (Summarized Data) |
| 数据操作 | 频繁的增、删、改、查 | 批量的加载 (Load) 和复杂查询 (Query) |
结论:OLTP 环境没有 OLAP 所需的历史与汇总数据,现场计算又会导致性能冲突,因此两者必须分离。
信息孤岛与信息集成
- 问题的提出:信息孤岛 (Information Silos)
在企业中,一个非常普遍的现象是信息孤岛。
- 成因:企业的各个业务处理部门“各随政”,有各自服务于不同职能的业务系统(如供应链 SCM、企业资源计划 ERP、客户关系管理 CRM)。这些系统通常被称为“遗留系统”。
- 问题:这些系统并不会周密地“思考”自己“职责”之外的事情。因此,来自不同系统的数据通常会“顾此失彼”,导致决策者不能直接使用这些分散的数据。虽然 OLTP 和遗留系统拥有宝贵的数据,但从中提取有意义的信息既困难又缓慢。
- 解决方案:信息集成 (Information Integration)
为了解决信息孤岛问题,就需要进行信息集成。
- 定义:信息集成就是“把分散在各个数据点当中的这些数据给它合到一起去,整合到一起去”。
目标:目标是将企业的内部数据和外部数据进行有效集成,形成直观的、易于理解的信息,供企业的各层决策和分析人员使用。
- 信息集成的可行方式
课堂和课件中探讨了实现信息集成的几种可行方式:
- 联邦数据库 (Federal Database)
- 协调器 (Mediator)
- 数据仓库 (Data Warehouse)
联邦数据库 (Federal Database)
联邦数据库是一种信息集成方式,课件中将其类比为“战略合作”。
- 结构:由多个独立的数据库(如 DB1, DB2, DB3, DB4)组成,它们相互连接。
- 工作方式:一个数据库(如代理商 1)可以直接查询另一个数据库(如代理商 2)。
- 核心问题:集成复杂度高。如果有个 n 个数据库(组件),就需要编写 n(n-1)个组件 来实现它们之间的两两相互翻译查询。
协调器 (Mediator)
- 核心定义:协调器是一个虚视图 (virtual view)。它本身并不存储真实数据,而是作为一个统一的查询入口。
- 结构:协调器位于用户和各个“包装器”之间,它定义了一个用户可以查询的全局模式(例如,
AutosMed(serialNo, model, color, autotrans, dealer))。 - 工作流程:
- 用户向协调器提交一个基于全局模式的查询(例如,“询问协调器是否存在 Gobi 型号的蓝色汽车”)。
- 协调器负责将这个查询分解,并转发给一个或多个相关的“包装器”(例如,先“询问代理商 1”,根据结果再决定是否“询问代理商 2”)。
包装器 (Wrapper)
- 核心定义:包装器位于“协调器”和“数据源”之间,它的主要任务是将协调器发来的标准化查询,翻译成底层数据源能够理解的本地查询语言或术语。
- 工作机制(基于模板):
- 包装器通过“模板 (Templates)”来实现翻译。
- **模板定义了从协调器查询到数据源查询的映射规则(
T=>S)。 - 示例:协调器模板
select * from AutosMed where color = '$c'会被包装器翻译为数据源 1 的查询select serialNo, model, ... from Cars where color = '$c'。
过滤器 (Filter)
- 核心定义:过滤器是为解决包装器“模板爆炸”问题而引入的机制。
- 工作流程:
- 获取超集:包装器不再需要 2^n 个模板,而是只使用少数几个通用的模板(例如,只用按
color查询的模板 1)。 - 当收到一个更复杂的查询时(例如,
... where color = 'red' and model = 'BMW'),包装器只执行它拥有的通用模板(模板1,'$c'='red'),从数据源获取一个包含所需结果的超集(即所有红色的车)。 - 本地过滤:包装器将这个“超集”结果保存在一个临时表中(如
TempAutos)。 - 过滤器最后在这个临时表上执行第二次查询(例如,
select * from TempAutos where model = 'BMW'),筛选出用户真正需要的结果并返回。
- 获取超集:包装器不再需要 2^n 个模板,而是只使用少数几个通用的模板(例如,只用按
从无序抽取到数据仓库
早期方法:数据抽取 (Data Extraction)
- 做法:按需(无序地)从各个 OLTP 系统抽取数据,形成独立数据集。
- 问题:形成“蜘蛛网”架构,不同抽取标准导致数据不一致、可信性低,生产率低下。
解决方案:数据仓库 (Data Warehouse)
- 理念:将“无序的抽取”变为“有序的行为”。
- 目标:创建一个凌驾于所有业务系统之上的“超级数据库”,提供单一、完整、一致的数据视图。
- 核心技术:ETL(Extract, Transform, Load)。
数据仓库的核心特征
数据仓库是一个面向主题 (Subject-Oriented)、集成 (Integrated)、非易失 (Non-volatile)、时变 (Time-Variant) 的数据集合,用于支持管理决策。
数据仓库要解决的两个目的:
- 解决信息集成: 数据仓库的第一个目的是提供一个“完整一致的视图”,这是一个“超级数据库”,而不是虚的视图。通过整合来自不同数据源的信息,提供统一的视图。
- 提升系统性能: 通过将分析型应用与事务型处理分开,提升整个系统性能。
1. 面向主题 (Subject-Oriented)
- 数据库: 面向应用/过程/处理(如订单表支持订单流程)。
- 数据仓库: 面向主题(如商品、顾客、供应商)。
- 实现: 从多个 OLTP 系统抽取数据,围绕“主题”重组,形成完整视图。
2. 集成 (Integrated)
通过 ETL(Extract, Transform, Load)将来自不同源的数据进行统一处理:
- 数据清理:
- 解决编码不一致(如 “M/F” vs “1/0”)
- 解决单位不一致(如 “cm” vs “inch”)
- 数据汇总:
- 提前计算并存储汇总数据(如月销售额)
- 采用反规范化思想,用空间换时间。
3. 非易失性 (Non-volatile) 与 4. 时变性 (Time-Variant)
两者共同定义了数据仓库如何处理“变化”。
- 非易失性: 数据进入仓库后通常不修改或删除(只读)。
- 时变性: 数据仓库记录历史变化。
示例:客户更改地址
| 场景 | 操作 | 结果 |
|---|---|---|
| OLTP | UPDATE 覆盖旧地址 |
历史丢失 |
| DW | 插入新记录,记录时间区间 | 保留历史轨迹 |
数据仓库与数据库的一致性:
- 数据仓库与数据库之间保持的是“相对一致性”,而不是严格的实时同步。实现同步的方式是通过有组织的活动,如 ETL(抽取、转换、加载)。
如何分离?
数据仓库通过 ETL 过程实现数据的分离和集成,使事务型数据与分析型数据互不干扰。
混合型任务
在企业中,有些任务既需要处理日常事务,也需要汇总数据进行分析。例如,采购经理的工作需要同时关注实时库存、销售情况和历史数据。为了解决这些任务,数据仓库引入了操作数据存储(ODS)。
ODS 的特点:
- 定位: 面向事务处理环境,但也支持基础的分析功能。
- 特征: 存储细节数据,具有较强的实时性。
- 更新频率: 可实时更新或根据需求更新。
数据仓库生态:相关概念
数据集市 (Data Mart)
- 面向特定部门或主题的局部数据库,通常是企业级数据仓库(DW)的子集。
操作数据存储 (ODS)
- 介于 OLTP 和 DW 之间的缓冲层,存储细节、可变、当前的数据集合。
数据管理工具的变迁
数据管理工具并非相互替代,而是满足不同阶段需求:
| 工具 | 定位 | 数据特征 | 目的 |
|---|---|---|---|
| 数据库 (DB) | 存放结构化、当前数据 | 热数据 | 支持日常事务处理 (OLTP) |
| 数据仓库 (DW) | 存放结构化、历史、汇总数据 | 冷数据 | 支持企业决策分析 (OLAP) |
| 数据湖 (Data Lake) | 存储全量、所有类型数据(结构化/半结构化/非结构化) | 原始格式 | 数据的单一来源 |
| 大数据平台 (Big Data Platform) | 技术生态(如 Hadoop、Spark、Flink) | 处理/分析能力一体化 | 支撑复杂数据场景 |
| 数据中台 (Data Middle Platform) | 企业级数据能力平台 | 封装复用 | 提高数据应用开发效率 |
第三章、数据仓库基本原理
体系结构
- 数据源 (Data Sources): 包括操作型数据库(如历史数据、查询数据、历史档案)和外部数据。
- 数据抽取、转换、装载 (ETL): ETL 工具从数据源抽取数据,进行清洗、转换,然后装载进中央数据仓库。
- 中央数据仓库 (Central Data Warehouse): 存储集成的、主题化的数据。
- 数据集市 (Data Marts): 从中央仓库派生出的,面向特定部门或主题的局部数据库。
- 前端应用与工具 (Applications and Tools): 用户通过 DW 工具访问数据仓库或数据集市,进行查询和分析。
数据仓库的核心功能
- 数据收集、存储与传递:数据仓库用于保存从多个数据源选取的数据,并为上层应用(查询和分析)提供统一的用户接口。
- 数据流:源数据 → 集成/转换 → 数据仓库。
- 访问流:DW → 可视化接口 → 前端分析工具。
元数据及其管理工具是架构中心,它在数据仓库管理中起着至关重要的作用。
元数据
- 定义: 元数据是“描述数据的数据”(Data about data)。
- 作用: 它帮助存取和管理数据,描述数据的含义和性质,以便更好地理解和使用数据。
- 分类:
- 商业元数据(Business Metadata): 面向终端用户,使用商业术语描述数据。
- 技术元数据(Technical Metadata): 面向开发与管理人员,描述内部结构与实现细节。
元数据的重要性:
- 用于导航:帮助用户理解数据。
- 用于构建:帮助开发人员构建数据仓库。
- 用于管理:运维人员管理数据仓库生命周期。
数据仓库中的数据组织
数据仓库中的数据按不同的汇总级别组织:
- 源数据、当前细节级、早期细节级、轻度综合级、和高度综合级。
核心问题:粒度 (Granularity)
定义: 粒度是数据仓库中数据的细化或综合程度。
影响:
- 数据量: 粒度越细,数据量越大。
- 查询能力: 粒度越细,能够回答的问题种类越多。
设计权衡:
- 低综合度(细粒度):能回答更多查询,但数据量大、查询性能低。
- 高综合度(粗粒度):数据量小、查询性能高,但查询能力受限。
数据追加策略
定义: 数据追加策略用于在初始装载后,只处理自上次输入以来发生变化的数据。
四种主要追加方式:
- 时标方法 (Timestamp)
- DELTA 文件 (Delta File)
- 映像文件 (Snapshot Comparison)
- 日志文件 (Log File)
日志文件是最推荐的追加方式,因为它不影响 OLTP 性能。
