数据中台研发实践

通俗理解数据仓库的运行流程 本文仅为个人观点,适用于我所接触到的大数据平台 一、数据仓库 DW        数据仓库:data warehouse,顾名思义是存放数据的地方。是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。        那么我所接触的产品是如何建立数据仓库的呢?大致分为STAGE层、ODS层、DWD、DWA、D... 阅读详情

转自:https://www.sohu.com/a/396680882_411876?scm=1002.44003c.17c024f.PC_ARTICLE_REC
作者:颜博,马蜂窝数仓研发总监

1、数据处理架构

下面是一个简单的数据处理架构演进过程:

最早数据仓库的计算只支持批处理,通常是按天定时处理数据,在后期逐步进化到准实时,本质上还是批处理,只是处理频度上得有提升,到小时级,或者15分钟这种。
随着技术不断进步,后期演化出一条新的流处理链路,这个链路和之前的批处理分别处理,然后在服务层面利用大数据的计算能力进行合并,向外提供离线+实时数据服务,这也是著名的lambda架构。
最近几年随着Flink等技术的发展,有一个趋势是流批一体化,在接入层统一采用流式接入,计算层采用统一套框架支持实时计算+离线计算,批处理仅仅作为流处理的一个特殊场景进行支持。整体上可以做到流处理、批处理的自由切换。
流计算和批处理在需求场景上有一些本质区别,前者主要用于支持线上业务场景(比如互联网的推荐、搜索、风控等),而批处理更多是支持离线统计分析。
日出而作,日落而息,大家针对大数据的统计分析习惯不会发生根本性变化,最简单的T+1批处理方式也还是数据应用必不可少的环节。在使用同一套架构上,由于数据源变化&维度变化的多样性,批处理往往面临一些复杂场景,这是采用同一套框架上的一些难点,充分支持好批处理也是将来流批一体框架的发展方向。

2、数仓分层与主题分类

1)数仓分层

与传统ETL不同的,我们采用的是ELT的数据架构,较为适合在互联网,总体分为业务数据层、公共数据层、应用数据层三大层次。

① 业务数据层(ODS层)

原始数据经过缓冲层(STG)的加载,会进入数仓的业务数据层,这一层采用范式建模,基本保持与数据源完全一致的结构,对于变化的数据,使用数据拉链加工与存储。

这一层选用范式建模,是指保持源系统(例如关系数据库)的范式结构,好处主要是:
一次性接入数据源结构,针对需求的变动不用频繁去与数据源对接;
便于业务研发更好地理解数据,同时是也是公司的原始数据资产。
针对变化数据采用数据拉链的好处:

保留历史数据的同时,尽可能少占用存储空间,长期来看,拉链存储比起每天全量保留历史节约大概90%空间;
快速、高效地获取历史任意一天业务系统的快照数据。

② 公共数据层(包括公共明细层DWD,公共汇总层DWS)

公共数据层是数据仓库的核心层,是整个数仓中使用率最高的,这一层主要采用的维度建模思路进行设计,类型包括事务事实、周期快照、累积快照。同时为了方便下游对数据的使用,我们会设计一系列的宽表模型,将不同业务过程中的事实进行统一整合,包括纵向整合&横向整合;对于商品、用户主数据类可能分散在不同的源系统中采用纵向整合;横向整合主要包括交易、内容等行为数据不同业务过程的整合,比如:用户(用户信息、注册信息)购买(下单、支付、结算、覆约、完成)商品(商品信息,商家信息,等),我们会把订单流转业务过程整合放到一张明细表里,同时会研发一些基于用户、或者商品视角的轻度汇总宽表。
宽表非常便于理解和易用,下游应用调用也方便。我们之前也做过一些统计,在调用分布来看,宽表的使用占到70%以上。
虽然宽表的使用在数仓建模中非常普遍,但是也有一些缺陷:
数据冗余较多,在存储、计算、调用较为占资源,建议尽量还是按场景去使用;
宽表整合的信息较多,数据权限不好控制。建议可以根据需求,在有限范围内开放整体宽表权限,或者通过视图或者子表的方式建立不同权限的数据范围,适应不同组织的需求;
宽表通常依赖比较多,会影响数据的产出的时效。

