文章大部分内容摘录自极客数据中台课程:https://time.geekbang.org/column/article/220290
一、前言
数据开发职业规划:熟练的使用数据中台支撑技术体系内的工具,熟悉数据中台模式下数据研发的流程,对指标定义、维度建模、数据质量稽核监控、成本的管理、数据安全、数据服务化等内容要有深入的掌握。
课程收获很多,数据规范化流程终于看见文字描述。课程定义的是数据中台,其实数据仓库也可以借鉴。看了之后,很多问题都知道改进方向。
二、正文
要建设数据中台包括三部分:方法论、数据中台支撑技术、组织架构。该课程主要讲解的是方法论。
2016 年,阿里巴巴就提出了数据中台建设的核心方法论:OneData 和 OneService,经过这么多年,很多公司都进行了实践,但你很难找出一个准确的定义去描述这些方法论。下面是该课程老师结合他在网易数据中台建设的经验,对方法论进行了系统化的定义
1、OneData:所有的数据只加工一次
- 数据中台就是要形成一个公共数据层,消灭这些跨部门的小数仓,实现数据的复用,所以强调数据只加工一次,不会因为不同的应用场景,不同的部门数据重复加工。
- 小部门不产生数据,数据由公司的数据团队提供。但是数据团队会存在数据重复加工。如:开发不熟悉已开发的表、为得到某个数据而重复开发;指标重复开发计算;同业务数据、业务字段重复计算。
如何实现数据只加工一次?
感悟:
我认为onedata(数据只加工一次),更要约束数据团队,数据常存在多次加工的情况。在“数据中台”课程中给了数据团队如何做到数据只加工一次的方法。主要是通过:元数据管理、指标定义、维度建模、数据质量稽核监控、成本的管理来实现的。
如何实现数据只加工一次,看大标题分主题域管理、命名规范定义、指标一致、数据模型服用、数据完善
,不清楚具体如何实现的,在下面的课程学习。
2、OneService
OneService,数据即服务,强调数据中台中的数据应该是通过 API 接口的方式被访问
为什么数据一定要通过 API 接口的方式被访问,不通过 API 接口,直接提供数据表
给用户又存在哪些问题
呢?
如果你是数据应用开发,当你要开发一个数据产品时,首先要把数据导出到不同的查询引擎上:
- 数据量小的使用 MySQL;
- 大的可能用到 HBase;
- 需要多维分析的可能需要 Greenplum;
- 实时性要求高的需要用到 Redis;
总的来说,不同的查询引擎,应用开发需要定制不同的访问接口
如果你是一个数据开发,当某个任务无法按时产出,发生异常时,想要了解这个表可能会影响到下游的哪些应用或者报表,但是却发现单纯依赖表与表的血缘无法触及应用,根本无法知道最后的这些表被哪些应用访问。与此同时,当你想下线一张表时,因为不知道谁访问了这张表,无法实施,最终造成了“上线容易,下线难”的窘境。
而 API 接口一方面对应用开发屏蔽了底层数据存储,使用统一标准的 API 接口查询数据,提高了数据接入的速度。另一方面,对于数据开发,提高了数据应用的管理效率,建立了表到应用的链路关系。
感悟:
在工作中OneService这方面的困惑比较少,我们都是定制化的服务,都是给固定的需求使用。后期除了数据只加工一次外,也需要分析谁使用了这部分数据。