编辑推荐: |
本文主要系统性的介绍数据中台提供的服务类型,详细讲解了最重要的Data
API部分。希望能够对大家有所启发和帮助。
本文来自于腾讯云,由火龙果软件Linda编辑、推荐。 |
|
数据中台的核心是数据服务
数据中台是“数据服务工厂”,所以,数据服务是数据中台的核心能力。
那么,数据中台都提供哪些数据服务呢?
业界常用的数据服务包括五种类型,Data API,Event Hub,Database,File,Terminal
& APP。
什么是数据服务
现在行业里讲的Data as a Service (DaaS),在Wiki中则特制基于SOAP的API服务。
data as a service is enabled by software as a service
(SaaS).[1] Like all "as a service" (aaS)
technology, DaaS builds on the concept that its data
product can be provided to the user on demand,[2]
regardless of geographic or organizational separation
between provider and consumer. Service-oriented architecture
(SOA), and the widespread use of API, has rendered
the platform on which the data resides as irrelevant.[3]
广义的数据服务则可以理解为,为业务提供数据的服务。
数据服务是一个行业,广为人知的数据服务提供商有以下的几类:
金融数据服务
金融数据服务是目前商业化程度最高,最成熟的行业数据服务。全球有众多的金融数据服务公司,比较有名的有Bloomberg,Wind,汤森路透等,而在国内,典型的金融数据服务机构就包括中国外汇交易中心。
拿外汇交易中心为例,它提供的服务主要有:市场数据,市场公告,指标数据,数据服务,而典型的数据服务类型分成了以下几类:信息产品服务、数据接口服务、媒体数据服务、信息商数据服务。
公开数据服务
公开数据服务是将一些公共用途的数据以服务的形式提供出来,供所有的用户使用。类似于国家统计局,政府公开数据等。
拿上海市公共数据开放平台做例子:
上海市公共数据开放平台,提供了三类数据服务:
数据产品,数据接口,数据应用。
数据产品:
一般是指可以下载的数据集,比如CSV/DOC格式存在的。例如:
数据接口:
通过特定的技术手段去调用其他系统,获得数据的接口。
数据应用:
数据应用是指一个特定领域的数据及数据使用的应用系统,在上海公共数据平台中,数据应用关联到一个完整的独立的APP。
知识数据服务
万方数据是典型的知识数据服务的类型,提供学术研究类知识的数据服务。主要服务类型根据领域不同会有所差别,如下图所示:
那么什么是数据服务呢?
我个人觉得,通过某一种或多种方式提供数据,就是数据服务。
我们先梳理一下历史上数据服务的五种类型。
数据服务的五种类型
从提供数据的技术方式上,我们可以将数据服务分为以下五种类型。
Data API
这是最常用的一种数据服务的形式,用户通过请求/响应来访问数据。优势是很容易公布/订阅这些API接口。这类数据接口服务一般包括参数,返回值,接口样本,接口地址等。
常用的Data API是REST形式。
Event HUB
Event Hub的定义是:
An event investor is a component or service that
sits between event publishers and event consumers
to decouple the production of an event stream from
the consumption of those events.
通过消息队列(MQ)的方式,提供事件消息的数据服务,典型的架构如下图所示:
Database
数据库是最早的提供数据的服务形式,比如数据湖,当用户需要数据的时候,直接提供一个数据库访问链接给到用户,从而直接访问这个数据库里的数据。
目前企业的业务部门对于其他数据的访问形式,数据库是很重要的一种,典型的场景就是业务部门在开发业务应用的时候,需要数据,那么直接问数据部门要数据库的访问权限,然后自己基于这个数据库去做数据开发,在系统中直接调用这些数据。
这样的数据库服务形式的优点是灵活,但是缺点也很明显,没有权限划分,需要业务部门有专业的数据开发能力,并且无法追溯,最重要的是,当多个业务部门都利用这种方式访问和使用数据的时候,会产生很多份数据拷贝,也就是企业数据不一致的重要的原因。
File
当数据量比较大,或者没有比较好的访问通道的时候,数据文件也是一种提供服务的形式。比如,通过FTP文件服务器等。
Terminal & APP
前面四种数据服务形式的本质都是提供某一种形式的数据集,而Terminal & APP的形式,则不仅包括数据集,还包括使用,访问数据的方法和流程。
此类典型的样例就是大智慧,同花顺这样的证券交易APP。
总结
我们从实时性,数据量,访问频率,可审计性,安全性等多个维度来对比以上五类数据服务。
在目前,数据中台的语境里,主要趋势是Data API,所以,我们下面重点来剖析Data
API。
数据访问的两种形式
以上的五种数据服务类型,根据访问的形式,都可以分为两类:推(Push)和拉(Pull)
Push(推)
数据供应端主动推送数据到数据消费端,典型的代表有事件订阅和数据库同步。
比如,物料主数据变化的时候,将最新的数据推送给所有的数据消费者系统。
这样的形式是从供应方的视角来处理的,所以不论数据消费者是否需要这些数据,也不论消费者对于这些数据的使用场景是怎样的,对于数据供应方来讲,都是无差别的推数据过去,哪怕消费者使用的频率很低。
这样的优势是,实时性很强,只要数据在源头发生了变化,都会第一时间推送给数据消费方。
但是劣势也很明显:
第一,推送数据产生了很多的资源浪费,无差别的推送,存储
第二,往往数据消费方需要二次加工这些推送来的数据,才能使用
第三,消费者是否使用,如何使用,不好管理,无法跟踪
Pull(拉)
数据消费方,根据自己的需要,从数据供应端拉数据回来,这样的典型服务类型包括:
Data API,文件下载,和Terminal&APP。
Pull是典型的的精益的形式,按需使用数据,用什么获取什么,什么时候用,什么时候获取,用哪部分数据获取那部分数据。
从数据消费者的视角来看
从数据消费者的视角来看,消息队列(Event)模式的数据利用如下图所示:
只有当数据应用方能够直接使用这个数据消息的时候,应用开发团队才不需要二次开发这个数据,否则应用开发团队需要在本地的存储中再次存储一遍这个数据,并且构建后端API,进一步加工这个数据。这样带来了前端应用利用数据的复杂性,也带来了一致性的问题。
采用数据API的方式提供服务的场景如下图所示:
在数据处理和加工方与数据应用方之间加入一层,数据服务层,从而可以提高灵活性和复用性,这样让数据应用放可以直接使用数据服务而不再做任何加工处理,也能够保证不同数据应用使用同一个数据服务,提高数据的一致性。
关于CQRS(命令查询责任分离)
CQRS是对应于CRUD的一种数据处理模式,使用与用于读取信息的模型不同的模型来更新信息,是Greg
Young提出来的。
详见老马的博客:CQRS。
从整个数据利用的趋势来看,Data API是数据中台未来主要的服务形式,所以下面重点剖析Data
API。
Data API剖析
什么是API,在维基百科的解释如下:
An application programming interface (API) is an
interface or communication protocol between different
parts of a computer program intended to simplify the
implementation and maintenance of software.
一个应用程序接口是两个不同的计算机程序之间的接口或通信协议,目的是为了简化软件的开发和维护。
An API may be for a web-based system, operating system,
database system, computer hardware, or software library.
一个API可以是Web系统,操作系统,数据系统,计算机硬件或者是软件类库。
An API specification can take many forms, but often
includes specifications for routines, data structures,
object classes, variables, or remote calls. POSIX,
Windows API and ASPI are examples of different forms
of APIs. Documentation for the API usually is provided
to facilitate usage and implementation.
一个API可以以多种形式存在,但是通常会包括特殊的路由规则,数据结构,对象,变量或者远程调用。POSIX,Windows和ASPI是不同的API形式。API通常会提供文档和实现形式。
而,数据API是提供数据的应用程序接口。在数据已经成为企业的核心资产的趋势下,数据API已经成为了一种业务模式,比如,已经有非常多的数据API市场用来聚集,生产和消费,交易各种数据API。
Data API的本质
Data API本质上就是一个远传调用。
典型的包括:
https://any-api.com/
https://rapidapi.com/
API的三种类型
常用的API主要分为三种类型:
业务命令API
业务API以Command (命令)为主,实际上就是一个业务行为,包括Request/Response,也可以没有Response的内容,是为了执行一个业务指令。
比如,创建订单,创建用户。
智能计算API
智能API是为了对数据进行计算,是对于输入参数的加工,返回计算的结果。
比如计算最优路径,计算推荐价格等。
数据查询API
数据API是对于已有数据的查询,可以带各种条件。
比如查询用户信息,获取用户画像,获取产品清单等。
数据中台提供的API以智能API和数据API为主,我们下面重点分析数据API。
数据API的剖析
数据API的执行过程
数据API的执行过程可以归纳为三步:
请求,执行和返回结果。
这与数据库层的操作来说是能够对应上的,如下图所示:
数据API的两种形式
数据API可以分为两种形式:
搜索API
用户可以有一定的自主权,从而能够灵活的组织查询逻辑,去获取数据。
模板API
用户只能根据确定的参数来访问数据,灵活度低。
数据API的三大成功要素
不论哪一种数据API,一个好的数据API需要具备以下三个成功要素。
快速灵活
因为业务用户很多,用户的需求变化也快,所以,好的数据API应该有一定的灵活性,从而能够按需快速响应前端的需求。
准确一致
数据的准确性,一致性是数据API的基线。
安全合规
提供安全合规的数据,确保数据的隐私,分级和和合规,也是数据API必须保证的。
所以,我们归纳出一个高质量的数据API的逻辑结构如下:
要包括灵活的参数解析,安全的数据权限,快速的数据缓存,根据数据合规和区域特性,制定不同的数据存储的架构,并且要有有效的日志追踪体系,从而保障数据服务的质量(SLA)。
以上这所有的,一切都是数据中台中,数据API平台组件应该提供的基础能力。
|