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