企业级数据中台构建方法和指导

news2024/11/25 0:42:01

目录

  • 1. 数据中台的概念
  • 2. 数据中台适合企业
    • 2.1 企业构建数据中台面临的问题
    • 2.2 企业构建数据中台解决问题的方法
    • 2.3 什么样的企业适合构建数据中台
  • 3. 如何建设数据中台
    • 3.1 方法论
      • 3.1.1 OneData
      • 3.1.2 OneService
    • 3.2 技术
    • 3.3 组织
  • 4. 数据中台实现:指标管理
  • 5. 数据中台实现:数据质量
  • 6. 数据中台实现:成本控制
  • 7. 数据中台实现:数据服务化

1. 数据中台的概念

数据中台是指通过数据技术对海量数据进行采集、计算、存储和处理,同时统一标准和口径,形成全域级、可复用的数据资产中心和数据存储能力中心,形成大数据资产层,进而为客户提供高效的服务

数据中台构建的服务考虑了"可复用性",每项服务都像一个积木,可以随意组合,灵活高效地解决前台的个性化需求

数据中台的核心理念是"数据取之于业务,用之于业务",数据中台着眼于业务的积累和沉淀,构建了从数据生产到消费、消费后数据返回到生产的闭环过程

如下是阿里的“大中台,小前台”的战略图

大中台,小前台
其中大中台,包括业务中台和数据中台

业务中台和数据中台

2. 数据中台适合企业

2.1 企业构建数据中台面临的问题

主要有五点:

  1. 指标口径不一致:业务口径不一致、计算逻辑不一致、数据来源不一致。要实现一致,就务必确保对同一个指标,只有一个业务口径,只加工一次,数据来源必须相同

  2. 数据重复建设,需求响应时间长:解决数据复用的问题,要确保相同数据只加工一次,实现数据的共享

  3. 取数效率低:面对几千甚至上万张表,快速找到想要的数据很难。所以需要构建一个全局的企业数据资产目录,实现数据地图的功能

  4. 数据质量差:没有数据稽核任务。存储数据链路,及时发现数据质量问题,并恢复数据

  5. 数据成本线性增长:大企业烟囱式开发,导致一个企业拥有很多小数仓。所以解决方案的核心:解决数据重复建设,打通数据孤岛

2.2 企业构建数据中台解决问题的方法

构筑一个统一的平台,提供统一的出入口:OneData、OneService

  • 由一个团队,负责所有指标的管控,明确每个指标的业务口径,数据来源和计算逻辑。确保唯一性

  • 数据服务化,提高数据应用接入和管理的效率

  • 对于非技术人员,数据中台提供可视化的取数平台。你只需要选取指标、通过获取指标系统中每个指标的可分析维度,然后勾选,添加筛选过滤条件,点击查询,就可以获取数据。这个需要公司自己研发

  • 构建了企业数据地图,你可以很方便地检索有哪些数据,它们在哪些表中,又关联了哪些指标和维度

  • 数据只能加工一次,强调数据的复用性

  • 成本控制,研发了一个数据成本治理系统,从应用维度、表维度、任务的维度、文件的维度进行全面的治理。对于长时间未使用的指标,可以考虑清除。这个需要公司自己做埋点,自己研发

2.3 什么样的企业适合构建数据中台

既要维护之前的数据平台,又要构建新的数据平台,需要大量的人力和时间。而且构建出来的数据中台,还需要根据最终的业务应用进行不断的调整

企业在选择数据中台的时候,应该考虑这样几个因素,不要盲目搞数据中台

  • 企业是否有大量的数据应用场景: 数据中台本身并不能直接产生业务价值,数据中台的本质是支撑快速地孵化数据应用。所以当你的企业有较多数据应用的场景时(一般要 3 个以上)

  • 经过了快速的信息化建设,企业存在较多的业务数据的孤岛,需要整合各个业务系统的数据,进行关联的分析

  • 当你的团队正在面临效率、质量和成本的苦恼时,面对大量的开发,却不知道如何提高效能,数据经常出问题而束手无策

  • 当你所在的企业面临经营困难,需要通过数据实现精益运营,提高企业的运营效率的时候

  • 企业规模也是必须要考虑的一个因素,数据中台需要投入大量人力和时间,收益偏长线,所以更适合业务相对稳定的大公司,并不适合初创型的小公司

3. 如何建设数据中台

3.1 方法论

3.1.1 OneData

所有数据只加工一次

数据中台就是要在整个企业中形成一个公共数据层,消灭这些跨部门的小数仓,实现数据的复用,所以强调数据只加工一次,不会因为不同的应用场景,不同的部门数据重复加工

