很可惜 T 。T 您现在还不是作者身份,不能自主发稿哦~
如有投稿需求,请把文章发送到邮箱tougao@appcpx.com,一经录用会有专人和您联系
咨询如何成为春羽作者请联系:鸟哥笔记小羽毛(ngbjxym)
作者:彭锋 宋文欣 孙浩峰
来源:华章科技
数据仓库是一个面向主题的、集成的、随时间变化但信息本身相对稳定的数据集合,用于支持管理决策过程。数据仓库的主要功能如下:
数据仓库的发展已有近40年的历史,但是它在大数据平台出现之前主要处理的是关系型数据库中的数据(这里称之为传统数据仓库)。在大数据出现之后,数据仓库承担的任务并没有变,但是其建设方式、建设内容和技术架构都发生了很大的变化。本文将对此做个简单介绍。
与ODS一般保存支持业务运营的当前数据不同,数据仓库记录的是业务数据的历史及汇总数据。在很多系统中,ODS对应的持久性数据存储也叫作贴源数据层,其意义都是一样的:从业务系统中采集的不作修改的OLTP操作数据集。ODS除了作为OLTP数据的导入区之外,也可以处理一些分析需求。表10-2对二者进行了简单对比。
关于数据仓库中的建模,已经有很多介绍传统数据仓库的书详细介绍过,因此这里只做简单介绍。
数据仓库的模型分为三层:概念模型、逻辑模型和物理模型。
一般数据仓库中的建模工作主要在于逻辑模型层,常见的有实体关系(ER)建模和维度(dimensional)建模两种方式。
实体关系建模使用实体加关系的3NF模型来描述企业业务架构。值得注意的是,业务系统(OLTP)里的3NF模型一般针对某个具体的业务流程,而数据仓库(OLAP)里的3NF模型一般针对企业全局的实体和关系抽象,强调数据的汇聚整合和一致性治理。
被誉为“数据仓库之父”的Bill Inmon比较倡导实体关系建模。例如,Teradata为金融业设计的FS-LDM(Financial Services Logical Data Model)就是一个典型的实体关系模型(见图10-2),它将常见的金融活动抽象和总结为10个主题以及它们之间的关系,这10个主题是当事人、产品、协议、事件、资产、财务、机构、地域、营销和渠道。
实体关系建模的好处是符合3NF,数据冗余少,容易进行数据整合和治理。但是不推荐将这种方式用于基于大数据的数据仓库建模,因为其建设周期长,设计者必须深刻了解企业的全局业务之后才能设计和实施,且其不能很好地支持业务的快速变化。
维度建模由数据仓库和商务智能领域的权威专家Ralph Kimball提出,其核心思想是从业务分析决策的需求出发构建模型。
具体来讲,就是将需要分析的业务流程的基本信息(如一次交易的交易ID、客户ID、门店ID、货物ID、交易时间、交易金额)记录在事实表中,而将与此业务流程相关的通用信息(如客户信息、门店信息、货物信息)记录在维度表中。
与实体关系建模不同,维度建模一般使用星型模型或者雪花模型,会有一定的数据冗余(例如在同一次交易中的多个货物记录中,交易ID、客户ID、门店ID等可能会重复),也不符合3NF,但它是我们在为数据中台建设数据仓库时更推荐的建模方式,因为相比实体关系建模,它具有以下优势:
理论上,基于Hadoop的数据仓库建设有多种分层方法:有的体系中没有专门的数据湖,而把ODS归为数据仓库的一部分,有的体系中把数据集市也归为数据仓库的一部分,还有的体系中把维度数据单独算作一层。虽然分层方法不一,但是一般的数据仓库建设过程和思路在原理上都是类似的。
在本文中,我们将数据仓库的建设简单分为数据湖、数据仓库和数据集市三层,其中,数据仓库层可以进一步分为明细数据层(DWD,也称基础数据层)和数据汇总层(DWS,也称通用数据层)。此外,我们使用统一的维度数据表和元数据/主数据管理系统,如图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),其生成和计算问题有两个传统的解决办法。
4. 数据集市
这一层一般包含业务部门按照业务域建立的特定主题的汇总表,反映了业务运行的状况。数据集市中的数据主要来源于汇总数据事实表,但是近年来也有不少人通过数据分析或机器学习应用直接从数据湖生成数据集市报表,毕竟汇总明细表受限于事先的设计。
与汇总数据事实表不同,数据集市的数据表包含直接体现业务属性的字段,比如数据集市中的客户订单统计表包含地区名称和商品名称(但不一定包含地区编码和商品编码)。
这是因为数据集市中的数据表往往会被直接输入可视化的BI工具中进行进一步的分析,地区和商品这些维度字段都会直接采用名称来直观表示其业务属性,以省去查询时的join操作。
例如前面的销售汇总表可能会生成一个名为
sales_by_channel_referer_region的数据集市报告,供市场部门监测广告在各个渠道和市场中的表现。
数据集市中的数据一般都是数据应用的数据来源,比如我们前面提到的可视化BI工具可以以图表的方式呈现数据集市中的数据,或者以数据立方体(多维数据)的方式对数据集市中的数据进行多维度分析(比如上卷、钻取、切片、切块等操作)。
数据仓库中的数据治理以解决实际业务问题为导向,以提升数据资产的管理水平和使用效率为目标,并以元数据为驱动,连接数据标准管理、数据质量管理、数据安全管理各个阶段,形成统一、完善、覆盖数据全生命周期的数据治理体系。数据仓库中的数据治理主要针对以下问题。
为了解决以上问题,数据治理一般需要提供以下功能组件。
在数据治理的过程中,我们一般需要解决数据采集、数据标准、数据组织和转换、数据使用等问题。这里我们主要介绍数据标准和数据质量的有关工作。
数据标准是指保障数据内外部使用和交换的一致性和准确性的规范性约束。数据标准一般包括三个要素:标准分类、标准信息项(标准内容)和相关公共代码(如国别代码、邮政编码)。
数据标准通常可分为基础类数据标准和指标类数据标准。
数据标准管理是指制定和实施数据标准的一系列活动,其中的关键活动有:
数据标准管理的目标是通过制定和发布统一的数据标准,结合制度约束、系统控制等手段,确保企业大数据平台数据的完整性、有效性、一致性、规范性和开放性,为数据资产管理活动提供参考依据。
很多行业监管机构都会组织发布行业数据标准。例如,中国银保监会于2018年5月发布了《银行业金融机构数据治理指引》,绝大部分银行在建设大数据平台或数据中台的时候,必须了解这个数据标准中的内容,并将其融入数据中台的建设中。
那么,怎样才算将数据标准融入数据中台的建设中了呢?
一般来说,就是将数据标准中所描述的数据必须遵守的规则,比如数据取值范围、数据项之间的关系和局限,都用代码表现出来,然后系统持续对需要管理的数据集运行这些检查代码(也有直接修补的代码),如果出问题就报错。这样就保证了数据系统中的数据符合规范。
很多时候,达到这些标准的要求并不需要直接编写代码,而可以使用专门的数据治理工具的DSL来配置数据质量规则。
因为数据标准的编写与行业结合紧密,而且通常有专门的数据治理工具来实施这些数据质量的工作,这里就不展开了。
04 数据清洗
数据治理工作中有一个很重要的步骤是数据清洗。数据清洗有两个目的:一是解决数据质量问题,二是让数据更适合做挖掘。数据清洗的结果是对各种脏数据进行相应的处理,得到标准、干净、连续的数据,供数据统计、数据挖掘等使用。数据的质量问题一般包括下面几种情况。
处理数据质量问题一般有以下方法。
让数据更适合做数据挖掘的方法一般有如下几种。
关于作者:彭锋,智领云科技联合创始人兼CEO。武汉大学计算机系本科及硕士,美国马里兰大学计算机专业博士,主要研究方向是流式半结构化数据的高性能查询引擎,在数据库顶级会议和期刊SIGMOD、ICDE、TODS上发表多篇开创性论文。2011年加入Twitter,任大数据平台主任工程师、公司架构师委员会大数据负责人,负责公司大数据平台及流水线的建设和管理。
宋文欣,智领云科技联合创始人兼CTO。武汉大学计算机系本科及硕士,美国纽约州立大学石溪分校计算机专业博士。曾先后就职于Ask.com和EA(电子艺界)。2016年回国联合创立智领云科技有限公司,组建智领云技术团队,开发了BDOS大数据平台操作系统。
孙浩峰,智领云科技市场总监。前CSDN内容运营副总编,关注云计算、大数据、人工智能、区块链等技术领域,对云计算、网络技术、网络存储有深刻认识。拥有丰富的媒体从业经验和专业的网络安全技术功底,具有超过15年的企业级IT市场传播、推广、宣传和写作经验,撰写过多篇在业界具有一定影响力的文章。
本文摘编自《云原生数据中台:架构、方法论与实践》,经出版方授权发布。
推荐语:前Twitter大数据平台主任工程师撰写,融合硅谷与国内经验,全面讲解云原生数据中台架构、选型、方法论、实施路径,国内外专家联袂推荐。
本文为作者独立观点,不代表鸟哥笔记立场,未经允许不得转载。
《鸟哥笔记版权及免责申明》 如对文章、图片、字体等版权有疑问,请点击 反馈举报
Powered by QINGMOB PTE. LTD. © 2010-2022 上海青墨信息科技有限公司 沪ICP备2021034055号-6
我们致力于提供一个高质量内容的交流平台。为落实国家互联网信息办公室“依法管网、依法办网、依法上网”的要求,为完善跟帖评论自律管理,为了保护用户创造的内容、维护开放、真实、专业的平台氛围,我们团队将依据本公约中的条款对注册用户和发布在本平台的内容进行管理。平台鼓励用户创作、发布优质内容,同时也将采取必要措施管理违法、侵权或有其他不良影响的网络信息。
一、根据《网络信息内容生态治理规定》《中华人民共和国未成年人保护法》等法律法规,对以下违法、不良信息或存在危害的行为进行处理。
1. 违反法律法规的信息,主要表现为:
1)反对宪法所确定的基本原则;
2)危害国家安全,泄露国家秘密,颠覆国家政权,破坏国家统一,损害国家荣誉和利益;
3)侮辱、滥用英烈形象,歪曲、丑化、亵渎、否定英雄烈士事迹和精神,以侮辱、诽谤或者其他方式侵害英雄烈士的姓名、肖像、名誉、荣誉;
4)宣扬恐怖主义、极端主义或者煽动实施恐怖活动、极端主义活动;
5)煽动民族仇恨、民族歧视,破坏民族团结;
6)破坏国家宗教政策,宣扬邪教和封建迷信;
7)散布谣言,扰乱社会秩序,破坏社会稳定;
8)宣扬淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆犯罪;
9)煽动非法集会、结社、游行、示威、聚众扰乱社会秩序;
10)侮辱或者诽谤他人,侵害他人名誉、隐私和其他合法权益;
11)通过网络以文字、图片、音视频等形式,对未成年人实施侮辱、诽谤、威胁或者恶意损害未成年人形象进行网络欺凌的;
12)危害未成年人身心健康的;
13)含有法律、行政法规禁止的其他内容;
2. 不友善:不尊重用户及其所贡献内容的信息或行为。主要表现为:
1)轻蔑:贬低、轻视他人及其劳动成果;
2)诽谤:捏造、散布虚假事实,损害他人名誉;
3)嘲讽:以比喻、夸张、侮辱性的手法对他人或其行为进行揭露或描述,以此来激怒他人;
4)挑衅:以不友好的方式激怒他人,意图使对方对自己的言论作出回应,蓄意制造事端;
5)羞辱:贬低他人的能力、行为、生理或身份特征,让对方难堪;
6)谩骂:以不文明的语言对他人进行负面评价;
7)歧视:煽动人群歧视、地域歧视等,针对他人的民族、种族、宗教、性取向、性别、年龄、地域、生理特征等身份或者归类的攻击;
8)威胁:许诺以不良的后果来迫使他人服从自己的意志;
3. 发布垃圾广告信息:以推广曝光为目的,发布影响用户体验、扰乱本网站秩序的内容,或进行相关行为。主要表现为:
1)多次发布包含售卖产品、提供服务、宣传推广内容的垃圾广告。包括但不限于以下几种形式:
2)单个帐号多次发布包含垃圾广告的内容;
3)多个广告帐号互相配合发布、传播包含垃圾广告的内容;
4)多次发布包含欺骗性外链的内容,如未注明的淘宝客链接、跳转网站等,诱骗用户点击链接
5)发布大量包含推广链接、产品、品牌等内容获取搜索引擎中的不正当曝光;
6)购买或出售帐号之间虚假地互动,发布干扰网站秩序的推广内容及相关交易。
7)发布包含欺骗性的恶意营销内容,如通过伪造经历、冒充他人等方式进行恶意营销;
8)使用特殊符号、图片等方式规避垃圾广告内容审核的广告内容。
4. 色情低俗信息,主要表现为:
1)包含自己或他人性经验的细节描述或露骨的感受描述;
2)涉及色情段子、两性笑话的低俗内容;
3)配图、头图中包含庸俗或挑逗性图片的内容;
4)带有性暗示、性挑逗等易使人产生性联想;
5)展现血腥、惊悚、残忍等致人身心不适;
6)炒作绯闻、丑闻、劣迹等;
7)宣扬低俗、庸俗、媚俗内容。
5. 不实信息,主要表现为:
1)可能存在事实性错误或者造谣等内容;
2)存在事实夸大、伪造虚假经历等误导他人的内容;
3)伪造身份、冒充他人,通过头像、用户名等个人信息暗示自己具有特定身份,或与特定机构或个人存在关联。
6. 传播封建迷信,主要表现为:
1)找人算命、测字、占卜、解梦、化解厄运、使用迷信方式治病;
2)求推荐算命看相大师;
3)针对具体风水等问题进行求助或咨询;
4)问自己或他人的八字、六爻、星盘、手相、面相、五行缺失,包括通过占卜方法问婚姻、前程、运势,东西宠物丢了能不能找回、取名改名等;
7. 文章标题党,主要表现为:
1)以各种夸张、猎奇、不合常理的表现手法等行为来诱导用户;
2)内容与标题之间存在严重不实或者原意扭曲;
3)使用夸张标题,内容与标题严重不符的。
8.「饭圈」乱象行为,主要表现为:
1)诱导未成年人应援集资、高额消费、投票打榜
2)粉丝互撕谩骂、拉踩引战、造谣攻击、人肉搜索、侵犯隐私
3)鼓动「饭圈」粉丝攀比炫富、奢靡享乐等行为
4)以号召粉丝、雇用网络水军、「养号」形式刷量控评等行为
5)通过「蹭热点」、制造话题等形式干扰舆论,影响传播秩序
9. 其他危害行为或内容,主要表现为:
1)可能引发未成年人模仿不安全行为和违反社会公德行为、诱导未成年人不良嗜好影响未成年人身心健康的;
2)不当评述自然灾害、重大事故等灾难的;
3)美化、粉饰侵略战争行为的;
4)法律、行政法规禁止,或可能对网络生态造成不良影响的其他内容。
二、违规处罚
本网站通过主动发现和接受用户举报两种方式收集违规行为信息。所有有意的降低内容质量、伤害平台氛围及欺凌未成年人或危害未成年人身心健康的行为都是不能容忍的。
当一个用户发布违规内容时,本网站将依据相关用户违规情节严重程度,对帐号进行禁言 1 天、7 天、15 天直至永久禁言或封停账号的处罚。当涉及欺凌未成年人、危害未成年人身心健康、通过作弊手段注册、使用帐号,或者滥用多个帐号发布违规内容时,本网站将加重处罚。
三、申诉
随着平台管理经验的不断丰富,本网站出于维护本网站氛围和秩序的目的,将不断完善本公约。
如果本网站用户对本网站基于本公约规定做出的处理有异议,可以通过「建议反馈」功能向本网站进行反馈。
(规则的最终解释权归属本网站所有)