天天看点

数据中台产品测试总结前言数据中台由来数据中台概念数据中台(公司产品)实现技术总结

关于数据中台的测试感悟

  • 前言
  • 数据中台由来
    • 芬兰公司suppercell
    • 全球数字生态大会
  • 数据中台概念
    • 阿里中台(参照)
    • 数据中台流程
    • 数据中台结构
  • 数据中台(公司产品)
    • 数据中台架构
  • 实现技术
    • Flume
    • DataX
    • Sqoop
    • 数据存储
    • Hue
    • 计算框架
    • 调度管理
    • 执行器(Executor)
    • OOzie
  • 总结

前言

随着数据中台在阿里巴巴的提出以及火热,公司在2019年决定做一款数据中台的服务产品,直到现在(2020年的4月份),大致接近尾声。在此总结一下,这一年左右对数据中台的理解。

数据中台由来

芬兰公司suppercell

2015年年中,马云带领阿里巴巴集团高管,拜访了位于芬兰赫尔辛基的移动游戏公司Supercell。Supercell当时号称是世界上最成功的移动游戏公司,Supercell由6名资深游戏开发者在2010年创立,旗下拥有《部落冲突》、《皇室战争》、《海岛奇兵》和《卡通农场》这四款超级现象级产品。Supercell是一家典型的以小团队模式进行游戏开发的公司,以2到5个员工、最多不超过7个员工组成独立的开发团队,称之为Cell(细胞) ,这也是公司名字Supercell (超级细胞)的由来。团队自己决定做什么样的产品,然后最快时间推出产品公测版,看看游戏是否受用户欢迎。如果用户不欢迎,迅速放弃这个产品,再进行新的尝试,期间几乎没有管理角色的介入。团队研发的产品失败后,不但不会受到惩罚,甚至还会举办庆祝仪式,以庆祝他们从失败中学到了东西。这种模式让Supercell公司成为了年税前利润15亿美金的游戏公司。

2016年6月,腾讯以86亿美元收购了员工数不超过200人的Supercell公司84.3%的股权,每一名员工人均贡献的估值超过3.54亿人民币。Supercell的成功很大原因就在于其高效的“部落”组织策略。在supercell仅有的100多人中,被分成若干个小前台组织,每个小组虽然人不多,但都包含了做一款游戏需要的所有人才。本来就不大的公司被分成若干个小组,这样做的好处是可以快速决策,快速研发,快速把产品推向市场,而游戏引擎、服务器等后台基础则不需要操心。

Supercell 的模式给参加此次拜访的阿里高管们很大的震撼,在大家反复的心得交流和讨论中,一个非常重要的问题引起了很多人的反思:信息时代的公司架构到底应该是怎样的?正是有了这次拜访才真正让阿里巴巴的领导层有了足够的决心要将组织架构进行调整,在此次拜访的半年后,阿里集团CEO逍遥子发出内部邮件,组织架构全面升级,建设整合阿里产品技术和数据能力的强大中台,组建“大中台,小前台”的组织和业务体制。

全球数字生态大会

2018年5月21号腾讯召开了全球数字生态大会,会议上腾讯高级副总裁汤道生提出“开放中台能力,助力产业升级”。汤道生介绍,腾讯技术委员会正在推动“开源协同”和“自研上云”,通过技术整合实现高效的能力交付。同时,基于在即时通讯、社交、游戏等优势领域中的技术积累,腾讯将进一步开放业界领先的包括用户中台、内容中台、应用中台等在内的数据中台,以及包括通信中台、AI中台、安全中台等在内的技术中台。企业与开发者可以灵活地把这些技术应用到业务场景中。中台一词开始步入大家的视角。

数据中台概念

阿里中台(参照)

所谓的“中台”,并不是阿里巴巴首先提出的词语,从字面意思上理解,中台是基于前台和后台之间。

阿里通过多年不懈的努力,在业务的不断催化滋养下,将自己的技术和业务能力沉淀出一套综合能力平台,具备了对于前台业务变化及创新的快速响应能力。

阿里将中台分为六类:

业务中台,提供重用服务,例如用户中心、订单中心之类的开箱即用可重用能力。