如何实现:

  • 数据划分主题进行管理

  • 数据格式和字段命名和定义规范化:数仓分层-业务主题域-业务过程-基础信息-分区规则

  • 指标一致,不存在二义性:提供全局数据字典确保意义一致

  • 数据模型复用:推荐采用分层的设计方式,通常包括:ODS原始数据层、DWD明细数据层、DWS汇总数据层、ADS应用数据层、DIM 公共维度层

  • 数据完善:数据中台尽可能的覆盖到所有业务过程,用户和系统的一切行为都被记录下来永久保存

3.1.2 OneService

数据即服务,强调数据中台的数据应该是通过API接口的方式被访问。API接口屏蔽了底层数据存储,使用统一标准的API接口查询数据,提高了数据接入的速度

实现方法:

  • 给用户屏蔽底层的物理数据模型,提供数据逻辑模型
  • 实现包括权限、日志、监控等管控能力的数据网关:权限控制,统计分析,流量控制,成本控制等
  • 提供无状态的,高性能和稳定可靠的数据服务

3.2 技术

可以参考网易的数据中台架构

中台架构1. 大数据计算、存储基础设施
数据中台的底层是Hadoop等的大数据计算、存储基础设施

  1. 工具产品
    覆盖了从数据集成、数据开发、数据测试到任务运维的整套工具链产品。同时还包括基础的监控运维系统、权限访问控制系统和项目用户的管理系统。由于涉及多人协作,所以还有一个流程协作与通知中心

  2. 数据治理模块
    它对应的方法论就是OneData体系。以元数据中心为基础,提供了包括数据地图、数仓设计、数据质量、成本优化以及指标管理在内的5个产品

  3. 数据服务
    对外提供了统一的数据服务,对应的方法论就是OneService

  4. 数据产品和应用
    包括面向非技术人员的自助取数系统;面向数据开发、分析师的自助分析系统;面向敏捷数据分析场景的BI产品;活动直播场景下的大屏系统;以及用户画像相关的标签工厂

3.3 组织

数据中台建设职责的部门是一个独立于业务线的部门。数据中台的组织必须懂业务,和明确中台的业务目标,为最终业务服务

必须得到高层领导的支持和重视,需要:

  • 一把手牵头,全员共识
  • 总体规划,分步实施
  • 找准切入点,解决具体业务问题

综合来讲:

组织

  • 数据产品部门:负责数据中台、数据产品的体系规划、产品设计、规范制定、应用效果跟进,指标口径的定义和维护(有的部门是由分析师管理)

  • 数据平台部门:负责研发支撑数据中台构建的产品,例如指标系统、元数据中心、数据地图等

  • 数据开发团队:负责维护数据中台的公共数据层,满足数据产品制定的数据需求

  • 应用开发团队:负责开发数据应用产品,比如报表系统、电商中的供应链系统、高层看板、经营分析

4. 数据中台实现:指标管理

定义指标的方法

  • 面向主题:为了提高指标管理的效率,你需要按照业务线、主题域和业务过程三级目录方式管理指标

  • 拆分原子指标和派生指标:统计周期、统计粒度、业务限定、原子指标,组成派生指标

  • 命名规范:规范统一化,通俗易懂化

如何构建指标系统

  • 提供一个易于维护的规范标准化指标管理系统,具备查询,增删等功能
  • 数据中台团队必须要有一个专门负责指标管理的人或者小组(一般不超过3个人),最好是数据产品经理来负责(有的是让分析师承担)
  • 提供一个完备的指标创建流程:提交指标需求,需求评审,模型设计和数据开发,验证,上线,应用接入

5. 数据中台实现:数据质量

数据质量的问题有如下几个原因:

  • 业务系统变更,包括表结构变更,源系统环境变更,源数据格式异常
  • 数据开发Bug + 数据开发任务变更:忘了修改数据源,写死数据分区,数据格式异常
  • 物理资源不足:YARN上多租户争抢资源导致数据延迟产出等
  • 基础设施不稳定:NameNode高可用失效导致数据读写功能异常等

数据质量具体实施:

  • 添加稽核校验任务:确保数据的完整性、一致性和准确性
  • 通过智能预警,确保任务按时产出。延迟产出,异常任务等立即报警
  • 建立全链路监控:可以基于血缘关系建立全链路数据质量监控
  • 通过应用的重要性区分数据等级,加快恢复速度

衡量数据质量:

  • 某个时间点以前核心任务的产出完成比,超过规定时间,没有完成产出则稽核校验失效
  • 基于稽核规则,计算表级别的质量分数。对于低于质量分数的表,分发到响应责任人进行改进
  • 需要立即介入的报警次数。超过规定次数的需要立即介入
  • 数据应用中的所有指标在规定时间内产出。如果没有,则计算不可用时间,不可用时间越短越好

