凯哥讲数据中台[010]数据服务深度剖析
?
文章图片
image 导读
本文的主题:
系统性的介绍数据中台提供的服务类型,详细讲解最重要的Data API部分。
【凯哥讲数据中台[010]数据服务深度剖析】适合的读者:
希望系统性掌握数据中台核心数据服务底层逻辑结构的数据中台建设者
核心内容和关键字:数据中台,数据服务,Data API
长度:5000字
阅读时间:30分钟
数据中台的核心是数据服务
数据中台是“数据服务工厂”,所以,数据服务是数据中台的核心能力。
那么,数据中台都提供哪些数据服务呢?
业界常用的数据服务包括五种类型,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]广义的数据服务则可以理解为,为业务提供数据的服务。
数据服务是一个行业,广为人知的数据服务提供商有以下的几类:
文章图片
image
文章图片
image 金融数据服务 金融数据服务是目前商业化程度最高,最成熟的行业数据服务。全球有众多的金融数据服务公司,比较有名的有Bloomberg,Wind,汤森路透等,而在国内,典型的金融数据服务机构就包括中国外汇交易中心。
拿外汇交易中心为例,它提供的服务主要有:市场数据,市场公告,指标数据,数据服务,而典型的数据服务类型分成了以下几类:信息产品服务、数据接口服务、媒体数据服务、信息商数据服务。
文章图片
image 公开数据服务 公开数据服务是将一些公共用途的数据以服务的形式提供出来,供所有的用户使用。类似于国家统计局,政府公开数据等。
拿上海市公共数据开放平台做例子:
文章图片
image 上海市公共数据开放平台,提供了三类数据服务:
数据产品,数据接口,数据应用。
数据产品:
一般是指可以下载的数据集,比如CSV/DOC格式存在的。例如:
文章图片
image 数据接口:
通过特定的技术手段去调用其他系统,获得数据的接口。
数据应用:
数据应用是指一个特定领域的数据及数据使用的应用系统,在上海公共数据平台中,数据应用关联到一个完整的独立的APP。
文章图片
image 知识数据服务 万方数据是典型的知识数据服务的类型,提供学术研究类知识的数据服务。主要服务类型根据领域不同会有所差别,如下图所示:
文章图片
image 那么什么是数据服务呢?
我个人觉得,通过某一种或多种方式提供数据,就是数据服务。
我们先梳理一下历史上数据服务的五种类型。
数据服务的五种类型 从提供数据的技术方式上,我们可以将数据服务分为以下五种类型。
文章图片
image
文章图片
image Data API 这是最常用的一种数据服务的形式,用户通过请求/响应来访问数据。优势是很容易公布/订阅这些API接口。这类数据接口服务一般包括参数,返回值,接口样本,接口地址等。
文章图片
image 常用的Data API是REST形式。
文章图片
image 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)的方式,提供事件消息的数据服务,典型的架构如下图所示:
文章图片
image
文章图片
image Database 数据库是最早的提供数据的服务形式,比如数据湖,当用户需要数据的时候,直接提供一个数据库访问链接给到用户,从而直接访问这个数据库里的数据。
目前企业的业务部门对于其他数据的访问形式,数据库是很重要的一种,典型的场景就是业务部门在开发业务应用的时候,需要数据,那么直接问数据部门要数据库的访问权限,然后自己基于这个数据库去做数据开发,在系统中直接调用这些数据。
这样的数据库服务形式的优点是灵活,但是缺点也很明显,没有权限划分,需要业务部门有专业的数据开发能力,并且无法追溯,最重要的是,当多个业务部门都利用这种方式访问和使用数据的时候,会产生很多份数据拷贝,也就是企业数据不一致的重要的原因。
文章图片
image File 当数据量比较大,或者没有比较好的访问通道的时候,数据文件也是一种提供服务的形式。比如,通过FTP文件服务器等。
文章图片
image Terminal & APP 前面四种数据服务形式的本质都是提供某一种形式的数据集,而Terminal & APP的形式,则不仅包括数据集,还包括使用,访问数据的方法和流程。
此类典型的样例就是大智慧,同花顺这样的证券交易APP。
文章图片
image 总结 我们从实时性,数据量,访问频率,可审计性,安全性等多个维度来对比以上五类数据服务。
文章图片
image.png 在目前,数据中台的语境里,主要趋势是Data API,所以,我们下面重点来剖析Data API。
文章图片
image 数据访问的两种形式 以上的五种数据服务类型,根据访问的形式,都可以分为两类:推(Push)和拉(Pull)
文章图片
image Push(推)
数据供应端主动推送数据到数据消费端,典型的代表有事件订阅和数据库同步。
比如,物料主数据变化的时候,将最新的数据推送给所有的数据消费者系统。
这样的形式是从供应方的视角来处理的,所以不论数据消费者是否需要这些数据,也不论消费者对于这些数据的使用场景是怎样的,对于数据供应方来讲,都是无差别的推数据过去,哪怕消费者使用的频率很低。
这样的优势是,实时性很强,只要数据在源头发生了变化,都会第一时间推送给数据消费方。
但是劣势也很明显:
第一,推送数据产生了很多的资源浪费,无差别的推送,存储
第二,往往数据消费方需要二次加工这些推送来的数据,才能使用
第三,消费者是否使用,如何使用,不好管理,无法跟踪
Pull(拉)
数据消费方,根据自己的需要,从数据供应端拉数据回来,这样的典型服务类型包括:
Data API,文件下载,和Terminal&APP。
Pull是典型的的精益的形式,按需使用数据,用什么获取什么,什么时候用,什么时候获取,用哪部分数据获取那部分数据。
从数据消费者的视角来看
从数据消费者的视角来看,消息队列(Event)模式的数据利用如下图所示:
文章图片
image 只有当数据应用方能够直接使用这个数据消息的时候,应用开发团队才不需要二次开发这个数据,否则应用开发团队需要在本地的存储中再次存储一遍这个数据,并且构建后端API,进一步加工这个数据。这样带来了前端应用利用数据的复杂性,也带来了一致性的问题。
采用数据API的方式提供服务的场景如下图所示:
文章图片
image 在数据处理和加工方与数据应用方之间加入一层,数据服务层,从而可以提高灵活性和复用性,这样让数据应用放可以直接使用数据服务而不再做任何加工处理,也能够保证不同数据应用使用同一个数据服务,提高数据的一致性。
关于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.而,数据API是提供数据的应用程序接口。在数据已经成为企业的核心资产的趋势下,数据API已经成为了一种业务模式,比如,已经有非常多的数据API市场用来聚集,生产和消费,交易各种数据API。
一个应用程序接口是两个不同的计算机程序之间的接口或通信协议,目的是为了简化软件的开发和维护。
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通常会提供文档和实现形式。
Data API的本质 Data API本质上就是一个远传调用。
文章图片
image 典型的包括:
https://any-api.com/
文章图片
image https://rapidapi.com/
文章图片
image API的三种类型 常用的API主要分为三种类型:
文章图片
image 业务命令API
业务API以Command (命令)为主,实际上就是一个业务行为,包括Request/Response,也可以没有Response的内容,是为了执行一个业务指令。
比如,创建订单,创建用户。
智能计算API
智能API是为了对数据进行计算,是对于输入参数的加工,返回计算的结果。
比如计算最优路径,计算推荐价格等。
数据查询API
数据API是对于已有数据的查询,可以带各种条件。
比如查询用户信息,获取用户画像,获取产品清单等。
数据中台提供的API以智能API和数据API为主,我们下面重点分析数据API。
数据API的剖析 数据API的执行过程
数据API的执行过程可以归纳为三步:
文章图片
image 请求,执行和返回结果。
这与数据库层的操作来说是能够对应上的,如下图所示:
文章图片
image
文章图片
image 数据API的两种形式 数据API可以分为两种形式:
文章图片
image
- 搜索API
- 模板API
数据API的三大成功要素 不论哪一种数据API,一个好的数据API需要具备以下三个成功要素。
文章图片
image 快速灵活
因为业务用户很多,用户的需求变化也快,所以,好的数据API应该有一定的灵活性,从而能够按需快速响应前端的需求。
准确一致
数据的准确性,一致性是数据API的基线。
安全合规
提供安全合规的数据,确保数据的隐私,分级和和合规,也是数据API必须保证的。
所以,我们归纳出一个高质量的数据API的逻辑结构如下:
文章图片
image 要包括灵活的参数解析,安全的数据权限,快速的数据缓存,根据数据合规和区域特性,制定不同的数据存储的架构,并且要有有效的日志追踪体系,从而保障数据服务的质量(SLA)。
以上这所有的,一切都是数据中台中,数据API平台组件应该提供的基础能力。
那么一个好的数据API平台应该是怎样的呢?
请关注《凯哥讲数据中台》系列
推荐阅读-2019 凯哥讲数据中台
- #凯哥讲数据中台#从招行组织结构调整看传统数据管理部门急需的五大转型
- 凯哥荣获全球DataIQ 2019 Data Enabler
- #凯哥讲数据中台#数据中台的使命、愿景、本质和六大核心能力
- 凯哥讲数据中台:精益数据治理时代的来临
- 凯哥讲数据中台:数据中台赋能企业数字化转型的四个关键成功因素
- 凯哥讲数据中台:四大能力构建数据驱动的组织
- #凯哥读报告#[010]给高管的人工智能指南
- 数据中台是真火还是炒作?
- 当数据中台遇到精益方法
- 一副卡牌玩转数据中台
- #凯哥讲数据中台#企业转型,ERP之后是什么?
- 企业数字化转型的三种授权体系
- 数据中台典型实战案例剖析
- 数据中台闹革命(一)
- 火热的数据中台对企业的价值是什么?
- 凯哥讲数据中台之二-实例剖析
- 数据现代化-富国银行的数据转型之路
- 你真的需要那么多报表么?
- #凯哥讲数据#深度解读美国联邦数据战略行动计划
- 八问数据中台:关于数据中台你想知道的都在这里!
- 企业级AI平台是个什么鬼?智能企业为什么需要他
- Data First的时代,利用数据产生商业模式创新的五种方法
- 关于数据中台,你需要知道的三个“大”和三个“小”
- 在构建数据中台之前,你需要知道的几个趋势
- 一张图看懂信息化和数字化的本质区别
- 数据驱动的数字化转型:从流程驱动到数据驱动
- 凯哥讲数据原生架构:Rise of Data Native Architecture(一)
- 从2018数博会看国内大数据市场
第一时间获取最新行业洞见,数字化报告解读
文章图片
加入凯哥讲数字化
推荐阅读
- Docker应用:容器间通信与Mariadb数据库主从复制
- 讲述,美丽聪明的海欧!
- 汇讲-勇于突破
- 孩子行为背后的秘密(2)胡老师讲座感悟
- 父母越不讲道理,孩子反而越优秀!说的是你吗()
- 绘本讲师训练营【24期】14/21阅读原创《小黑鱼》
- 绘本讲师训练营【18期】14/21《我的情绪小怪兽》故事会新体验
- 绘本讲师训练营7期9/21阅读原创《蜗牛屋|绘本讲师训练营7期9/21阅读原创《蜗牛屋 》
- 使用协程爬取网页,计算网页数据大小
- Java|Java基础——数组