上次讲数据质量的控制,那么针对据仓的数据及各种数据指标怎么快捷的对外提供数据服务,怎么快速的完成数据服务接口的开发,这次我们重点围绕这个进行展开。怎么实现接口开发零代码实现
数据服务从字面上理解就是数据相关的服务,和业务服务的最大不同之处它并不包含具体业务逻辑处理,与之产出的数据服务大多为统计、决策类的数据结果。很多时候大数据平台服务都是提供了数据分析的能力,分析的结果可以导出Excel,或直接查表来查看。如果要是对外提供服务的话,可能会由不同的业务团队对基础表产出相似的指标分析结果,这样的话就可能导致相同指标的结果数据不一致的情况。
数据服务是对各业务领域主体的分析结果,以统一数据服务的方式对外提供,有点类似one service意思。
数据服务平台架构:
统一数据服务作用:
- 数据服务标准:数据结构标准化、在线查询实时化、数据开发可视化。
- 数据结构标准化:针对数据交互,我们需要提供统一的接口视图,可进行数据的查询、权限管控。
- 在线查询实时化:针对各业务的调用,我们需要提供指标级数据口径统一的实时数据结果。
- 数据开发可视化:提供数据接口的可视化统一管理页面,开发人员通过通过可视化管理API,降低接口理解的难度,易于维护
数据服务化
数据服务提供快速将数据表生成数据 API 的能力,通过应用授权,供外部应用系统调用 API 获取数据,且对 API 进行统一管理和发布,支持一键创建数据抽取任务
- 提供向导模式和 SQL 模式,可以通过简单的配置即实现取数 API 的自动构建,屏蔽底层数据源细节,提高数据中台的整体效率
- 提供应用、表和 API 的关系链路,降低运维成本,解耦应用与底层表,提供统一的认证、权限和监控,确保数据应用质量。
- 提供数据服务流控功能,并和数据安全控制策略结合,确保数据安全
- 提供接口开发,调式、参数定义,返回结果说明等开发IDE
数据服务看板
具备 API 使用的监控统计能力,可查看调用次数、调用延时等信息,提供 API 库表和应用的关系查询 ,可以按照业务主题进行分组可以给数据服务设置数据安全等级,对于安全等级较高的服务进行数据访问限流,及审计数据应用开发通过API配置功能统一创建和发布的API,可以在服务概览页面查看API的调用详情,包括查看不同时间维度下的调用API数量、次数和成功的次数,且能够清晰的查看调用API的Top5和服务调用比例,同时,概览页面提供调用和未调用API列表,若API长时间未被调用或一直未被调用,可考虑下线或者删除。
数据服务权限管理
提供统一的认证、权限和监控,确保数据应用质量及数据安全
数据服务可视化开发
这里我们可以可视化的开发数据服务API,进行测试、发布。下线及接口的流控
新建接口
接口查看
这里我们是参考Mybatis自己实现了一套SQL引擎,你们也可以参考这个来实现,或者网上也有类似的开源系统可以作为参考实现:
- magic-api :magic-api: magic-api 是一个基于Java的接口快速开发框架,通过magic-api提供的UI界面完成编写接口,无需定义Controller、Service、Dao、Mapper、XML、VO等Java对象即可完成常见的HTTP API接口开发 ,https://gitee.com/ssssssss-team/magic-api
- Rocket-API: API敏捷开发框架,用于API接口功能的快速开发。不再定义Controller,Service,Dao,Mybatis,xml,Entity,VO等对象和方法.以springboot starter 形式集成使用,https://github.com/alenfive/rocket-api
数据服务标准化的推动可以解决数据使用中的口径不统一,在数据开发层面以业务领域划分,收紧指标口径的产出,统一由相关人员产出,并以one service 的方式提供给数据业务前台、业务系统等。同时零代码的数据服务开发平台,结合元数据管理系统及血缘关系,可以大大提高数据服务的开发效率及业务响应速度。