③ 应用数据层(DWA层)

顾名思义,就是偏向应用的数据加工,也可以叫集市层,这一层的设计可以相对灵活,贴近应用即可,总体设计思想仍然可以按维度建模思想为主。

2)主题分类

数仓架构的数据分类两个视角,包括主题视角与业务视角。

① 数据主题视角

最重要的一个视角,也就是咱们经常提到的数仓主题,主题是将企业的业务进行宏观数据抽象,是数据仓库里数据的主要组织形式,划分方法如下:
参照波特价值链,分析企业本身经营的业务(基本活动、支持型活动),分别对应哪些数据;
参照业界通用模型,例如像IBM、TD等针对大型行业(如电信、金融、零售)有一些数据主题的通用划分方法;
对企业的内部数据(线上数据模块、数据字典)进行摸底,确认对应到哪些主题。
划分结果会按照三个层级:主题域-->主题-->子主题。

第一级是主题域,针对相对稳定的主题进行合并,归拢到主题域,利于数据的理解与建立全局的数据资产目录;
第二级是主题;
第三级是子主题,主要针对有些主题下分类较多,比如供应链主题下会包含采购、仓储、配送等子主题。
数据主题划分建议完全互斥,不建议重复。

② 数据业务视角

数据业务域是根据企业经营的具体业务,结合企业的组织架构进行划分,层次和分类可以相对灵活,子分类可以允许重复,因为两条不同的业务域可能经营相同的业务,例如电商、内容下都有会员这个业务。

上图是一个比较典型的内容+电商的数据主题与业务分类。
以上一横一纵两个视角,将数据进行更好的归类,在数据模型设计中会打上相应分类标签,从而让数据研发&数据使用人员统一认知。以上两种分类方式主要应用于核心的公共数据层。
业务数据层、应用数据层并不需要遵循以上分类规则,比如业务数据层(ODS层)是按照数据源进行分类,应用数据层(DWA)是根据具体的应用进行分类。

3、数据研发流程

除了合理的架构之外,数据研发的流程也很重要,总体流程如下:

包括需求分析/数据调研、数据模型设计、数据开发&测试、上线发布等流程。
在之前数据中台的核心架构提到不闭门造车,数据研发需要与业务部门充分衔接,比如在数据调研中要与业务研发同学进行线上数据&结构访谈;在数据开发中,与分析&业务同学共同确认标准口径;在数据研发完成后对数据使用方进行数据发布与培训。
以上流程中,除了需求调研,其他部分我们都进行了线上化,包括数据的模型设计,早期我们会手写mapping文档,后期我们逐步把mapping文档进行了线上化,整体的数据模型设计通过模型设计工具完成,包括从概念模型、逻辑模型到物理模型的设计。模型设计完成后,可以一键生成数据知识文档。

4、数据生命周期管理

数据研发完成,还需要关注数据生命周期,一方面数据量的飞速增长不仅仅需要占用大量存储,比如像自建机房,会涉及扩充机柜、机房,往往会面临一些瓶颈;另外一方面,大量的数据会降低数据的计算效率,所以从数据的生成开始,我们就需要考虑生命周期,并且结合数据的使用情况制定数据归档、数据销毁等管理策略。

针对数据已经占用了大量存储资源,可以采取一系列措施进行成本控制,例如:

