Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
DataDevCenter
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
张鹏
DataDevCenter
Commits
20d09c93
提交
20d09c93
authored
1月 08, 2020
作者:
张鹏
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
每天也没时间写
上级
54ba965b
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
38 行增加
和
19 行删除
+38
-19
readme.md
readme.md
+38
-19
没有找到文件。
readme.md
浏览文件 @
20d09c93
...
...
@@ -95,7 +95,7 @@ Apache Druid 特点:
通过分析、沉淀数据的公用属性,抽象公共业务能力到中台,使得快速支撑前台业务研发成为可能。
![
image
](
https://git.allhome.com.cn/debuglife/DataDevCenter/raw/
master/pics/%E6%96%B0
-%E4%B8%AD%E5%8F%B0%E6%9E%B6%E6%9E%84%E5%B1%82%E6%AC%A1.jpg
)
![
image
](
https://git.allhome.com.cn/debuglife/DataDevCenter/raw/
54ba965b7729983fd58a24ba747c8e89fb0ec784/pics/20190107
-%E4%B8%AD%E5%8F%B0%E6%9E%B6%E6%9E%84%E5%B1%82%E6%AC%A1.jpg
)
### 3.1 平台工作流
...
...
@@ -137,8 +137,6 @@ Apache Druid 特点:
### 3.3 公共业务接口(业务中台)
简单来说,业务中台是各领域公用能力的集合,聚合
**数据后台**
提供的“细粒度”数据,以rest api的形式为前台系统的研发提供便利。这里所说的业务中台是一组数据服务集群,同时提供业务系统所需的“统一计算过程”并对外暴露接口,为其他系统提供进一步的数据分析能力。
业务中台的公用能力沉淀问题,如
[
3.2 前台
](
#32
)
提到的例子,应收应付业务因其具备公用能力并提供业务服务,可将该能力提炼到
**业务中台**
,我称之为
**统一计算过程**
。之后,再充分利用
**工作流系统**
的节点编排能力,将“应收应付”这个“统一计算过程”能力编排到需要的业务系统中,实现真正意义上的
**业务中台**
。
>继续延伸,该应收应付中台服务,可在不侵入前台业务的情况下将数据进一步下沉至数据分析数据库,实施进一步的分析聚合,直接为上层用户提供决策分析依据。
...
...
@@ -149,8 +147,15 @@ Apache Druid 特点:
-
企业人员档案速查接口
-
...
简单来说,业务中台是各领域公用能力的集合,聚合
**数据后台**
提供的“细粒度”数据,以 API 的形式为前台系统的研发提供便利。这里所说的业务中台是一组数据服务集群,同时提供业务系统所需的“统一计算过程”并对外暴露接口,为中台其他系统提供进一步的数据分析能力。
需要强调的是,前台和中台业务数据直接写入数据后台,并基于这些数据形成细粒度的业务数据接口。中台数据来自于
**数据后台**
提供的“细粒度”数据。
简单来说,后台数据由前台业务系统写入,中台数据由后台数据提炼,并进行更进一步的分析。
基于此种架构,中台要做的事情其实远不止于此。后台元数据的缓存、Join等使用频繁的操作,均可在中台进行提炼和缓存,这些数据能力其实也是公共能力的一种。
架构的变革,势必会影响到开发模式。以往我们只需要使用CRUD模式即可完成一套并发要求不高的业务系统的研发。现在却不得不同时使用CQRS和CRUD两种模式,为此,研发部门还需要对数据操作进行标准封装,将这两种数据操作模式做成SDK供前台业务开发人员使用。
### 3.4 统一计算过程
...
...
@@ -162,47 +167,61 @@ Apache Druid 特点:
-
保障各项目业务逻辑运算结果和聚合分析结果的一致性
-
借助工作流系统的任务编排能力,将
**统一计算过程**
编排到
**业务中台**
的接口中,解除耦合,增强维护性
“统一计算过程“的提炼和沉淀要求工作人员具备一定的架构经验,对平台项目细节保持关注,敏锐洞察平台各系统中的公共
部分
,为后期的业务中台建设节约成本。
“统一计算过程“的提炼和沉淀要求工作人员具备一定的架构经验,对平台项目细节保持关注,敏锐洞察平台各系统中的公共
能力
,为后期的业务中台建设节约成本。
### 3.5 数据中台
#### 3.5.1 主要职能
数据中台的概念延伸自业务中台,结合当前平台架构现状,主要应包括以下几种能力:
-
元数据管理
-
业务数据的公用能力下沉
-
业务数据的公用能力提炼
1.
分离原有后台服务为中台和后台(业务部分为中台,基础数据部分为后台)
2.
后台细粒度接口的数据聚合,并以Rest接口的形式对前台系统提供服务
-
业务数据的实时/离线聚合分析能力
维护数据中台过程中,一个需要设计师时刻保持警觉的问题是:数据沉淀太过随意,将业务个性化的数据随意提炼到数据中台,最后发展成专门面向某一领域或项目特有的“数据集市”,随着业务的变化和扩张,该集市体量越来越大,服务范围却越来越”专一“,最终不得不进行分拆或重建以适应新的领域需求。
#### 3.5.2 数据的公用能力
业务中台的数据直接落地到数据后台,与
**数据后台**
基于API进行同步阻塞(确保事务性)或异步非阻塞通讯,目的是为了解耦具体技术产品和数据模型。基于后台服务返回结果集完成各类SQL等效操作,降低或者压缩SQL的使用影响和范围
。
维护数据中台过程中,一个需要设计师时刻保持警觉的问题是:数据公用能力的提炼太过随意,将业务个性化的数据随意提炼到中台,最后发展成专门面向某一领域或项目特有的“数据集市”,随着业务的变化和扩张,该集市体量越来越大,服务范围却越来越”专一“,最终不得不进行分拆或重建以适应新的领域需求
。
>SQL是一种领域特定语言(DSL),虽然很强大但并不是很好的工程语言。由于它不能在内存中定义和操作复杂的数据结构,如果要做模块化的逻辑封装,模块的输入输出必须是数据库表,这就带来了 I/O 损耗,大量的模块化,必然带来导致 I/O 性能的显著下降。而这些模块存在的方式只是脚本,缺少治理工具,大量零散的模块如何管理也是一个难题。系统实施者必须在模块化和性能间权衡,性能是显性的,直接影响用户体验且有明确的度量指标;模块化是隐形的,而且缺少度量工具。因此实际工程中,很少真正做到逻辑的模块化,数据库表的层次不规范,甚至出现数千行 SQL 语句从源表加工数据直接写入结果表。由于缺少治理工具,规范难以执行,久而久之大家也就默认了这样的事实。
因此,
**数据公用能力的提炼不能仅依靠架构师的个人能力,需要制定明确边界的操作规范,避免上述情况的发生。**
>大范围使用SQL的代价是可测试性极差,每次逻辑的变化都要通过对代码的修改来实现而并不是新增逻辑。试想一段上千行、逻辑纵横交错的 SQL 语句,要在其中修改某个单点逻辑,没有高覆盖率的单元测试用例,如何确保正确性,最终只能依靠细心和运气,代码质量必定是脆弱的,不能称为真正的工程化项目,治理和敏捷都无从谈起。
#### 3.5.3 降低或压缩SQL的使用影响和范围
### 3.5 数据后台
业务中台的数据直接落地到数据后台,与数据后台基于 API 进行同步阻塞(确保事务性)或异步非阻塞(非事务性)通讯,目的是为了解耦具体技术产品和数据模型。基于后台服务返回结果集完成各类SQL等效操作,
**降低或者压缩SQL的使用影响和范围。**
>SQL是一种领域特定语言(DSL),虽然**很强大但并不是很好的工程语言**。由于它不能在内存中定义和操作复杂的数据结构,如果要做模块化的逻辑封装,模块的输入输出必须是数据库表,这就带来了 I/O 损耗,大量的模块化,必然带来导致 I/O 性能的显著下降。而这些模块存在的方式只是脚本,缺少治理工具,大量零散的模块如何管理也是一个难题。系统实施者必须在模块化和性能间权衡,性能是显性的,直接影响用户体验且有明确的度量指标;模块化是隐形的,而且缺少度量工具。因此实际工程中,很少真正做到逻辑的模块化,数据库表的层次不规范,甚至出现数千行 SQL 语句从源表加工数据直接写入结果表。由于缺少治理工具,规范难以执行,久而久之大家也就默认了这样的事实。
>**大范围使用SQL的代价是可测试性极差**,每次逻辑的变化都要通过对代码的修改来实现而并不是新增逻辑。试想一段上千行、逻辑纵横交错的 SQL 语句,要在其中修改某个单点逻辑,没有高覆盖率的单元测试用例,如何确保正确性,最终只能依靠细心和运气,代码质量必定是脆弱的,不能称为真正的工程化项目,治理和敏捷都无从谈起。
### 3.6 离线数据计算中心
因此,
**降低或者压缩SQL的使用影响和范围**
成为建设中台数据设施的必选项。
###
3.5 技术中台
###
# 3.5.4 降低数据存储冗余
技术中台同样服务于业务中台,包括:
数据中台应“降低数据存储冗余”。前面提到,数据由前台系统直接落地到数据后台进行保存,中台数据由后台数据反哺而来。中台只保留用户、机构等维度数据,用于提升处理效率。
-
服务于数据的数据技术中台,如聚合分析和计算能力等
-
提炼自业务的公用计算能力
-
服务于研发自身的组件库,标准库,以及各公用服务及各自的SDK开发包等
水平方向上来说,系统间数据冗余是业务逻辑重复开发的土壤;垂直方向来说,数据中台和后台之间的数据冗余,同样是数据孤岛的成因,因此,需要在顶层架构设计中尽量规避。
技术中台的终极目标只有一个关键词:效率。将提高研发速度和质量作为第一要务,在企业中起着不可或缺的重要作用。是一个研发平台的基石。
为此,
**制定明确的设计规范,将用于提升处理的效率的冗余数据统一存储在特定数据设施中**
,划分该类冗余数据和分析结果存储设施的边界。
### 3.6 数据后台
### 3.6 统一计算过程
数据后台直接存储来自前台系统的业务数据,提供 API 供上层系统使用。
### 3.6 离线数据计算中心
---
<font
color=
"red"
>
阐述技术在数据中台和后台的作用
</font>
技术中台服务于其他中台,包括:
-
服务于数据的数据技术中台,如聚合分析和计算能力等
-
提炼自业务的公用计算能力
-
服务于研发自身的组件库,标准库,以及各公用服务及各自的SDK开发包等
技术中台的终极目标只有一个关键词:效率。将提高研发速度和质量作为第一要务,在企业中起着不可或缺的重要作用。是一个研发平台的基石。
## 4. 整体架构设计
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论