数据中台,提供数据分析能力,帮助从数据中学习改进,调整方向。

算法中台,提供算法能力,帮助提供更加个性化的服务,增强用户体验。

技术中台,提供自建系统部分的技术支撑能力,帮助解决基础设施,分布式数据库等底层技术问题。

研发中台,提供自建系统部分的管理和技术实践支撑能力,帮助快速搭建项目、管理进度、测试、持续集成、持续交付。

组织中台,为项目提供投资管理、风险管理、资源调度等。

数据中台流程

数据中台通过数据技术,对海量数据进行采集、计算、存储、加工,同时统一标准和口径。

数据中台产品测试总结前言数据中台由来数据中台概念数据中台(公司产品)实现技术总结

数据中台把数据统一之后,会形成标准数据,再进行存储,形成大数据资产层,进而为客户提供高效服务。这些服务跟企业的业务有较强的关联性,是这个企业独有的且能复用的,它是企业业务和数据的沉淀,其不仅能降低重复建设、减少烟囱式协作的成本,也是差异化竞争优势所在。

数据中台建设的基础还是数据仓库和数据中心,并且在数仓模型的设计上也是一脉传承,之所以我们现在处处推崇数据中台建设及应用,一个是因为数据中台确实有过人之处,另一个是这套模型在阿里体现了巨大的应用价值。

数据中台跟之前大数据平台最大的区别,在于数据中台距离业务更近,能更快速地响应业务和应用开发的需求,可追溯,更精准。

数据中台结构

“数据中台”一般包含以下几个部分:

数据仓库:用来存储数据的,结构性数据、非结构性数据等,还有离线数据和实时数据等;

大数据中间件:包含了大数据计算服务、大数据研发套件、数据分析及展现工具;

数据资产管理:按照阿里的体系应该分为垂直数据、公共数据和萃取数据3层。

数据中台(公司产品)

数据中台架构

数据中台产品测试总结前言数据中台由来数据中台概念数据中台(公司产品)实现技术总结
数据中台产品测试总结前言数据中台由来数据中台概念数据中台(公司产品)实现技术总结

公司数据中台产品将数据中台目录分为了六个部分。

数据集成交换对应数据获取的功能,将数据获取方式分为了两类:数据采集和数据同步。

数据采集支持 http、ftp、 日志采集和kafak四种采集形式。采集到数据通过数据建模。分类成格式统一的数据进行存储。

数据同步支持不同数据源之间的同步。支持自动建模。创建存储表,以及可以设置定时任务,定时获取数据。

数据治理对应数据治理功能,分为元数据管理、质量管理、资产管理和主数据管理。

元数据管理:完成数据源管理、数据建模和统一的数据存储功能。并且对数据字典进行管理。

质量管理:则是对表进行表的检测和字段的检测。

资产管理:则是将存储表进行资产化管理。

主数据管库:则是将业务主要的业务抽取出来单独管理。

计算中心 对应数据分析,对数据进行再加工的功能。支持离线任务和实时任务。支持Python、shell、hive、Phoenix、hbase、spark等多种语言。

数据服务对应数据服务,即将数据形成接口,提供给业务使用。

平台管理 主要是对自身平台人员、部门、岗位、菜单、功能权限的管理。

分析中心 则是提供报表系统,支持通过数据库数据,创建实时的报表和大屏。

实现技术

Flume

Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。

有一个池子,它一头进水,另一头出水,进水口可以配置各种管子,出水口也可以配置各种管子,可以有多个进水口、多个出水口,水术语称为Event,进水口术语称为Source、出水口术语成为Sink、池子术语成为Channel,Source+Channel+Sink,术语称为Agent。

flume主要是由 source channel sink 三部分组成,这三个组件的主要作用是 搜集信息,传递信息,存储信息;

flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。支持在日志系统中定制各类数据发送方,用于收集数据;

同时,Flume提供对数据进行简单处理,并写到各种数据接受方(比如文本、HDFS、Hbase等)的能力。flume的数据流由事件(Event)贯穿始终。

事件是Flume的基本数据单位,它携带日志数据(字节数组形式)并且携带有头信息,这些Event由Agent外部的Source生成,当Source捕获事件