降存量:通过数据压缩技术、降副本等方式,以及在数据模型更合理的设计,将存量数据存储降低;
控增量:根据数据重要性,可恢复性等考量角度,确认数据的保留周期,并根据周期自动归档或删除;
摊成本:可以通过一些算法,比如数据调用分布、需求来源等,把成本分摊到相应业务部门,让相关业务部门关注到成本。
数据安全也是数据生命周期管理重的一个重要课题,比如针对用户敏感信息,需要在接入时考虑如何加密。一种做法是通过一个独立的物理集群对敏感数据进行隔离与强管控;数据使用中,也需要将数据划分不同的安全或敏感等级(例如有些财务数据的非常敏感,需要谨慎对外开放),根据不同的等级设定不同的访问审批机制。另外,在数据归档、销毁也需要制定好配套的安全管理措施,避免安全风险。

5、数据质量管理

数据质量管理主要包括3个角度:准确性、及时性、一致性。
管理的环节包括:事前、事中、事后、以及事故管理。

针对数据运维的告警发送,传统的方式主要是短信、邮件、电话;随着移动办公工具功能逐步的强大,可以将运维告警以数据接口的方式与这些工具进行对接,将告警发送到企业内部的即时通讯工具。

6、数据应用架构

数据研发最终还是需要赋能到业务&应用,一个合理的数据应用架构是非常关键的,这张图是一个应用架构的简图参考:

从数据的流向上分:

数据仓库(或者数据湖):负责原始数据的计算,主要将数据落地到HDFS;
数据引擎层:
数据加工完成之后,会将数据推送到不同的引擎中,这一层之前提到选择非常多,可以根据自己的场景选择一个混搭组合,比如我们目前选择的有Presto,Kylin,Druid,Mysql;
数据服务层:通过统一化的SQL调用服务,屏蔽底层不同的数据引擎,为上层统一查询提供标准接口;
指标平台:指标平台是一个非常关键的产品,定位于衔接数据研发与数据应用,包括指标的标准定义、逻辑、计算方式、分类等各项内容。指标分类上我们分为标准指标(指标口径经过审核过)、以及非标准指标;
多维查询:这是我们的一个即席查询工具,查询的数据主要来源指标平台,可以选定不同的指标维度组合进行结果呈现,用户可以一次性查询得到结果,也可以将查询结果配置成可视化的报表进行固化。
中间是统一元数据管理:对整个架构中可以对外提供服务的元数据进行统一管理(包括数仓的元数据、查询引擎的元数据、指标元数据等),以及监控这些元数据的调用情况。

最右侧是权限管理:权限管理关乎到数据安全,在设计上需要考虑周全,比如针对表级、指标级、维度级别都可以进行控制;同时产品层面也需要灵活配置权限审批级别与人员。

在面向用户使用层面,我们主要开放的是多维查询&可视化,用户通过多维去查询各类指标&维度数据,得到数据结果列表,再选择可视化配置面板,完成各类图表、表格的自主配置,并发布到个人看板或者业务大盘目录里。也可以将配置的数据看板进行灵活组合,定制成一个小型的数据产品。

7、数据ROI评估

在数据研发中,也要考量数据的ROI,下面是一个简单的ROI模型:

根据活跃度(调用次数等)、覆盖度(通过血缘关系找出依赖数量),以及贡献度(依赖数据的重要等级)来确认数据的价值。同时会评估数据的成本指数(例如计算成本、存储成本等)。
通过以上两者相除,综合得到数据的ROI,针对ROI可以将数据分为不同等级,并相应进行数据治理。比如针对价值低,成本高的数据,可以考虑下线等。

数据研发趋势&关注点

提效:目前借助工具的研发可以把绝大部分数据研发工作线上化,将来借助AI等能力,实现数据处理中包括开发、运维的自动化,提升处理效率;
灵活:流批一体化,包括流处理与批处理自由切换,之前已经提到过,个人认为也是一个发展的趋势;
降本:数据研发链路的成本控制,在数据建设的早期通常不太引起关注,随着数据量不断的积累,往往存储、计算成本成为瓶颈。针对数据建设成本需提前考虑;
算力:我们看到Google,IBM和阿里都在研究量子计算,将来的数据中间层(比如数仓的公共模型)是否可以考虑虚拟化(比如只保留规则&数据结构),具体数据内容在应用发起时,即调即用,更多时候可以不需要占用存储资源。算力的不断提升,有可能会颠覆一些传统数据建设的思路。
 

