中台是阿里提出,源于在2015年年中时,参观了一家芬兰的游戏公司,叫做Supercell。
这家公司一年光是利润就有15亿美金,不过员工人数非常少,只有不到200个人,而且公司里每一个开发游戏的小团队,都只有六七个人而已。
这么小规模的团队,怎么做成了这么大的业务呢?
其中一个原因是他们把游戏开发过程中,要用的一些通用的游戏素材和算法整理出来,把这些作为工具提供给所有的小团队。同一套工具,可以支持好几个小团队研发游戏。这种管理方式,就是一个“中台”的模型。
业务中台:简单来说,就是企业级功能复用平台,比如通用的账号系统、交易系统、营销系统等。
数据中台:要做四个方面的工作分别是“采集”、“存储”、“打通”、“使用”。
业务中台最核心的地方是包括n个中心,是可以扩展的,企业级的能力复用平台就体现在这里,业务中台会把所有通用的一个个的开发部署好,提供给各个产品线使用。
数据采集层:一般数据来源于业务中台,将其抽取到数据中台做统一的存放。
数据计算层:一般采用分层存储的方式包括:操作数据层(Operational Data Store, ODS)、 明细数据层(Data Warehouse Detail, DWD)、汇总数据层(Data Warehouse Summary, DWS)和应用数据层(Application Data Store, ADS),可以将数据更高效、更科学的组织。
数据服务层:对于简单的数据查询,复杂的数据查询,和基于实时的数据查询,都可以通过接口的方式提供相应的服务。
数据应用层:对不同的人群提供不同的数据报表
梳理数据指标时发现对同一个指标在不同场景下定义的口径不一致,甚至指标口径不清晰等问题。为了消除歧义,实现一个指标一个口径,我们基于OneData提出了一套指标规范定义
名词定义:
数据域:面向业务的大模块,不会经常变。比如商家域,商品域等等大的业务模块类似产品线。
业务过程:如电商业务中的下单、支付、退款等都属于业务过程。
时间周期:就是统计范围,如近30天、自然周、截止到当天等。
修饰类型:比较好理解的如电商中支付方式,终端类型等。
修饰词:除了维度意外的限定词,如电商支付中的微信支付、支付宝支付、网银支付等。终端类型为安卓、IOS等
原子指标:不可再拆分的指标如支付金额、支付件数等指标
维度:常见的维度有地理维度(国家、地区等)、时间维度(年、月、周、日等)
维度属性:如地理维度中的国家名称、ID、省份名称等。
派生指标:原子指标+修饰词+时间周期就组成了一个派生指标。
数据集市数坊表统计:数据集市数坊表统计
供应链数据宽表:供应链数据集市
eg:订单商品宽表设计文档
为了解决标签字段多带来的空间占用,以及基于查询方便考虑, 我们设计了一套存取方案:订单履约异常标签体系设计
数据库与数据仓库都用来储存数据,在本质上其实作用是相同的,当从业务出发,两者的区别就很大了。
为了更清晰的掌控,管理数据,我们需要对数据仓库进行分层
ODS(操作数据层):直接从原始数据过来的。
DW*(汇总数据层):这一层储存经过处理后的标准数据。增加了维度形成了统计宽表。
ADS(应用数据层):为应用层数据,直接可以给业务人员使用。
维度表:存放具有独立属性和层次结构的数据,一般由维度编码和对应的维度说明(标签)组成。一般是对事实的描述信息。每一张维表对应现实世界中的一个对象或者概念。 例如:用户、商品、日期、地区等。
事实表:存放实际数据或详细数值。
特点:结构清晰,便于管理和OLAP分析
Ⅰ:不同模型层,表名的拼接规则:元数据用户手册
公共数据层——统一维度层(dim)
公共数据层——明细数据层(dwd)
公共数据层——汇总数据层(dws)
应用数据层(ads)
Ⅱ:供应链数据集市任务规范:SQL代码编码原则和规范
Ⅰ:表之间聚合,通过select column, count(*) from table group by column having count(*) > 1 防止数据膨胀
Ⅱ:全表粗略检测,查看是否有非正常的空值,重复,数据异常(字段错位)等
Ⅲ:数据抽样检测
Ⅳ:产品验数
Ⅰ参数调优:5.spark作业数坊参数配置方式汇总
Ⅱ查看spark执行日志:1,查看spark_sql web ui和日志手册
数坊调优-最佳实践:我的数坊 - 最佳实践
HDFS:优先使用HDFS存储,当其查询速度不满足需求时,考虑优化分区和申请SSD/alluxio
MySQL:当HIVE数据的查询性能不满足要求,同时数据量较小,出仓到MYSQL进行存储查询
ClickHouse:当HIVE数据的查询性能不满足要求, 同时数据量较大,MYSQL不能支持时,出仓到ClickHouse进行存储查询
基于BIP提供统一的数据服务,有如下三大类服务:
报表服务:在BIP设计报表,传入报表条件查询报表数据
指标服务:根据数据集市统一定义的指标,按维度查询指标数据
SQL服务:用户自定义SQL查询数据