6. 数据中台实现:成本控制

成本高主要原因:

  • 数据上线容易,下线难,什么没有下线机制
  • 低价值的数据应用消耗了大量的机器资源
  • 烟囱式的开发模式导致数据加工重复
  • 数据倾斜导致资源分配利用不均衡
  • 未设置数据生命周期,导致过期数据长期占用磁盘资源
  • 调度周期设置不合理,未形成闲忙搭配得当
  • 任务指定资源参数配置不当
  • 数据为压缩存储

精细化成本管理步骤:

  1. 全局资产盘点

    1. 对数据中台中,所有的数据进行一次全面盘点,基于元数据中心
      提供的数据血缘,建立全链路的数据资产视图
    2. 数据成本计算:一张表的成本 = 每个加工任务的计算资源成本 * m + 上游依赖表的存储资源成本 * n
    3. 数据价值计算:给使用人数、使用频率、数据应用数、老板等因素加权计算
  2. 发现问题

    1. 持续产生成本,但是已经没有使用的末端数据
    2. 数据应用价值很低,成本却很高
    3. 高峰期高消耗的数据:高成本的数据
  3. 治理优化

    1. 对于第一类问题,应该对表进行下线
    2. 对于第二类问题,我们需要按照应用粒度评估应用是否还有存在的必要,如果没有,则删除
    3. 对于第三类问题,主要是针对高消耗的数据,又具体分为产出数据的任务高消耗和数据存储高消耗,分配到非高峰期运行即可
  4. 第四:治理效果评估

    1. 下线了多少任务和数据;这些任务每日消耗了多少资源;数据占用了多少存储空间。
    2. 将上述节省资源换算成钱,这就是你为公司省的钱

7. 数据中台实现:数据服务化

为所有的数据应用提供统一的API接口服务:

  • 接口规范化定义
  • 数据网关
  • 链路关系的维护
  • 数据交付
  • 提供多样中间存储
  • 逻辑模型
  • API 接口
  • API 测试

数据服务实现了数据中台模型和数据应用的全链路打通,解决了任务异常影响分析和数据下线不知道影响哪些应用的难题。而且还有限流功能

基于相同主键的物理模型,可以构建逻辑模型,逻辑模型解决了数据复用的难题,提高了接口模型的发布效率

本文图片如有侵权,请联系删除

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/154401.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

高速缓存伪共享(false sharing)

0. CPU缓存 根据摩尔定律:芯片中的晶体管数量每隔18个月就会翻一番。导致CPU的性能和处理速度变得越来越快,而提升CPU的运行速度比提升内存的运行速度要容易和便宜的多,所以就导致了CPU与内存之间的速度差距越来越大。 为了弥补CPU与内存之间…

错失搭档张云雷,杨九郎和郭冬临一起演小品

熟悉相声的人都知道,这个传统的曲艺行业,一般是由捧哏和逗哏组成,两个人相辅相成缺一不可。就拿德云社的相声演员来说,也产生了很多对优秀演员,比如说郭德纲和于谦,比如说岳云鹏和孙越等等。 除了这两对相声…

微信开放平台之小程序获取用户信息

说实话,微信开放平台的文档真的是狗屎一般的存在,维护不及时,混乱,每隔一段时间更新一次授权接口!着实让开发者想口吐芬芳了!文档内跳来跳去,找不到一个完整的链路!维护好几套接口文…

_Linux多线程-线程控制篇

文章目录1. POSIX线程库2. 创建线程3. 线程ID及进程地址空间布局4. 线程等待5. 线程终止pthread_ exitpthread_ cancel6. 分离线程7. 总结1. POSIX线程库 与线程有关的函数构成了一个完整的系列,绝大多数函数的名字都是以“pthread_”打头的要使用这些函数库&#…

三角函数在编程中的实际运用—永劫无间脚本

三角函数在编程中的实际运用—永劫无间脚本前言需求思路代码■ 转义码■ 源码具体讲解三角函数计算相对移动求余跳过不需要的位置成品最后前言 义务教育下,年轻人从初中就开始学三角函数却半辈子也没用上,除了特殊行业,做开发的可能也就大学…

Nginx web服务器入门及其在Linux中的搭建

目录 ​编辑 一、Nginx基本概述 1.介绍 2.优点 3.应用场景 (1)负载均衡 (2)代理缓存 (3)静态资源 (4)安全应用场景 4.Nginx的组成 (1)Nginx二进制…

Canal同步数据