数仓分层概念ODS、DWI、DWD、DIM、DWA 数据仓库分层架构包含ODS、DWI、DWD、DIM和DWA五个层级,各层职责明确:ODS存储原始业务数据;DWI整合多源异构数据;DWD提供标准化原子明细;DIM管理维度属性;DWA预计算业务指标。分层设计实现数据处理流程解耦、数据复用性提升和数据一致性保障,从原始数据到聚合指标形成清晰的数据流向。ODS到DWA各层依次依赖,DWI为可选层,架构可根据业务复杂度灵活调整。核心价值在于隔离系统变更、统一数据口径、支撑高效分析。 阅读详情

相关推荐

网易数据中台建设实践

数据中台是什么? 从 Hadoop 集群的开发运维,到构建大数据平台,再到数据中台建设,这是很多大型互联网公司大数据的建设历程。到底什么是数据中台,数据中台跟我们之前一直说的大数据平台有什么区别,我想可以通过一个例子来说明。 如果我们把数据中台看作是一个汽车工厂,那大数据平台就是工厂中的设备,Hadoop 集群则是工厂运作所必须的水、电、煤。Hadoop 提供的是大数据生产所必须的计算和存储资...

乔治大哥的博客 1189

数仓学习之路二

数据仓库的分层 数据仓库的特征在于面向主题、集成性、稳定性和时变性,用于支持管理决策。数据仓库的存在的意义在于对企业 的所有数据进行汇总,为企业各个部门提供统一的、规范的数据出口。数据仓库在构建过程中通常都需要进行分层 处理。业务不同,分层的技术处理手段也不同。数仓分层的主要原因: 1通过数据预处理提高效率,因为预处理,所以会存在冗余数据 2如果不分层而业务系统的业务规则发生变化,就会影响整个数据...

Goodera 1404

数据中台技术及业务发展史与未来趋势展望

作者:陈晓勇、柯根 阿里巴巴数据技术编年 简史 2003年淘宝诞生于杭州一间民居。次年,Google发表了三篇大数据论文将计算技术引入大数据时代。 2004年Doug Cutting和Mike Cafarella根据Google的论文实现了Hadoop的HDFS和MR计算框架。 2006年 Hadoop项目进入Apache社区。 2008年9月Hive成为Hadoop的子项目,之后成为Apache的顶级项目。同年,淘宝开始实施基于Hadoop系统的数据计算平台搬迁-云梯1。 2009年阿里云诞生

阿里云云栖号 2848

大数据分层

离线大数据分层

Experience set us apart! 2212

k最近邻算法——电影分类及案例详解

如图3-7所示,若将国际象棋棋盘放在二维直角坐标系中,格子的边长定义为1,坐标的x轴及y轴和棋盘方格平行,原点恰落在某一格的中心点,则王从一个位置走到其他位置需要的步数恰为二个位置的切比雪夫距离,因此切比雪夫距离也称为棋盘距离。关于这里的距离度量,这个电影分类的例子有2个特征,也就是2维的,可以使用我们高中学过的两点距离公式(两点距离公式其实就是欧氏距离在二维空间上的公式,也就是欧氏距离n的值为2的情况,欧氏距离也称为欧几里德距离)来计算距离,如图3-3所示。对数据进行归一化,避免量纲对计算距离的影响。

ZhShy 4555

多模态RAG实战:为LLM装上视觉之眼,实现图文混合文档智能问答

