首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
ToB圈子
›
数据库
›
数据仓库
›
终于有人把数据仓库讲明白了
返回列表
发新帖
终于有人把数据仓库讲明白了
[复制链接]
发表于 2025-6-4 18:38:47
|
显示全部楼层
|
阅读模式
数据仓库是一个面向主题的、集成的、随时间变化但信息本身相对稳固的数据聚集,用于支持管理决策过程。
数据仓库的主要
功能
如下:
建立公司业务数据模型;
整合公司数据源,让清洗和管理之后的数据成为业务数据的唯一事实;
支持进行细粒度的、多维的分析,帮助高层管理者大概业务分析人员做出商业战略决策;
为更高一层的数据服务、机器学习应用提供主要的历史数据来源。
数据仓库的发展已有近40年的历史,但是它在大数据平台出现之前主要处理的是关系型
数据库
中的数据(这里称之为传统数据仓库)。
在大数据出现之后,数据仓库承担的任务并没有变,但是其建设方式、建设内容和技术架构都发生了很大的变化。
本文将对此做个简单先容。
与ODS一样平常保存支持业务运营的当前数据差别,数据仓库记录的是业务数据的历史及汇总数据。在许多系统中,ODS对应的持久性数据
存储
也叫作贴源数据层,其意义都是一样的:从业务系统中收罗的不作修改的OLTP操作数据集。ODS除了作为OLTP数据的导入区之外,也可以处理一些分析需求。表10-2对二者进行了简单对比。
▼表10-2 ODS和数据仓库的对比
01 数据建模方式
关于数据仓库中的建模,已经有许多先容传统数据仓库的书详细先容过,因此这里只做简单先容。
数据仓库的模型分为三层:概念模型、逻辑模型和物理模型。
概念模型将业务抽象出来,实现对实际业务的数字化描述。
逻辑模型将概念模型进行结构化的设计,使其能够用于后续的分析和管理。
物理模型将逻辑模型映射到实际的物理
存储
上,例如
数据库
、表的设计。
一样平常数据仓库中的建模工作主要在于逻辑模型层
,常见的有
实体关系
(ER)建模和
维度
(dimensional)建模两种方式。
实体关系建模利用实体加关系的3NF模型来描述企业业务架构。
值得注意的是,业务系统(OLTP)里的3NF模型一样平常针对某个详细的业务流程,而数据仓库(OLAP)里的3NF模型一样平常针对企业全局的实体和关系抽象,夸大数据的汇聚整合和一致性管理。
被誉为“数据仓库之父”的Bill Inmon比较倡导实体关系建模。例如,Teradata为金融业设计的FS-LDM(Financial Services Logical Data Model)就是一个典型的实体关系模型(见图10-2),它将常见的金融活动抽象和总结为10个主题以及它们之间的关系,这10个主题是当事人、产品、协议、变乱、资产、财政、机构、地域、营销和渠道。
▲图10-2 Teradata FS-LDM
实体关系建模的利益是符合3NF,数据冗余少,轻易进行数据整合和管理。但是不保举将这种方式用于基于大数据的数据仓库建模,因为其建设周期长,设计者必须深刻相识企业的全局业务之后才华设计和实行,且其不能很好地支持业务的快速变化。
维度建模由数据仓库和商务智能领域的权威专家Ralph Kimball提出,其焦点头脑是从业务分析决策的需求出发构建模型。
详细来讲,就是将需要分析的业务流程的基本信息(如一次交易的交易ID、客户ID、门店ID、货物ID、交易时间、交易金额)记录在事实表中,而将与此业务流程相干的通用信息(如客户信息、门店信息、货物信息)记录在维度表中。
与实体关系建模差别,维度建模一样平常利用星型模型大概雪花模型,会有一定的数据冗余(例如在同一次交易中的多个货物记录中,交易ID、客户ID、门店ID等大概会重复),也不符合3NF,但它是我们在为数据
中台
建设数据仓库时更保举的建模方式,
因为相比实体关系建模,它具有以下上风:
比较直观和便于理解,一条事实表中的记录就可以还原一个业务流程的大部分信息;
处理复杂的查询效率较高,无须做大量会占用许多盘算资源的join操作;
能够快速支持业务的变化和扩展,可以方便地添加新的业务模型及维度,而无须考虑复杂的依赖关系;
可以快速实行和见效,可以有针对性地选择业务场景落地然后再逐渐扩展。
02 数据仓库建设的层次
理论上,基于Hadoop的数据仓库建设有多种分层方法:有的体系中没有专门的数据湖,而把ODS归为数据仓库的一部分,有的体系中把数据集市也归为数据仓库的一部分,另有的体系中把维度数据单独算作一层。虽然分层方法不一,但是一样平常的数据仓库建设过程和思路在原理上都是类似的。
在本文中,我们将数据仓库的建设简单分为数据湖、数据仓库和数据集市三层,此中,数据仓库层可以进一步分为
明细数据层
(DWD,也称基础数据层)和
数据汇总层
(DWS,也称通用数据层)。别的,我们利用统一的维度数据表和元数据/
主数据
管理系统,如图10-3所示。
▲图10-3 数据仓库层次
下面先容一下数据仓库里各个层次的主要
功能
、数据模型以及主要数据处理方式。
值得注意的是,许多数据仓库系统都可以根据自己的实际环境来组织这些层次的
功能
,好比,由于利用专门的原始明细数据层会多占用许多空间,许多实际项目就将数据湖中的ODS轻微扩展一下,而不专门设置原始明细数据层;也有系统干脆就把ODS规划到数据仓库的范畴。
另有,虽然数据集市通常是与数据仓库区分开的,以显示其面向详细业务、直接利用的特征(所以一样平常称之为应用数据集市),但是数据仓库的建设一样平常都会包括数据集市。其实这个名称是什么并不重要,关键是要理解每一层承担的工作和设计原则。
1. 原始数据
一样平常按照业务域组织业务数据的原始明细历史记录。偶然这一层直接由ODS承担,如单独设置了这一层,其数据模型基本与ODS一致,再加上一些数据处理需要的统一扩展字段,例如入库时间、更新时间、处理批次等。
偶然会在这一层进行名称、
代码
的标准化,例如表名的统一规范、表名的去重处理,以及一些简单的维度表归并和
代码
转换等。这些数据既可以按增量组织,根据年、月、日进行分区,也可以进行全量组织,每天
存储
一个最新的全量快照。
2. 明细数据
将原始明细数据根据业务规则进行各种数据清洗处理,包括ID转换、字段归并、脏数据处理、维度数据标准化、脱敏处理、数据质量检测等。
这一层的数据模型需要将
主数据
和维度数据模型确定下来,例如用户、产品、交易等
主数据
及其标准维度,
并将原始数据通过
ETL
实行前期处理,将效果数据存储到相应的清洗明细表里。
一样平常这一层还负责将一些非结构化数据(日记、埋点数据)解析和管理转换成结构化的明细表,例如将
服务器
日记解析成用户访问明细表等。绝大部分的数据管理工作都发生在这一层,这一层的工作量也是最大的。
这一层的数据的ID、维度数据值已经标准化和经过验证,将被作为
数据分析
的主要基础,其清洗和处理的逻辑比较复杂,在处理中出现错误时往往需要重新盘算。
因此,血缘、
版本
、变更管理对这一层数据的有用管理是很关键的。
3. 汇总数据
汇总数据是在清洗的明细数据基础上生成的细粒度的汇总聚合效果。这一层的数据模型一样平常就是根据业务需求按照星型模型大概雪花模型建设的最细粒度的汇总,所以基本上就把数据仓库的分析功能确定了。
例如,如果要按渠道(channel)、用户性别(gender)、年龄(age)、收入程度(income)、产品品类(category)、广告引流(referer)来查询产品的销售环境,那么就要有一个专门的汇总事实表来处理这个查询,其命名类似于sales_by_channel_gender_age_income_category_referer。
这个表名中包含了涉及的每个维度的每一个大概的取值组合,且细化到每天或每小时的销售额。每一个字段里的维度值都是标准的ID,对应到相应维度表中的取值。
数据仓库的建模就主要发生在这一阶段,数据仓库分析的限定就是这里建立的数据模型的能力。
例如,在上面的模型里,我们可以利用细粒度数据的聚合往返答sales_by_channel(上月在淘宝上的销售额)+sales_by_referer(昨天百度广告带来的销售额)这样的聚合查询(roll up),也可以回答“昨天35岁以上高收入男性通过百度广告在淘宝上购买3C产品的销售额”这种下钻查询(drill down)。
但是,如果我们再加一个维度,例如地区(region),这个模型就不能支持了。这时我们需要修改模型,重新盘算。
对于这种环境,有一种思路是,可不可以事先把全部的维度都加进去?这种思路的主要问题在于数据条目会随维度组合数量标增长而迅速增长。
如果有50个维度,每个维度有100个大概的取值,那么一条销售记录就大概产生5000条汇总记录,在实际工作场景中大概会更多。除了数据量巨大、
ETL
任务耗时长之外,这样的方案在做聚合查询的时候效率也很低。
这种高维组合数据一样平常称为数据立方体(Data Cube),其生成和盘算问题有两个传统的办理办法。
其一,根据业务需求人工确定最常用的组合,例如,上面的表可以分为sales_by_channel_gender_age_income_referer_region和sales_by_channel_category_referer_region,如果业务部分有其他组合,可以利用即席盘算来算一下,但无法做到实时交互了。
其二,利用Kylin这样的预盘算和动态规划的Cube Planner。
4. 数据集市
这一层一样平常包含业务部分按照业务域建立的特定主题的汇总表,反映了业务运行的状况。
数据集市中的数据主要来源于汇总数据事实表,但是近年来也有不少人通过
数据分析
或机器学习应用直接从数据湖生成数据集市报表,毕竟汇总明细表受限于事先的设计。
与汇总数据事实表差别,数据集市的数据表包含直接体现业务属性的字段,好比数据集市中的客户订单统计表包含地区名称和商品名称(但不一定包含地区编码和商品编码)。
这是因为数据集市中的数据表往往会被直接输入可视化的
BI
工具中进行进一步的分析,地区和商品这些维度字段都会直接采用名称来直观表现其业务属性,以省去查询时的join操作。
例如前面的销售汇总表大概会生成一个名为sales_by_channel_referer_region的数据集市报告,供市场部分监测广告在各个渠道和市场中的表现。
数据集市中的数据一样平常都是数据应用的数据来源
,好比我们前面提到的可视化
BI
工具可以以图表的方式呈现数据集市中的数据,大概以数据立方体(多维数据)的方式对数据集市中的数据进行多维度分析(好比上卷、钻取、切片、切块等操作)。
03 数据仓库中的数据管理
数据仓库中的数据管理以办理实际业务问题为导向,以提升数据资产的管理程度和利用效率为目标,并以元数据为驱动,毗连数据标准管理、数据质量管理、数据
安全
管理各个阶段,形成统一、完善、覆盖数据全生命周期的数据管理体系。数据仓库中的数据管理主要针对以下问题。
第一,数据分散、紊乱,无法理解。
许多企业业务线众多,数据源分散,且各系统间无法打通,成为信息孤岛;数据收集标准不相同,数据零星地存储在各个业务系统中,难以形成全局数据联动。
第二,数据收集渠道单一,模式落后,效率低,本钱高。
业务增长带来数据增长,传统数据管理模式难以应对大数据增长。从渠道上来说,传统数据收集渠道单一、落后、偏线下化;从方式上来说,许多企业收集信息的手段仍停留在手工收集阶段,效率低、本钱高且造成数据不匹配。
第三,数据标准不统一,缺乏分析工具,数据难运用。
一方面,数据标准不统一导致整合困难,难以进行全局联动;另一方面,缺乏
数据分析
工具,仅靠数据专业人才难以满足企业需求,且难以看到数据的实时变化及代价。这两方面的因素导致难以真正实现数据驱动业务发展,提升运营管理程度。
第四,系统落后,难以满足数据管理需求,存在数据风险隐患。
在数据井喷式增长的当下,众多企业未能跟上随数据增长而变化的需求,难以满足监管要求,同时存在数据隐患及风险问题。
为了办理以上问题,数据管理一样平常需要提供以下功能组件。
元数据管理:
通过统一的元数据管理满足各类用户的数据资源利用需求,实现数据资产的可视化管理。
数据质量管理:
通过数据质量控制方法,使得数据的收罗、存储和利用符合相干的质量要求。
数据
安全
管理:
包管数据不因偶然或恶意的原因而遭到破坏、更改或泄露,还包括数据访问权限控制、数据
安全
服务、数据访问审计等。
数据标准管理:
为数据标准提供系统工具支撑,包括标准管理、标准展示、标准
监控
等功能。
元数据管理接口:
提供元数据查询、数据加解密、数据资产注册接口和SSO接口。
数据管理门户:
包括数据资产查询以及数据质量、数据安全、元数据和数据标准集成门户等。
在数据管理的过程中,我们一样平常需要办理数据收罗、数据标准、数据组织和转换、数据利用等问题。这里我们主要先容数据标准和数据质量的有关工作。
数据标准是指保障数据内外部利用和交换的一致性和准确性的规范性束缚。
数据标准一样平常包括三个要素:标准分类、标准信息项(标准内容)和相干公共
代码
(如国别代码、邮政编码)。
数据标准通常可分为
基础类数据标准
和
指标类数据标准
。
基础类数据标准
一样平常包括数据维度标准、主数据标准、逻辑数据模型标准、物理数据模型标准、元数据标准、公共代码标准等。
指标类数据标准
一样平常分为基础指标标准和盘算指标(又称组合指标)标准。基础指标一样平常不含维度信息,且具有特定业务和经济寄义,盘算指标通常由两个以上基础指标盘算得出。
数据标准管理是指制定和实行数据标准的一系列活动,此中的关键活动有:
理解数据标准化需求;
构建数据标准体系和规范;
规划制定命据标准化的实行路线和方案;
制定命据标准管理办法和实行流程要求;
建设数据标准管理工具,推动数据标准的实行落地;
评估数据标准化工作的开展环境。
数据标准管理的目标是通过制定和
发布
统一的数据标准,结合制度束缚、系统控制等手段,确保企业大数据平台数据的完整性、有用性、一致性、规范性和开放性,为数据
资产管理
活动提供参考依据。
许多行业监管机构都会组织
发布
行业数据标准。例如,中国银保监会于2018年5月
发布
了《银行业金融机构数据管理指引》,绝大部分银行在建设大数据平台或数据
中台
的时候,必须相识这个数据标准中的内容,并将其融入数据
中台
的建设中。
那么,怎样才算将数据标准融入数据中台的建设中了呢?
一样平常来说,就是将数据标准中所描述的数据必须遵守的规则,好比数据取值范围、数据项之间的关系和局限,都用代码表现出来,然后系统一连对需要管理的数据集运行这些查抄代码(也有直接修补的代码),如果出问题就报错。这样就包管了数据系统中的数据符合规范。
许多时候,达到这些标准的要求并不需要直接编写代码,而可以利用专门的数据管理工具的DSL来设置数据质量规则。
因为数据标准的编写与行业结合紧密,而且通常有专门的数据管理工具来实行这些数据质量的工作,这里就不展开了。
04 数据清洗
数据管理工作中有一个很重要的步调是数据清洗。
数据清洗有两个目标:一是办理数据质量问题,二是让数据更适合做挖掘。
数据清洗的效果是对各种脏数据进行相应的处理,得到标准、干净、一连的数据,供数据统计、数据挖掘等利用。数据的质量问题一样平常包括下面几种环境。
数据不完整
,例如患者的属性中缺少性别、籍贯、年龄等。
数据不唯一
,例如差别来源的数据出现重复的现象。
数据不权威
,例犹如一个指标出现多个来源的数据,且数值不一样。
数据不合法
,例如获取的数据与常识不符,如年龄大于150岁。
数据不一致
,例如差别来源的差别指标实际内涵是一样的。
处理数据质量问题一样平常有以下方法。
数据完整性:
直接补齐数据。没有办法直接补齐的,通过其他信息补全,例如利用身份证件号码推算性别、籍贯、出生日期、年龄等。还可以通过前后数据补全,例如时间序列缺数据,可以利用前后的均值;如果缺的数据较多,可以利用平滑等处理。
数据唯一性:
去除重复记录,只保留一条。可以按
数据库
主键去重,也可以按规则去重。编写一系列规则,对重复环境复杂的数据进行去重,例如对于差别渠道来的客户数据,可以通过相同的关键信息进行匹配,归并去重。
数据的权威性:
对差别渠道设定权威级别,用最权威的那个渠道的数据。
数据的合法性:
设定强制合法规则,凡是不在此规则范围内的,强制设为最大值,大概判为无效并剔除。例如,字段类型合法规则中,日期字段格式为year-month-day;字段内容合法规则中,性别属于男、女或未知。
数据的一致性:
建立数据体系,包含但不限于指标体系(度量)、维度(分组、统计口径)、单元、频度、数据。
让数据更适合做数据挖掘的方法一样平常有如下几种。
降低高维度数据的维度:
一样平常采用主身分分析法和随机森林法。
处理低维度数据:
通过汇总、匀称、加总、取最大值、取最小值、离散化、聚类、自界说分组等方法来抽象。
处理无关和冗余信息:
剔除无关的和冗余的字段。
处理多指标数值:
对多指标数值进行归一化,例如取最大/最小值、取均值等。
关于作者:
彭锋
,智领云科技联合创始人兼CEO。武汉大学盘算机系本科及硕士,美国马里兰大学盘算机专业博士,主要研究方向是流式半结构化数据的高
性能
查询引擎,在数据库顶级会议和期刊SIGMOD、ICDE、TODS上发表多篇开创性论文。2011年加入Twitter,任大数据平台主任工程师、公司架构师委员会大数据负责人,负责公司大数据平台及流水线的建设和管理。
宋文欣
,智领云科技联合创始人兼CTO。武汉大学盘算机系本科及硕士,美国纽约州立大学石溪分校盘算机专业博士。曾先后就职于Ask.com和EA(电子艺界)。2016年回国联合创立智领云科技有限公司,组建智领云技术团队,开发了BDOS大数据平台操作系统。
孙浩峰
,智领云科技市场总监。前CSDN内容运营副总编,关注云盘算、大数据、人工智能、区块链等技术领域,对云盘算、网络技术、网络存储有深刻熟悉。拥有丰富的媒体从业履历和专业的网络安全技术功底,具有超过15年的企业级IT市场传播、推广、宣传和写作履历,撰写过多篇在业界具有一定影响力的文章。
本文摘编自《
云原生
数据中台:架构、方法论与实践》,经出书方授权发布。
延伸阅读《
云原生
数据中台:架构、方法论与实践》点击上图相识及购买
转载请联系微信:DoctorData
保举语:
前Twitter大数据平台主任工程师撰写,融合硅谷与国内履历,全面解说
云原生
数据中台架构、选型、方法论、实行路径,国内外专家携手保举。
<span ><strong><strong >划重点<span >
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
回复
使用道具
举报
返回列表
熊熊出没
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表