数据中台概念及设计

一,中台的概念

中台是阿里提出,源于在2015年年中时,参观了一家芬兰的游戏公司,叫做Supercell。

这家公司一年光是利润就有15亿美金,不过员工人数非常少,只有不到200个人,而且公司里每一个开发游戏的小团队,都只有六七个人而已。

这么小规模的团队,怎么做成了这么大的业务呢?

其中一个原因是他们把游戏开发过程中,要用的一些通用的游戏素材和算法整理出来,把这些作为工具提供给所有的小团队。同一套工具,可以支持好几个小团队研发游戏。这种管理方式,就是一个“中台”的模型。

业务中台:简单来说,就是企业级功能复用平台,比如通用的账号系统、交易系统、营销系统等。

数据中台:要做四个方面的工作分别是“采集”、“存储”、“打通”、“使用”。

二,架构

1,业务中台整体架构

业务中台最核心的地方是包括n个中心,是可以扩展的,企业级的能力复用平台就体现在这里,业务中台会把所有通用的一个个的开发部署好,提供给各个产品线使用。

2,数据中台整体架构

数据采集层:一般数据来源于业务中台,将其抽取到数据中台做统一的存放。

数据计算层:一般采用分层存储的方式包括:操作数据层(Operational Data Store, ODS)、 明细数据层(Data Warehouse Detail, DWD)、汇总数据层(Data Warehouse Summary, DWS)和应用数据层(Application Data Store, ADS),可以将数据更高效、更科学的组织。

数据服务层:对于简单的数据查询,复杂的数据查询,和基于实时的数据查询,都可以通过接口的方式提供相应的服务。

数据应用层:对不同的人群提供不同的数据报表

三,数据中台计算层

1,数据资产管理

①基于OneData的数据指标管理体系

梳理数据指标时发现对同一个指标在不同场景下定义的口径不一致,甚至指标口径不清晰等问题。为了消除歧义,实现一个指标一个口径,我们基于OneData提出了一套指标规范定义

数据中台概念及设计_第1张图片

名词定义:

数据域:面向业务的大模块,不会经常变。比如商家域,商品域等等大的业务模块类似产品线。

业务过程:如电商业务中的下单、支付、退款等都属于业务过程。

时间周期:就是统计范围,如近30天、自然周、截止到当天等。

修饰类型:比较好理解的如电商中支付方式,终端类型等。

修饰词:除了维度意外的限定词,如电商支付中的微信支付、支付宝支付、网银支付等。终端类型为安卓、IOS等

原子指标:不可再拆分的指标如支付金额、支付件数等指标

维度:常见的维度有地理维度(国家、地区等)、时间维度(年、月、周、日等)

维度属性:如地理维度中的国家名称、ID、省份名称等。

派生指标:原子指标+修饰词+时间周期就组成了一个派生指标。

数据中台概念及设计_第2张图片

②为了提供清晰的数据检索功能,我们基于思维导图,构建了指标体系网(建设中)

③wiki以表格形式记录了所有的指标口径定义,来源表,生成表,数坊任务,取数口径等,方便溯源

数据集市数坊表统计:数据集市数坊表统计

供应链数据宽表:供应链数据集市

eg:订单商品宽表设计文档

2,标签管理

      为了解决标签字段多带来的空间占用,以及基于查询方便考虑, 我们设计了一套存取方案:订单履约异常标签体系设计

3,数据模型

①数据仓库和数据库的区别

数据库与数据仓库都用来储存数据,在本质上其实作用是相同的,当从业务出发,两者的区别就很大了。

数据中台概念及设计_第3张图片

②数据仓库的分层

为了更清晰的掌控,管理数据,我们需要对数据仓库进行分层

ODS(操作数据层):直接从原始数据过来的。

DW*(汇总数据层):这一层储存经过处理后的标准数据。增加了维度形成了统计宽表。

ADS(应用数据层):为应用层数据,直接可以给业务人员使用。

③星型模型

维度表:存放具有独立属性和层次结构的数据,一般由维度编码和对应的维度说明(标签)组成。一般是对事实的描述信息。每一张维表对应现实世界中的一个对象或者概念。 例如:用户、商品、日期、地区等。

事实表:存放实际数据或详细数值。

特点:结构清晰,便于管理和OLAP分析

④任务规范

Ⅰ:不同模型层,表名的拼接规则:元数据用户手册

公共数据层——统一维度层(dim)

    • <>表示必填 []表示非必填
    • 命名规范:vipdim.<_主题域>[_业务过程]<_自定义业务扩充词>[_单分区全量/增量][_中间表]_[手工表];
    • 举例:vipdim.dim_mer_goods_df,其中mer:商品域,goods:自定义业务扩充词,df:天分区全量。

公共数据层——明细数据层(dwd)

    • <>表示必填 []表示非必填
    • 命名规范:vipdwd.<_主题域>[_业务过程]<_自定义业务扩充词>[_单分区全量/增量][_中间表]_[手工表];
    • 举例:vipdwd.dwd_log_pageview_app_ds ,其中log:流量域,pageview:业务过程,app:自定义业务扩充词, ds:天分区增量。

公共数据层——汇总数据层(dws)

    • <>表示必填 []表示非必填
    • 命名规范:vipdws.<_主题域>[_业务过程]<_自定义业务扩充词>[_时间周期][_单分区全量/增量][_中间表]_[手工表];
    • 举例:vipdws.dws_trd_order_brand_1d_ds,其中trd:交易域,order:业务过程,brand:自定义业务扩充词,1d:时间周期,ds:天分区增量

应用数据层(ads)

    • <>表示必填 []表示非必填n
    • 命名规范:<库名>.[_主题域][_业务过程]<_自定义业务扩充词>[_时间周期][_单分区全量/增量][_中间表]_[手工表];
    • 举例:vipads.ads_brand_all_1d_ds,其中brand_all:自定义业务扩充词,1d:时间周期=最近1天,ds:天分区增量。
    • 特殊说明:ads层的表,可选多个域

Ⅱ:供应链数据集市任务规范:SQL代码编码原则和规范

⑤数据质量

 Ⅰ:表之间聚合,通过select column, count(*) from table group by column having count(*) > 1 防止数据膨胀

Ⅱ:全表粗略检测,查看是否有非正常的空值,重复,数据异常(字段错位)等

Ⅲ:数据抽样检测

Ⅳ:产品验数

⑥任务调优

Ⅰ参数调优:5.spark作业数坊参数配置方式汇总

Ⅱ查看spark执行日志:1,查看spark_sql web ui和日志手册

数坊调优-最佳实践:我的数坊 - 最佳实践

4,存储

HDFS:优先使用HDFS存储,当其查询速度不满足需求时,考虑优化分区和申请SSD/alluxio

MySQL:当HIVE数据的查询性能不满足要求,同时数据量较小,出仓到MYSQL进行存储查询

ClickHouse:当HIVE数据的查询性能不满足要求, 同时数据量较大,MYSQL不能支持时,出仓到ClickHouse进行存储查询

四,数据中台服务层

基于BIP提供统一的数据服务,有如下三大类服务:

报表服务:在BIP设计报表,传入报表条件查询报表数据

指标服务:根据数据集市统一定义的指标,按维度查询指标数据

SQL服务:用户自定义SQL查询数据

你可能感兴趣的:(大数据,big,data,python,大数据)