检索增强生成(RAG)技术通过结合外部知识库,有效缓解了大语言模型(LLM)的幻觉问题,并扩展了其知识边界。其核心原理是将文档切分、向量化后存入向量数据库,在问答时通过语义检索召回相关上下文,辅助LLM生成更精准的答案。这项技术的核心价值在于,它为大模型应用提供了一种低成本、高效率的知识注入与实时更新方案,广泛应用于智能客服、知识库问答、文档分析等场景。随着应用深入,纯文本RAG在处理产品手册、学术论文、设计图纸等富含视觉信息的文档时面临瓶颈。本文聚焦的**多模态RAG**和**视觉理解**技术,正是为了解

weixin_30698527的博客 722

数据仓库设计-分层

数据仓库分层设计相互学习

yzf19866的博客 360

TMC2209串口配置实战:从寄存器解析到电机精准控制

本文详细解析TMC2209步进电机驱动芯片的串口配置方法,从硬件连接到UART通信协议,再到核心寄存器功能详解。通过实战案例展示电流控制、微步细分和速度调节等关键配置,帮助工程师实现电机精准控制,并提供了常见故障诊断和优化技巧。

f6g7h8i9j的博客 1173

大模型从0到1在研发数据中台的最佳实践

研发数据中台(性能中台)是一个专为APP性能追踪设计的一站式解决方案平台。通过先进的数据采集与监控技术,为APP提供实时、全链路的应用性能监控服务,助力APP提升线上问题排查与解决的效率。

2401_85378759的博客 1555

【操作系统】 Operation System 第二章:操作系统基础操作

2.1 操作系统的启动 (1)CPU, I/O, 内存通过总线连接。 (2)DISK:存放OS; BIOS:基本I/O处理系统( basic I/O system); Bootloader: 加载OS到内存中。 (3)当电脑通电时,段寄存器CS和指令寄存器IP能够确定一个内存地址,例如CS:IP = 0xf000:fff0. (4)POST(加电自检),寻找显卡和执行BIOS。(显示器,键盘…是否...

iwanderu的博客 1万+

halcon3D 点云拟合球体

halon3D 点云拟合球面

weixin_43213429的博客 1639

大模型在研发数据中台的应用实践

研发数据中台(性能中台)是一个专为APP性能追踪设计的一站式解决方案平台。通过先进的数据采集与监控技术,为APP提供实时、全链路的应用性能监控服务,助力APP提升线上问题排查与解决的效率。接入情况:覆盖了公司内部50多个APP、小程序、浏览器,以及外部收购的APP。服务规模:每日处理近千亿条研发数据,数据峰值达到30万QPS,核心业务端到端入库时间达到秒级别。业务可视化报表:针对通用化业务,提供例如问题概览、APP启动速度、用户分析等页面的可视化报表。业务宽表与数据集。

lihui49的博客 1670

IEEE论文投稿必看:PDF eXpress报错font not embedded的3种修复方法(附Adobe Acrobat DC操作截图)

本文针对IEEE论文投稿时PDF eXpress系统常见的“font not embedded”报错,提供了三种核心修复方案。首先,详细解析了使用Adobe Acrobat DC进行专业修复的完整操作流程与关键技巧。其次,介绍了无需付费软件的开源与免费工具链(如Ghostscript)解决方案。最后,从源头出发,指导LaTeX和Microsoft Word用户在生成PDF时正确设置以确保字体自动嵌入,帮助研究者彻底解决格式问题,确保投稿顺利。

ujm56789012的博客 516

qData 数据中台专业版数据研发工作台升级:IDE 式布局与开发链路整合实践

qData数据中台专业版数据研发工作台完成全面升级,推出IDE式统一工作台,通过八大核心功能解决数据开发痛点:1)整合开发资源中心,实现任务、脚本、表等资源集中管理;2)多标签SQL编辑器支持并行开发;3)右侧配置面板统一管理任务参数;4)依赖血缘功能可视化数据链路;5)底部调试面板集中展示执行结果与日志;6)无缝衔接调度发布流程;7)提升开发效率50%以上;8)强化任务治理基础。该升级使开发人员能在单一界面完成全流程数据开发,减少80%的页面跳转,大幅提升开发效率与管理规范度。

