建设自己的取数平台:背景

简介: 数据从业者,无论是数仓同学、还是数分同学,都对“数据为什么对不上”这类问题深恶痛绝。

背景

  • “XXX,看一下这两份数据为什么对不上?”
  • “XXX,你出的这份儿数据,和上个月XXX出的数据差异很大,你们看一下是什么问题”
  • “这个指标是怎么算出来的?”“你去问XXX,这个是他做的。”
  • ……


对于数仓同学、或者数据分析师同学,这类拉扯一定不陌生。每周都要花费一定比例的时间,在“排查数据为什么对不上”这个事情上。甚至随着BI的持续建设、产品的持续完善,这类问题越来越多。以至于数据分析师意外地成为了一个流动性很高的岗位。


这背后的问题根源是什么?我们又如何解决呢?



原因浅析


听说过这样一句话:

“数据就像UI一样,即使再外行的人,也能过来指点几句”


别看全公司从上到下、横跨各个部门都在重视数据,但真正能把指标含义讲清楚的,可能连10%的人都不到。


可以试试去问问自己公司里那些重视数据的同事们,“咱们公司的GMV是怎么算的”。看看能得到多少个不同的答案。


在不同人心中,对同一个指标有不同的理解,是很正常的事儿。


首先,不是每个人都需要知道指标的含义,他们只需要知道哪些指标和自己的业务挂钩,怎样努力能让指标上升/下降即可。


其次,指标名称往往是一个很短的词汇,大多在十个字以内,甚至有些还是英文缩写,单从名称上根本想象不出来它背后有多么复杂的处理加工过程。


然后,公司业务在持续发展,同一个指标在不同时期的含义也可能会发生变化。例如某项业务是中途新开展的,那早期的数据指标里就不可能包含此业务相关的部分。换句话说,同一指标在不同时期的含义也会有所不同。


最后,人员流动造成的影响使这一问题变得更加不可控。一批又一批新人的加入、一批又一批老人的离职,把团队在“事理”和“人理”上的管理的重要性提升到了一个很高的高度。流程、规范、跨部门沟通等,任何一项做的不到位,都会导致混乱。


我们把以上全部原因放到一起分析之后就会发现,这不是光靠管理上的提升就可以解决的问题。我们需要把能靠系统解决的问题,全部放到系统中,将人为造成影响降到最低。




明确方向


整个取数流程,在需求提出后,可能涉及到的步骤包括:

  1. 需求分析;
  2. 任务分配/确认排期;
  3. 开发;
  4. 测试/数据校验;
  5. 交付;


“需求分析”较为复杂,需要双方甚至多方进行沟通、会议等途径来达成一致,因此必须靠人工。剩下的步骤都可以通过系统解决。




愿景


1. 取数平台本身


我们对于取数平台本身的愿景,根据不同的使用者角色、以及不同的用数场景,大概分为以下几类:


  1. 中长期周期性关注的数据。
  1. 考虑将这类数据做成表格或图表,固化在BI平台中,一次开发,多人、长期使用;
  2. 考虑制作取数模板,可以在需求方需要取数时,人工使用模板取数;或提供周期性自动取数功能;
  1. 临时性取数需求,且需求方没有数据分析能力。
  1. 提供标准化自助取数功能。使用者无须深入理解数据的含义,只需在界面上填充取数条件、指标等信息,即可完成取数;
  2. 提供标准化的取数工单功能。数仓或数分同学提供专业的一对一服务,指导需求方使用自助取数功能、或直接提供数据结果;
  1. 临时性取数需求,且需求方有数据分析能力。
  1. 提供基于SQL的分析平台。使用者可以在平台上自定义SQL进行数据分析;


我们希望,100%的取数需求可以通过取数工单或自助取数功能解决,其中70%以上的取数需求能由需求方自己操作自助取数功能解决。


2. 全公司的数据输出


数据的输出,不止有BI、临时数据需求这几个途径。还会有大量的数据被固化到产品功能中,例如用户端APP上的某些数据看板、后台系统上的数据统计模板等等。按上述方案,虽然能保证BI、临时数据需求的口径统一,但还无法保证与其他产品功能中的数据口径也一致。


数据架构.png


如上图,我们在“数据仓库”与“应用层”之间,增加一层DataAPI,所有的取数都通过DataAPI提供服务,即可避免多源头造成的数据混乱。

目录
相关文章
|
JSON Java 数据格式
Java使用Hutool工具包生成二维码、验证码、随机数
Java使用Hutool工具包生成二维码、验证码、随机数
4028 0
Java使用Hutool工具包生成二维码、验证码、随机数
|
XML 域名解析 JSON
【RESTful】RESTful API 接口设计规范 | 示例
【RESTful】RESTful API 接口设计规范 | 示例
14716 0
【RESTful】RESTful API 接口设计规范 | 示例
|
存储 缓存 算法
ES写入过程和写入原理调优及如何保证数据的写一致性(上)
ES写入过程和写入原理调优及如何保证数据的写一致性
ES写入过程和写入原理调优及如何保证数据的写一致性(上)
|
机器学习/深度学习 监控 算法
基于单尺度Retinex和多尺度Retinex的图像增强算法实现
基于单尺度Retinex(SSR)和多尺度Retinex(MSR)的图像增强算法实现
1493 1
|
存储 安全 前端开发
如何开发一套EHS 健康安全环境管理系统?(附架构图+流程图+代码参考)
本文介绍如何开发一套完整的EHS(健康、安全和环境)管理系统,涵盖系统核心模块、技术架构、数据库设计、前后端开发示例及上线建议,帮助企业提升安全管理效率与合规性。
|
物联网 数据处理 C#
C#实现上位机开发,串口通信,读写串口数据并处理16进制数据
C#实现上位机开发,串口通信,读写串口数据并处理16进制数据。在自动化、物联网以及工业控制行业中,上位机开发是一项重要的技能。本教程主要介绍使用C#进行上位机开发,重点在于串口通信和数据处理。
3100 82
|
监控 关系型数据库 MySQL
MySQL和SQLSugar百万条数据查询分页优化
在面对百万条数据的查询时,优化MySQL和SQLSugar的分页性能是非常重要的。通过合理使用索引、调整查询语句、使用缓存以及采用高效的分页策略,可以显著提高查询效率。本文介绍的技巧和方法,可以为开发人员在数据处理和查询优化中提供有效的指导,提升系统的性能和用户体验。掌握这些技巧后,您可以在处理海量数据时更加游刃有余。
1357 9
|
人工智能 自然语言处理 JavaScript
Univer:开源全栈 AI 办公工具,支持 Word、Excel、PPT 等文档处理和多人实时协作
Univer 是一款开源的 AI 办公工具,支持 Word、Excel 等文档处理的全栈解决方案。它具有强大的功能、高度的可扩展性和跨平台兼容性,适用于个人和企业用户,能够显著提高工作效率。
3785 9
Univer:开源全栈 AI 办公工具,支持 Word、Excel、PPT 等文档处理和多人实时协作
|
人工智能 安全 数据挖掘
AI时代,如何问数查数更轻松?(1)
AI时代,如何问数查数更轻松?
1249 4
|
关系型数据库 MySQL 数据库
MySQL数据库——多表查询(4)-实例练习、多表查询总结
MySQL数据库——多表查询(4)-实例练习、多表查询总结
766 1