当前位置: 首页 > news >正文

怎么衡量数据仓库模型的优与劣

引言

最近和朋友一起聊天,聊到数仓最多的话题就是数仓重构,有些企业数仓重构可能好几轮了,一直在重构中,新的模型上线,老的模型继续运营,总是解释不清楚新模型比老模型好在哪里?于是出现了集市的人说数仓模型不好用,数仓的人说集市不使用他们的模型,业务说这些我完全看不懂。那么问题出现在哪里?今天来说道说道。

归根到底,没有解决一个问题,在企业发展不同阶段没有弄清楚对数据的诉求。也就没有制定一套指标来衡量数仓模型。如果企业的发展分为起步阶段、业务快速增长阶段、运营阶段。其他这几个阶段对数据的诉求不一样。

数据初心

企业的数据能给企业能带来什么价值?这个回归到数据的本质,笔者认为数据更多是给企业做决策、做运营、风险管控,对数据提出"快"、"准"、"稳"、"低"、"全"、"细"。这些都有一个本质的特点。数据需要准时保质保量的提供给合适的人使用。如果企业每次决策都需要数据来支撑,A企业决策当天就有数据来论证或者提供数据,B企业需要5天,那么这种情况下A企业做决策的次数比B企业高多,成功的概率要比B企业高。所以每个企业需要结合业务场景来设计企业的数据仓库模型,没有最好的模型只有适合自身企业的模型。

快:数据处理快、时效快、数据查询快、数据接入快、异常恢复快等

准:数据质量要高、数据查询要准等

稳:数据平台要稳、数据时效要稳等

全:数据的广度要广、数据资产要全等

细:数据的粒度要细等

低:使用数据的成本要低(理解成本、使用成本、硬件成本)等

下面我总结衡量数仓几个定量指标,大家可以参考参考

重复度

背景:重复度是解决企业数据重复开发或者指标不一样的问题,可以降低企业成本和数据不一致的问题。

口径:同源同频字段相似或者同源同频表相似比例

优化方案:可以在企业研发过程中过检核,比如dataops中检核规则

穿透率

背景:传统企业中,很多集市会直接穿透数仓到ODS,会导致成本增加,数仓的利用率下降,也会导致数据口径不一致等问题

口径:非数仓层任务直接使用ODS表的任务占比

优化方案:关闭非数仓层对ODS的访问权限,如果必需要按表申请或者数仓做视图。事后在分析如何模型沉淀

使用率

背景:如果数仓的表使用率偏低,那么就模型设计比较分散,下游使用起来复杂度会比较高,热度、标准化、聚合粒度等方面的可以分析

口径:被数仓下游使用的主题表与数仓运作中的主题表占比

优化方案:穿透率管控了,使用率自然就会提高

复杂度

背景:这个主要是体现单个任务(SQL)的复杂度,如果一个任务几十个表关联,这个维护成本、运维成本,失败重跑成本都比较高

口径:单个任务(SQL)表关联不能超过10个,这个根据企业的实际场景来定

优化方案:可以在企业研发过程中过检核,比如dataops中管控

纵深度

背景:如果一个数据应用底层最长链路超过30层,那么这个应用的运维成本、出数时效、稳定性等都有很大的问题。

口径:从应用出发最长链路15层,这个根据企业的实际场景来定

优化方案:可以在企业研发过程中过检核,比如dataops中检核规则

复用率

背景:主要解决企业数仓主题表复用率的问题,如果一个粒度的主题表不停的增加,但是复用率比较低,这个时候会带来口径不一致、维护成本高的问题了。

口径:数仓主题表被1-N次使用比例分析及P95或者平均使用率

优化方案:数仓团队需要针对使用率低的表进行分析,字段热度不够还是粒度不够等等,需要将数仓的表运营起来

资产运营

背景:这个和数仓可能关系不大,重点是讲数据应用的运营,看应用使用时间、使用角色、使用人数、使用部门等等指标

口径:应用访问的PV+UV+角色数+部门数据+每天最早访问时间来衡量数据有应用的潜在价值

优化方案:资产运营,数据治理体系做管控指标

下面我总结衡量数仓几个定性指标,大家可以参考参考

数据质量

数据质量也是评判的重要指标之一。数据质量包括数据完整性、一致性、精确性、可靠性、时效性等方面。这些指标可以通过数据清洗、数据校验、数据补全等方式进行评估和优化。这些具体的衡量指标需要根据企业不同阶段来指定

成本效益

数仓使用的人力、硬件等成本占整个数据团队的比例,企业发展的不同阶段不一样

稳定性

数据仓库任务的稳定性、时效等,企业发展的不同阶段不一样,比如前期更多追求的数据的时效快,数据质量可以低一点,后期追求数据的质量,时效可以慢一点。所以不同企业的不同阶段不一样

资产完备率

这个其实是一个比较长远的问题,但是又是一个不得不一直投入的时效。企业早期的数据资产完备率、模型维度、指标等等更多是解决企业数据开发人员对数仓的了解,对单个业务对象的了解,但是随着数字化的转型,那么企业的数据资产面向的用户就不是IT和数据分析师了,更多是业务人员,这种时候企业的数据资产需要引入业务流程和业务对象,否则很难拉通企业全业务流程来分析,业务和IT会进入鸡同鸭讲阶段。

相关文章:

  • 电池常用,但电芯热电耦合难?科学仿真技术轻松解决
  • 接口优化笔记
  • ThinkPHP5漏洞分析之代码执行
  • LeeCode Practice Journal | Day44_DP11 子序列问题
  • 案例分享—国外毛玻璃效果UI设计案例
  • UE5学习笔记11-为拿取武器添加动画
  • 派森学长带你学python—集合
  • 爬虫 Web Js 逆向:RPC 远程调用获取加密参数(1)WebSocket 协议介绍
  • C++简单界面设计
  • 【初阶数据结构】通讯录项目(可用作课程设计)
  • 突破传统看车局限,3DCAT实时云渲染为东风日产奇骏赋能
  • Django 安装指南
  • ui自动化难点
  • UE5学习笔记9-创建一个小窗口提示人物是否和武器重叠
  • 【人工智能】Transformers之Pipeline(十):视频分类(video-classification)
  • Android框架之Volley
  • Docker入门(二) - Dockerfile
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • golang中接口赋值与方法集
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • mysql 数据库四种事务隔离级别
  • Object.assign方法不能实现深复制
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 番外篇1:在Windows环境下安装JDK
  • 聊聊flink的BlobWriter
  • 每天一个设计模式之命令模式
  • 时间复杂度与空间复杂度分析
  • 微信开放平台全网发布【失败】的几点排查方法
  • 一天一个设计模式之JS实现——适配器模式
  • 一些css基础学习笔记
  • 用jquery写贪吃蛇
  • 由插件封装引出的一丢丢思考
  • ​马来语翻译中文去哪比较好?
  • ​如何使用QGIS制作三维建筑
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • # Kafka_深入探秘者(2):kafka 生产者
  • #define、const、typedef的差别
  • #QT(QCharts绘制曲线)
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (C++)八皇后问题
  • (C11) 泛型表达式
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (Python) SOAP Web Service (HTTP POST)
  • (六)软件测试分工
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (状压dp)uva 10817 Headmaster's Headache
  • .a文件和.so文件
  • .NET Core 中的路径问题
  • .NET Framework .NET Core与 .NET 的区别
  • .NET HttpWebRequest、WebClient、HttpClient
  • .NET 快速重构概要1
  • .net 提取注释生成API文档 帮助文档
  • .net 写了一个支持重试、熔断和超时策略的 HttpClient 实例池