后会进行特定的格式化,然后Source会把事件推入(单个或多个)Channel中。你可以把Channel看作是一个缓冲区,它将保存事件直到Sink处理完该事件。Sink负责持久化日志或者把事件推向另一个Source。

DataX

DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步功能。

DataX目前已经有了比较全面的插件体系,主流的RDBMS数据库、NOSQL、大数据计算系统都已经接入。

Sqoop

Sqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

数据存储

数据中台数据存储,根据数据用途不同,将数据存储到不同的数据存储对象中。数据中台采用大数据架构。大数据架构采用CDH与nosql、关系数据库混搭建设。

ODS 采用HBASE,关系数据库(少量数据)

DW 采用HIVE或greenplum

DM采用关系数据库(mysql,postgresql,oracle)

Hue

大数据可视化工具采用Hue来进行统一管理,Hue是一个开源的Apache Hadoop UI系统,最早是由Cloudera Desktop演化而来,由Cloudera贡献给开源社区,它是基于Python Web框架Django实现的。

计算框架

数据计算框架提供MR、SPARK、STORM/FLINK、Tez等计算框架。

MR计算框架主要做离线计算,SPARK计算框架主要做准实时计算。STORM/FLINK主要做流计算,Tez计算是DAG计算框架,可在hive代替MR计算框架,提供更高的计算性能。

调度管理

任务调度由任务调度框架来进行调度,数据平台采用两个任务调度框架来实现,分别是大数据调度框架oozie,java调度框架quartz。

进行任务调度时,根据任务类型,由调度决策中心自动选择相应的调度框架进行任务调度。

任务调度触发支持如下三种类型:

1)时间触发

开始时间,调度频率

2)数据触发

文件是否存在

数据是否负荷调度标准

3)顺序触发

按任务序列顺次执行。

执行器(Executor)

airflow内置了丰富的任务处理器,用于实现不同类型的任务:

BashOperator : 执行bash命令

PythonOperator : 调用python代码

EmailOperator : 发送邮件

HTTPOperator : 发送 HTTP 请求

SqlOperator : 执行 SQL 命令

除了这些基本的构建块之外,还有更多的特定处理器:DockerOperator,HiveOperator,S3FileTransferOperator,PrestoToMysqlOperator,SlackOperator …

在当前项目使用了HTTPOperator作为执行器,用于调用JAVA服务,整体结构图如下:

数据中台产品测试总结前言数据中台由来数据中台概念数据中台(公司产品)实现技术总结
数据中台产品测试总结前言数据中台由来数据中台概念数据中台(公司产品)实现技术总结

OOzie

Oozie是一种Java Web应用程序,它运行在Java servlet容器——即Tomcat——中,并使用数据库来存储以下内容:

工作流定义

当前运行的工作流实例,包括实例的状态和变量

Oozie工作流是放置在控制依赖DAG(有向无环图 Direct Acyclic Graph)中的一组动作(例如,Hadoop的Map/Reduce作业、Pig作业等),其中指定了动作执行的顺序。我们会使用hPDL(一种XML流程定义语言)来描述这个图。

统一调度hadoop系统中常见的mr任务启动hdfs操作、shell调度、hive操作等。

使得复杂的依赖关系时间触发事件触发使用xml语言进行表达开发效率提高。

一组任务使用一个DAG来表示,使用图形表达流程逻辑更加清晰。

支持很多种任务调度,能完成大部分hadoop任务处理。

程序定义支持EL常量和函数,表达更加丰富。

总结

作用:数据中台是数据存储、加工、输出的集合。数据中台建立的作用是,可以为前台迅速提供数据接口。而不再需要考虑其他事情。

模式:数据中台的工作模式为:获取数据-数据加工-数据统计-数据输出的模式。

适用:数据中台适用于复杂的、多业务的场景,单业务适用数据中台很难起到作用。

定制数据中台可以对业务提供统一的存储和管控,对于不同的业务以及算法,需要不同的计算引擎以及处理模式。定制化的制作数据加工功能很有必要。即不同的公司很难有相同的数据中台。