qiantongkeji的博客 184

技术文档的语言表达:简洁、准确与易懂的平衡艺术

技术文档的语言表达不仅要简洁、准确,还需要能够打破技术壁垒,使不同背景的读者都能理解。这是一项需要技巧和经验的工作,它要求技术作者既要具备扎实的专业知识,又要具备清晰的表达能力。通过不断打磨语言的简洁性、准确性和易懂性,我们能够创造出一份高质量的技术文档,让知识的传递不再受限于语言的障碍。

人心有反复,好在山水有重逢。 4677

一、数学建模层次分析法(AHP)【清风数学建模个人笔记】

层次分析法: 层次分析法主要用于解决评价类问题(例如:选择哪种方案更好、哪位员工、运动员等表现得更优秀) 评价类问题: 分析问题得出评判问题的子标,分别给不同子标赋予权重(权重和要为1) ...

m0_58882109的博客 1万+

读透《阿里巴巴数据中台实践》,其到底有什么高明之处?

这是傅一平的第296篇原创作者:傅一平个人微信:fuyipingmnb最近阿里巴巴分享了《阿里巴巴数据中台实践》这个PPT(自行搜索原始文章),对于数据中台的始作俑者,还...

fuyipingwml1976124的博客 276

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

从数仓到数据中台,谈技术选型最优解

大家好,今天分享的议题主要包括几大内容: 带大家回顾一下大数据在国内的发展,从传统数仓到当前数据中台的演进过程; 我个人认为数据中台的核心组成,以及一些技术选型参考; 数据研发是数据中台很重要的一环,会分享一些我们在数据研发方面的实践,主要是数据仓库架构与研发方面。 一、大数据演进,从数据仓库到数据中台 第一阶段 21世纪的第一个10...

Liyiming 3739

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

从数仓到数据中台,且看马蜂窝数仓研发总监谈技术选型最优解

本文根据马蜂窝数仓研发总监颜博老师在线上分享演讲内容整理而成,围绕数据仓库架构和研发方方面面,学习!

云祁QI 2109

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

大数据演进简史:从数仓到数据中台,谈技术选型最优解

大家好,今天分享的议题主要包括几大内容: 带大家回顾一下大数据在国内的发展,从传统数仓到当前数据中台的演进过程; 我个人认为数据中台的核心组成,以及一些技术选型参考; 数据研发是数据中台很重要的一环,会分享一些我们在数据研发方面的实践,主要是数据仓库架构与研发方面。 一、大数据演进,从数据仓库到数据中台 第一阶段 21世纪的第一个10年,企业级数据仓库(EDW)从萌芽到蓬勃发展,“IOT”( IBM、Oracle、Teradata)占领了大部分市场,提供数据仓库建设从硬件、软件到实施的整体方案。

一个天秤座的架构师 2万+

【数据中台】学习摘录-纵观数据中台

文章目录1. 做数据中台的前提1.1 那如何如何挖掘业务的痛点呢?1.2 推进数据中台项目落地 这段时间将极客时间上的网易的《数据中台实践》与《阿里的大数据之路》粗略的看了一遍(两本书写的内容涉及面非常之多,也有很多细节没有展开,但都是非常好的数据中台指南,两本内容侧重点不同,网易的更偏实践,阿里更偏理论,都适合放在案台用作工具书翻看),也将整个数据架构梳理了一遍,对数据中台有了更深层次的理解,也看清了数据中台在整个公司中的战略位置。下面我将梳理一些我所学到,理解的数据中台及实现方案。 首先,先说明结论,数

孟知之的搬砖填坑历险记 892
上一篇: 数据中台架构与技术选型
下一篇: 中台的分类及实时数据中台构建
BabyFish13
博客等级 码龄12年 2730粉丝 953原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值