第六章
数据服务
一、服务架构演进
DWSOA:一个需求一个接口、编码实现接口、接口数量5000/年,将业务方对数据的需求通过SOA服务的方式暴露出去。
OpenAPI:一类需求一个接口、编码配置实现接口、接口数量200/年,将数据按照其统计粒度进行聚合,同样维度的数据,形成一张逻辑表,采用同样的接口描述。
SmartDQ:所有需求一个接口、配置实现接口、接口数量1、服务形式不够丰富
OneService:丰富服务方式、数据拉取、数据推送、定制任务、优化服务性能、加强服务治理
总结:接口易上难下,即使一个接口也会绑定一批人(业务方、接口开发维护人员、调用方)。所以对外提供的数据服务接口一定要尽可能抽象,接口的数量要尽可能收敛,最后在保证服务质量的情况下,尽可能减少维护工作量。
二、统一的数据服务层
1.技术架构
元数据模型
简单来说,是逻辑表到物理表的映射。
自底向上分别是:
(1)数据源
(2)物理表:物理表是具体某个数据源中的一张表。每张物理表都需要指明主键由哪些列组成,主键确定后即可得知该表的统计粒度。
(3)逻辑表
逻辑表可以理解为数据库中的视图,是一张虚拟表,也可以看作是由若干主键相同的物理表构成的大宽表。
(4)主题
逻辑表一般会挂载在某个主题下,以便进行管理与查找。
最佳实践
1.性能
资源分配
(1)剥离计算资源
(2)查询资源分配
查询接口分为两种:Get接口,只返回一条数据;List接口,会返回多条数据。
QPS:每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准
缓存优化
(1)元数据缓存
查询能力
离线数据的产出时间取决于上游任务的执行时间,以及当前平台的资源情况。所以产出时间是无法估算的。
稳定性
(1)元数据隔离