canal同步数据 canal可以用来监控数据库数据的变化,从而获得新增数据,或者修改的数据。 canal是应阿里巴巴存在杭州和美国的双机房部署,存在跨机房同步的业务需求而提出的。 阿里系公司开始逐步的尝试基于数据库的日志解析,获取…

(9)Qt中信号与槽重载的解决方案

信号与槽重载的解决方案 一、通过函数指针解决 //信号 void (Me::*funchungury)() &Me::hungury; void (Me::*funchungury_QString)(QString) &Me::hungury; //槽 void (Me::*funceat)() &Me::eat; void (Me::*funceat_QString)(QString) &Me::eat;//有参…

Oracle与MySQL语法转换

前言 Oracle与MySQL语法转换 场景:系统改造,需要由Oracle切换为MySQL,因而要对代码中的Oracle语法的sql调整为MySQL语法 博客地址:芒果橙的个人博客 【http://mangocheng.com】 sysdate–当前日期 Oracle 使用sysdate select s…

hdl_graph_slam代码解析

hdl SLAM和定位的关系:HDL和cartographer一样,是离线建图的 整个SLAM系统的架构 包含四个节点: 预处理、 帧匹配、hdl_slam、地面检测 输入点云首先经过预处理进行降采样,然后传给下一个节点。帧匹配通过迭代获取两帧之间运动变化…

【SpringCloud01】微服务架构入门

1.微服务架构理论入门 SpringCloud微服务 2.Boot和Cloud版本选型 上篇:SpringBoot2.X版和SpringCloud H版 下篇:SpringCloud Alibaba 官网强烈推荐SpringBoot2.0以上的版本 Cloud与Boot之间的版本关系 技术选型相关的网站使用在线解析json字符串 由于…

第2章 马尔可夫决策过程

2.1 马尔可夫决策过程(上) Markov Decision Process(MDP) Markov Decision Process can model a lot of real-world problem. It formally describes the framework of reinforcement learningUnder MDP, the environment is ful…

Promise 实现 (从简易版到符合Promise A+规范)

前言 手写 Promise 是面试的时候大家都逃避的送命题,在学些了解后发现通过实现源码更能将新一代的异步方案理解的通透,知其然知其所以然的运用。 如果直接将源码贴到此处势必不能有更大的收获,下面就按实现版本来看做简要分析。 回顾 Prom…

SpringBoot测试类编写

前置要求: a.测试类上需要的注解 SpringBootTest AutoConfigureMockMvc Slf4j b.引入MockMvc类 Autowired private MockMvc mockMvc; c.如果需要前置条件可以用before注解 1.get/delete请求 // 查询Testvoid testQuery() throws Exception {String content mockMvc.perfor…

Django(15):身份和权限认证

目录1.Django中的身份认证模块1.1 用户模型1.2 认证模块1.3 项目搭建演示2.权限管理架构2.1 权限相关数据模型2.2 权限相关功能函数2.3 权限分配函数2.4 权限设置3.资源访问管理1.Django中的身份认证模块 1.1 用户模型 Django中有内建的用户模块django.contrib.auth.models.U…

2022 CNCC 中国计算机大会参会总结

前言 第 19 届 CNCC 于2022年12月8-10日召开,本届大会为期三天,首次采取全线上举办形式,主题为“算力、数据、生态”,重点在保持多样性、聚焦热点前沿话题、平衡学术界和产业界参与等维度展开讨论。大会由CCF会士、中国科学院院士…

【SpringBoot】一文带你入门SpringBoot

✅作者简介:热爱Java后端开发的一名学习者,大家可以跟我一起讨论各种问题喔。 🍎个人主页:Hhzzy99 🍊个人信条:坚持就是胜利! 💞当前专栏:【Spring】 🥭本文内…

【职场进阶】做好项目管理,先从明确职责开始

优秀的项目管理一定是高效协调各方资源、反馈及时、调整迅速的。 同时可以做到让参与各方在整个项目过程中张弛有序、愉快合作,最终实现产品项目的效益最大化。 那什么是项目呢? 项目是为向客户提供独特的产品或服务而进行的临时性任务,项目有…

TypeScript 对象key为number时的坑

首先在js的对象中有一个设定,就是对象的key可以是字符串,也可以是数字。 不论key是字符串还是数字,遍历对象key的时候,这个key会变成字符串 通过[] 操作符访问key对应值时候,不论是数字还是字符串都转成了 字符串的k…

Chromedriver安装教程

第一步 查看你当前Chrome浏览器的版本,如下图所示: 第二步 查看当前Chrome浏览器的版本号,如下图所示,版本 108.0.5359.125(正式版本) (64 位)中的,108就是我们的版本号。 第三…