数据服务作为数据中台方法论OneService的核心内容,主要解决数据最后一公里问题,将大数据平台开发好的数据资产通过在线化配置API的方式提供给业务方调用,同时也能够支持用户已有的API注册到数据服务平台上调用。
为何要有数据服务平台?解释这一问题就需要了解其能解决客户的哪些痛点,我这边做了简单的梳理,主要存在以下几个痛点:
针对上述痛点做如下说明:
- 对于开发人员来讲,不清楚API具体被哪些应用所调用,同时对于不同的开发人员,可能会因为信息沟通不及时出现接口重复开发的问题
- 对于大数据开发,如何将开发好的数据快速提供给业务方使用,同时对于底层元数据的变动,如何快速应该更新业务的需求接口信息
- 对于运维人员,需要监控API的调用情况并针对出现告警及时应对
应用场景:
- 数据工程师:配置连接数据源、取数API创建、调试发布上线;
- 应用工程师:查看API的详情说明,进行应用业务的调用开发;
- 产品人员:查看应用API的调用情况,评估数据价值,关联数据资产;
- 运维人员:查看表和应用的关联情况,及时定位故障影响。
应用价值:
- 解决数据工程师和应用工程师之间取数易用性矛盾的问题;
- 提供统一的数据查询服务,屏蔽数据源的细节,实现多数据表的关联查询;
- 打通数据应用和数据工程,实现数据价值和链路血缘的补充。
数据中台OneData、OneService方法论在国内最早是由阿里提出来的,因此国内数据中台的鼻祖非阿里莫属,其它的中台厂商大多数在阿里的产品方法论上结合自己实际业务需求进行开发的,整个数据服务平台的竞品选择如下几家厂商的产品:
概述 - 大数据开发治理平台 DataWorks - 阿里云DataWorks数据服务旨在为企业搭建统一的数据服务总线,帮助企业统一管理对内对外的API服务。
整体业务流程:
其中
- 生成API支持向导模式(可视化创建)及脚本模式(SQL编辑创建)两种。
- 注册API主要是将已有的API注册至服务平台,便于进行统一的运维管理。
- API网关主要提供API托管服务,涵盖API发布、管理、运维、售卖的全生命周期管理。
- API市场主要用于企业将已有的API发布至应用市场,便于企业快速实现数据价值变现,最终形成商业闭环。
核心功能
1. 数据源管理
2. 业务流程创建
DataWorks数据服务根据业务种类将不同类型的资源组织在一起,即构成业务流程,能够更好地帮助您以业务为单元进行开发。每一个业务流程下均包括API、函数和服务编排三个类目,分别存放您创建的API、函数和服务编排。
其中:
- API大家可以都可以理解,就是在该平台通过向导模式、脚本模式、注册API三种方式在平台创建API
- 函数这个给大家简单总结下:就是可以通过编写相关函数对API进行数据过滤,目前数据服务支持的函数类型包括:Aviator函数、Python函数。该功能为数据服务的新功能
- 服务编排:提供拖拽式、可视化的工作流编排能力,支持用户按照业务逻辑,以串行、并行和分支等结构编排多个API及函数服务为工作流。
目前分析来看,对于自研数据服务的厂商,MVP版本可以暂时考虑仅做API的开发,对于函数及服务编排可作为后续的版本的迭代升级功能。
3. 创建API
支持向导模式和脚本模式两种方式创建API,目前行业内所有产品都是这样,对于两种模式有如下区别:
向导模式
首先会进行基本属性的配置,如下:
配置完之后会进行详细参数配置页面:
可视化方式支持用户选择相应的库、表之后进行请求参数、返回参数、排序参数的配置选择,完成之后会自动生成相关参数,同时用户可进行过滤器配置(此部分主要通过函数实现):
同时可进行资源组配置一级查看该API的版本记录,此部分不做说明,具体见DataWorks说明文档,配置完成之后点击右上角的测试,测试通过之后可以点击提交,完成API的开发。
脚本模式
脚本模式主要区别是通过编写SQL完成API的配置开发,其它内容与向导模式相同,如下图:
4. 注册API
5. 测试API
输入API的相关请求参数,可以进行API的测试,右侧出现请求详情及返回结果
6、授权API
阿里的授权是将API授权给某个云账号ID
7、调用API
- API:您即将要调用的API,明确API参数定义。
- 应用App:作为您调用API时的身份,AppKey和AppSecret用于验证您的身份。
- API和App的权限关系:App需要调用某个API,必须获取调用该API的权限。
因此对于此处存在疑虑,上面的是直接授权某个云ID,在API调用时,强调了需要新建应用,然后将API授权给某个应用。
8、计量API
8、其它
函数及服务编排此处暂时不做说明,详细请查看DataWorks相关文档
网易有数的一站式的数据开发及管理平台提供全链路的大数据开发,任务调度,数据质量,数据治理及数据服务平台,其中数据服务模块也是经过内部多条业务产品线的验证。
网易的数据服务平台整体业务流程如下:
其主要作为数据资产和上层业务连接的纽带,能够快速将数仓的表通过API接口的方式提供业务方调用
整体的技术架构如下:
从数据服务的技术角度,整个产品包含API管理服务、API查询服务、统一查询服务和网关服务,其中网关服务能够对某 些服务的调用起到限流等作用,且自身通过多副本节点的方式保证高可用。
其中:
- API管理服务:主要负责数据源配置、API配置管理、测试和发布、API调用状态查询等业务逻辑。
- API查询服务:主要负责接受用户的请求,根据请求头信息、请求方法、请求URL、请求Body信息解析出调用的API ID、调用参数,并生产统一查询服务的SQL,调用统一查询服务,获取到查询结果后封装返回。
- 统一查询服务:接受统一查询SQL和数据源相关信息,解析SQL生成对应的数据源查询计划,查询具体的数据系 统,并返回结果。
- 网关服务:网关服务起到内部组件相互调用的路由作用,组件对组件的访问都必须经过网关服务;能够对某些服 务调用起到限流作用。
网易猛犸数据服务平台API的主要开发流程如下
1、数据源登记
2、API开发
首先是进行API集合创建,类似对为API创建不同的分组,比如我们可以根据我们不同的业务需求去创建不同的集合,其中集合的path作为整个API的一部分,能够方便我们快速定位该API的应用场景。
第二步进行API的配置开发(先介绍生成API,后面介绍注册API),同阿里DataWorks相同,网易也支持两种方式创建API,网易主要是分三步:配置基本信息、配置参数、测试
配置基本信息
需要注意的是,网易在创建API的时候就可进行apiToken鉴权的设置,若打开,可通过apiToken调用API,只需要在header中添加字段apiTOken、 appKey和version即可,适用于报表、数据大屏等安全性要求不高的使用场景。
配置参数
在配置参数时,网易有个功能就是如果用户需要对返回参数进行二次处理,平台支持上传Jar包达到对返回参数的二次处理,可以将对返回参数的处理逻辑在Jar中 完成,然后上传Jar包,填写类名,若Jar中对返回参数进行了修改,可添加真实的返回参数,给API调用者将暴露真实的 返回参数信息,具体页面如下:
保存和测试
测试成功的API便可以进行发布上线,只有发布的API才可以绑定应用,API才可以被调用。
4、API授权
创建完应用之后,在API详情页将该API授权给某个应用,如下:
5、调用API
在应用详情里可以看到AppKey和AppCode值
6、API集市
7、服务概览
服务概览类似于DataWorks里面的计量API,在服务概览页面,可以查看今日、近7日和近30日的API的调用情况,包括累计已发布的API数量、累计调用API的数量、 累计调用API的次数以及累计调用API的成功次数,通过图表可了解在对应时间范围内的API调用的Top10以及服务的调 用比率等。
8、注册API
注册API与创建API除了第二步配置参数不同,其它步骤类似,配置参数页面如下:
主要分为流控策略、访问策略、报警策略三种
告警策略:配置不同的监控指标进行告警策略推送的配置
13、API行级权限
其它:
资源组配置:根据需求配置不同的资源组
事件追踪:能够对操作记录进行统一的展示
袋鼠云数据服务平台整体架构如下:
袋鼠云整体功能如下:
接下来对其核心功能进行介绍:
1、数据源管理
非关系型数据库
2、新增API
主要包括新建API(向导模式、脚本模式)、注册API、创建函数,
其中袋鼠云的创建方式和其它厂商的功能有以下区别:
- 安全与限制策略:袋鼠云将限流测试及黑白名单策略直接在新建API时候添加了,其中流量策略为单用户单秒调用次数上限且为必填项,系统默认2000,黑白名称安全组设置为非必填项
- 行级权限设置:该功能同网易猛犸产品中的功能,主要是在API调用时对字段进行访问权限的控制。用户勾选行级权限后,可继续选择“行级权限标识”对字段进行对应权限的控制
- 数据预览功能:支持用户在线化预览表中的字段及数据
- 服务编排功能:支持新增函数及服务编排
具体页面如下:
点击“编辑参数”,系统将解析当前SQL代码,得到输入参数与输出参数的关系映射并展示,帮助用户快速确认API配置逻辑是否有误。
类似于DAG工作流的方式
3、API管理
API管理主要包括API类目管理、API列表管理、函数管理、服务编排管理,详细说明如下:
API类目管理,其类似于分组管理,当前仅支持三级类目
API列表管理:查看当前所有的API,包括生成API、注册API、服务编排。
函数的提交、发布状态决定了引用该函数的服务编排是否生效。
服务编排管理:可对服务编辑进行相应的操作,查看服务编排的详情内容
4、API测试
5、API申请
API调用时,行级权限用来控制用户对字段的访问权限。若输入参数不符合行级权限标识下的该用户的权限值,则无法获得相应内容的输出。
是API的首页,展示整体调用情况,并根据API角色展示不同视角的概览全局。
数澜的相关功能截图
DGC数据服务旨在为企业搭建统一的数据服务总线,帮助企业统一管理对内对外的API服务。数据服务为您提供快速将数据表生成数据API的能力,涵盖API发布、管理、运维、售卖的全生命周期管理,帮助您简单、快速、低成本、低风险地实现微服务聚合、前后端分离、系统集成,向合作伙伴、开发者开放功能和数据。
华为数据服务架构图:
对比上述几个厂商产品,这边总结了数据服务平台的核心功能点,如下:
根据上述功能点绘制的详细产品原型如下:
对于自研厂商来说,MVP版本可以按照上述功能点实现,同时可进行产品的迭代优化,我这边也简单梳理了迭代版本的一些功能点,如下:
类似阿里的删减版原型如下:
同时笔者也调研了一些开源的产品,这里简单介绍下:
首先是的DbApi,详细Gitee链接如下:,其主要存在以下缺陷:
- DBAPI项目权限系统较简单,只能针对某一个接口进行权限进行管理,不能针对API组及用户进行权限进行管理
- DBAPI在定义API过程中选择库表会进行全库全表进行扫描,过程速度慢
- DBAPI没有API监控审计模块,不能直观看到API调用情况
- DBAPI没有API限流,灰度发布等,集成的spring gateway功能有限
- 其主要是通过Sql去实现API的创建,暂时不支持向导模式及注册API
- 同时对于黑白名单的控制,仅能做到所有API设置黑白名单,不支持单个API控制黑白名单
建议:
如果公司内部使用不做商业化可暂时使用DbApi,后续进行二次开发优化
如果是商业化产品,产品设计可按照大厂设计,里面的部分功能可以使用DbApi的底层技术
1、阿里DataWorks:
2、极客时间数据中台实战课:
3、网易猛犸:
4、袋鼠云:
5、数澜科技:
6、华为数据治理:
既然看到这了,不如点个赞再走吧!
如需相关的产品资料,请关注公众号:车联网大数据学习营 !回复:数据服务