Data Service
Data Service
1. 用户手册简介
数据服务化是指数据在不同系统之间通过服务方式交互,服务通常以API接口形式存在。数据服务化是把数据系统化繁为简,实现数据标准化输出、共享、复用的必经之路,直接解决数据接入方式多样、接入效率低下、数据和接口无法共享、底层数据变更导致影响数据应用等问题。
云原生数据服务平台(以下简称Data Service)是智领云自主研发的一款统一的数据服务 API 管理应用,旨在实现对数据访问的统一控制,包括身份验证、安全授权和安全审计及应用数据发布,以最短路径,最大限度发挥数据能力,实现数据能力的共享和复用。
本手册通过对Data Service的特点及优势介绍,功能介绍,为用户提供产品定位和产品功能概览,帮助用户快速了解Data Service的优势和特点,从而辅助商业决策。
2. 产品介绍
云原生数据服务平台采用异构微服务架构,提供根据用户自定义配置,⾃动生成数据对外接口服务功能,实现数据接口自动发布。系统支持用户基于数据源MySQL、Redis、ElasticSearch和Hbase的API创建,解决系统由于对接的中间存储不同,涉及的访问API各异导致的数据接入效率低下的问题,同时数据服务为数据开发屏蔽了形式各异的中间存储,应用开发使用统一的API接口访问数据,避免了烟囱式开发模式,实现数据开发和数据应用解耦,从而提高数据应用的开发效率。
云原生数据服务平台通过简单的界面配置,对大数据平台内的数据以Restful接口形式统一对外提供查询服务,使接口不再归属于某个数据应用,并支持用户选择同步/异步发布接口功能,使接口可以在不同的数据应用之间共享。并利用KONG网关实现针对用户和API两个维度的访问控制,用户可通过界面操作对访问权限和访问流量进行精细控制,使接口背后的数据共享成为可能,解决了不同应用共享数据相互影响的问题。
架构设计原理
- 系统采用微服务架构形式,不同的数据库类型对应不同的数据查询引擎微服务
- MySQL 查询引擎使用hikar数据库连接池,每个数据源对应一个数据库连接池
- Redis 查询引擎使用Pipline方式提交查询任务,使用scan方法扫描key的范围
- 采用ElacticSearch存储结构化数据,提供超大规模数据对外实时服务功能。
- 使用phoenix二级索引方案,支持系统创建基于HBASE数据查询的API接口
Data Service主要组件包含KONG网关,管理配置接口的master节点, 查询MySQL数据的slave-mysql节点,查询ES数据的slave-es节点,查询pgseql/guassdb数据的slave-pgsql节点及查询Redis数据的slave-redis节点组成。master和各个slave直接使用KONG来做统一调度管理,并且KONG网关支持各组数据源的纵向扩展负载。系统支持slave节点横向的无障碍扩展和添加数据源查询引擎时的无故障升级。
3. 产品特点及优点
3.1 API信息快速浏览
系统的数据服务大厅和监控面板界面,支持直观查看所有API的详细信息,实现API的浏览、筛选(已上线、未上线API)、搜索及排序(当前页面内容),并可在界面直观查看所有API的详细信息并可自定义监控面板的展示内容,用户可在当前展示界面,通过时间范围、刷新间隔、API名称、用户名称及IP等组合条件进行API筛选,快速定位API详情信息。
3.2 多数据源支持
如系统内没有所需要的数据源,用户可对数据源进行添加,系统当前版本支持添加数据源类型包括:MySQL、Redis、ElasticSearch、HBase、Pgsql、GaussDB。系统的开放式架构可支持本系统根据用户实际生产需要灵活配置新的数据源连接。对于已建立连接的数据源,可直接复用。添加的数据源会构建相应的连接池。
3.3 多类型数据服务支持
系统支持用户对Get/Post两种请求方式的API创建,API查看,编辑,测试,发布等操作。用户可对相关API的列表进行多选/全选,从而进行批量添加标签操作,添加成功后会显示在列表。支持通过标签对数据服务进行管理,按标签更新时间先后进行排序。用户可对标签进行单个/批量删除,删除标签后,系统会自动解除标签和API的关联关系。
数据集配置
【数据集配置 - MySQL】
系统支持用户通过界面简单配置,创建基于MySQL为数据源的API,并提供对MySQL数据集的异步查询功能
【数据集配置 - Redis】
系统支持用户通过界面简单配置,创建基于Redis为数据源的API
【数据集配置 - ElasticSearch】
系统支持用户通过界面简单配置,创建基于ElasticSearch为数据源的API,从而满足用户对超大规模数据实时查询的需求,并提供超大规模数据对外实时服务功能。并支持发布开启kerberos 的ElasticSearch API
【数据集配置 - HBase】
系统支持用户通过界面简单配置,创建基于HBase为数据源的API,同时支持用户使用phoenix二级索引方案创建API查询HBase数据
【数据集配置 - MPP(PgSQL/GaussDB)】
系统支持用户通过界面简单配置,创建基于MPP(PgSQL/GaussDB)为数据源的API
【数据集配置 - OracleDB】
系统支持用户通过界面简单配置,创建基于Oracle为数据源的API
3.4 数据服务分类管理
系统支持两种请求方式的API创建
3.5 数据服务分类管理
系统的分组功即对API的归属进行分类,是用户创建API时的必要环节。用户创建的API分组,以界面化操作的形式,极大简化API的分类管理。
3.6日志审计
以界面化操作形式,查看用户-API操作的日志审计信息,并通过界面筛选项,如:用户名、请求服务名称、客户端UA、请求用户IP、用户配置路径、请求返回状态、请求数据长度、请求起始时间、请求结束时间、KONG请求时延起始、KONG请求时延结束等筛选条件对创建的API进行筛选,精确定位查看API的详细审计信息
3.7 用户管理
系统的用户信息统一从云原生大数据应用开发平台接入,对用户基本信息进行同步更新。同时,对指定用户进行流量控制,即设置该用户访问所有API服务的流量控制
4. 产品功能介绍
4.1 API详情浏览
用户可以实现API的浏览、筛选(已上线、未上线API)、搜索及排序(当前页面内容),并可在界面直观查看所有API的详细信息
API状态颜色标注说明:
类目 | 描述 |
---|---|
红色 | 测试失败 |
橘色 | 未测试 |
绿色 | 测试成功、已更新(仅表示API创建者更新已成功测试的API标签,此时无需再次测试、发布) |
4.2 自定义API监控面板
系统提供的筛选图表包括:返回状态分布、请求URL分布、API请求数、请求平均时延(毫秒)、请求时延分布(毫秒)、数据服务请求类型分布、用户请求返回数据总大小分布、用户请求数分布的组合图表展示,用户可根据需要,自定义监控面板的展示内容。同时用户可在当前展示界面,通过时间范围、刷新间隔、API名称、用户名称及IP等组合条件进行API筛选。
4.3 数据源管理
点击右上方按钮「添加数据源」将API的数据源添加至数据服务平台。
注:如果已有数据源,建议直接复用。添加的数据源会构建相应的连接池。
4.3.1 添加数据源
如系统内没有所需要的数据源,用户可通过点击「添加数据源」进行添加,系统当前版本支持添加数据源类型包括:MySQL、Redis、ElasticSearch、HBase、Pgsql、GaussDB、OracleDB。系统的开放式架构可支持本系统根据用户实际生产需要灵活配置新的数据源连接。
添加MySQL数据源,参考截图,填写表单
参数名 | 参数说明 | 参数内容 | 备注 |
---|---|---|---|
类型 | 数据源类型 | MySQL | 目前版本支持MySQL/Redis/ElasticSearch/HBase/Pgsql/GaussDB |
名称* | 数据源名称 | 用户自定义,保证唯一性 | |
数据源连接地址*(URL) | jdbc:mysql://3.3.0.6:3306 | 用户根据实际情况填入相应的地址,本地址仅为实验参考地址 | 在云平台上要注意使用的mysql高可用地址为固定地址,不能使用临时地址。 |
用户名* | 访问数据用户 | root | 用户根据实际情况填写 |
访问数据用户密码* | ** | 用户根据实际情况填写 |
添加Radis数据源,参考截图,填写表单
参数名 | 参数说明 | 参数内容 | 备注 |
---|---|---|---|
类型 | 数据源类型 | redis | 目前版本支持MySQL/Redis/ElasticSearch/HBase/Pgsql/GaussDB |
名称* | 数据源名称 | 用户自定义,保证唯一性 | |
数据源连接地址 | 6.3.7.9:16379 | 用户根据实际情况填入相应的地址,本地址仅为实验参考地址 | |
数据源连接密码 | 选填 |
添加ElasticSearch数据源,参考截图,填写表单
参数名 | 参数说明 | 参数内容 | 备注 |
---|---|---|---|
类型 | ElasticSearch | es | 目前版本支持MySQL/Redis/ElasticSearch/HBase/Pgsql/GaussDB |
名称* | 数据源名称 | 用户自定义 | |
数据源连接地址(URL)* | 192.168.100.16:9200 | 根据ElasticSearch数据源的9200http接口地址 | |
数据源连接认证 | 系统默认开启 | 用户根据数据源配置进行认证打开/关闭 | |
认证类型* | kerberos | 系统默认kerberos | 下拉框选择,系统目前仅支持kerberos认证 |
添加HBase数据源,参考截图,填写表单
参数名 | 参数说明 | 参数内容 | 备注 |
---|---|---|---|
类型 | HBase | HBase(Phoenix) | 目前版本支持MySQL/Redis/ElasticSearch/HBase/Pgsql/GaussDB |
名称* | 数据源名称 | 用户自定义 | |
数据源连接地址* | jdbc:phoenix:192.168.100.23:2181:/hbase | 根据数据源填入相应的地址,本地址仅为实验参考地址 | |
启用认证 | 数据源连接认证 | 系统默认打开 | 用户根据数据源配置进行认证打开/关闭 |
认证类型* | kerberos | 系统默认kerberos | 系统默认,系统目前仅支持kerberos认证 |
添加Pgsql数据源,参考截图,填写表单
参数名 | 参数说明 | 参数内容 | 备注 |
---|---|---|---|
类型 | Pgsql | Pgsql | 目前版本支持MySQL/Redis/ElasticSearch/HBase/Pgsql/GaussDB |
名称* | 数据源名称 | 用户自定义 | |
数据源连接地址* | jdbc:gostgresql://192.168.100.49:25026/kong | 根据数据源填入相应的地址,本地址仅为实验参考地址 | |
用户名* | 6.3.7.9:16379 | 截图中用户名为系统实验参考用户名,可配合运维人员根据实际情况填入 | |
密码* | ** | 可配合运维人员根据实际情况填入 |
添加GaussDB数据源,参考截图,填写表单
参数名 | 参数说明 | 参数内容 | 备注 |
---|---|---|---|
类型 | GaussDB | 目前版本支持MySQL/Redis/ElasticSearch/HBase/Pgsql/GaussDB | |
名称* | 数据源名称 | 用户自定义 | |
数据源连接地址*(URL) | jdbc:gostgresql://192.168.100.49:25026/kong | 根据数据源填入相应的地址,本地址仅为实验参考地址 | |
用户名* | 6.3.7.9:16379 | 截图中用户名为系统实验参考用户名,可配合运维人员根据实际情况填入 | |
密码* | ** | 可配合运维人员根据实际情况填入 |
注:Pgsql和GaussDB的连接配置参数相同。
添加Oracle数据源,参考截图,填写表单
参数名 | 参数说明 | 参数内容 | 备注 |
---|---|---|---|
类型 | 数据源类型 | Oracle | 目前版本支持MySQL/Redis/ElasticSearch/HBase/Pgsql/GaussDB/OracleDB |
名称* | 数据源名称 | 用户自定义,保证唯一性 | |
数据源连接地址*(URL) | Jdbc:oracle:thin:@192.168.1.10:1521/XE | 用户根据实际情况填入相应的地址,本地址仅为实验参考地址 | 在云平台上要注意使用的Oracle高可用地址为固定地址,不能使用临时地址。 |
用户名* | 访问数据用户 | root | 用户根据实际情况填写 |
密码* | ** | 用户根据实际情况填写 |
4.3.2 编辑数据源
系统支持用户对已添加的数据源连接配置的所有参数进行修改更新。
4.4 服务管理
系统支持用户进行API创建,API查看,编辑,测试,发布等操作。用户可对相关API的列表进行多选/全选,从而进行批量添加标签操作。添加成功后会显示在列表,按标签更新时间先后进行排序。用户可对标签进行单个/批量删除。
注:管理员权限用户可对标签进行单个/批量更改、删除等操作,删除标签后会自动解除标签和API的关联关系。
API创建-发布流程:
序号 | 类目 | 描述 |
---|---|---|
1 | 创建、编辑 | 创建或编辑API |
2 | 测试 | 对创建或编辑过的API进行测试(更改API标签则无需重新测试) |
3 | 提交审核 | 测试结果达到预期可提交审核(系统管理员权限用户可在【审批者管理】界面对API审批人员进行管理) |
4 | 发布 | 审批人批准审核后,即可发布API |
4.4.1 创建API
点击右上方「创建API」,用户可通过简单的配置信息创建API,并提供数据服务。 本系统使用KONG的JWT和Rate Limit插件来实现访问控制,用户可通过API访问控制或JWT验证对创建的API进行访问流量限制。系统支持创建基于MySQL、Hive
API基础信息
条目 | 内容 | 描述 |
---|---|---|
API名称* | 用户自定义 | |
API分组* | 用来区分API类别(创建API时需先选择/创建API分组) | |
请求方式 | 默认GET | 当前版本仅支持GET 请求 |
API路径* | 当前版本支持五级path 如格式:/aaa/bbb/ccc/ddd/eee | |
描述 | 用户自定义 |
注意,在配置API路径时,dataservice 系统保留了如下的系统路径,用户不可使用:
“/test”, “/mysql”, “/redis”, “/config”, “/api”, “/es”, “/pgsql“
API标签
条目 | 内容 | 补充 |
---|---|---|
新建标签 | 下拉框选择已有的标签或新建标签 | 方便用户通过标签进行搜索目标API |
数据集配置
【数据集配置 - MySQL】
系统支持用户通过界面简单配置,创建基于MySQL为数据源的API,并提供对MySQL数据集的异步查询功能
【数据集配置 - Redis】
系统支持用户通过界面简单配置,创建基于Redis为数据源的API
【数据集配置 - ElasticSearch】
系统支持用户通过界面简单配置,创建基于ElasticSearch为数据源的API,从而满足用户对超大规模数据实时查询的需求,并提供超大规模数据对外实时服务功能。并支持发布开启kerberos 的ElasticSearch API
【数据集配置 - HBase】
系统支持用户通过界面简单配置,创建基于HBase为数据源的API,同时支持用户使用phoenix二级索引方案创建API查询HBase数据
【数据集配置 - MPP(PgSQL/GaussDB)】
系统支持用户通过界面简单配置,创建基于MPP(PgSQL/GaussDB)为数据源的API
查询配置
条目 | 内容 | 描述 |
---|---|---|
添加查询 | ||
添加聚合 | ||
使用高级查询 |
返回参数
条目 | 描述 |
---|---|
返回参数 |
API访问控制
条目 | 内容 | 描述 |
---|---|---|
每秒 | ”0“为不限制,用户根据实际需要填入 | |
每小时 | ”0“为不限制,用户根据实际需要填入 | |
每天 | ”0“为不限制,用户根据实际需要填入 | |
分配流控 | ||
总访问额度 | ||
JWT验证 | 用户组白名单 | 为该API设置有访问权限的用户组及用户 |
IP和IP段白名单 | 开启/关闭 | 填入IP或IP段,如:127.0.0.1或192.168.0.0/24,用户根据实际需要进行填写) |
4.4.2 查看API
用户可查看API基本信息,如ID、分组、负责人、创建时间及描述信息;HTTP接口信息,如调用地址、请求方式、返回类型等信息;数据源信息,如名称、类型、连接地址、连接用户名、自定义SQL及数据描述等信息;访问控制,如JWT验证、API流量控制等信息
用户点击服务右侧的操作「查看」进入,示例以查看API:terry-es-api 为例
API基本信息
HTTP接口信息
数据源信息
参数查询
返回参数
访问控制
4.4.3 编辑API
用户通过点击服务右侧的操作「编辑」,可对已创建的API配置信息进行更新
4.4.4 测试API
用户通过点击服务右侧的操作「测试」,可对已创建的API进行测试并查看测试结果,也可对已发布的API重新进行测试并再次发布。
注:只有对创建的API进行测试后,才能提交API审核
4.4.5 提交审核
API测试成功且结果显示预期内容后,可提交此API的发布审核。
条目 | 内容 |
---|---|
管理员 | 管理申请者(增加、删除) |
审批者 | 对提交的审批进行通过和驳回的操作 |
非审批者 | 提交并等待审批 |
注:如审批被驳回,API创建者可以对API进行修改、测试后可再次提交审批
4.4.6 发布API
用户通过点击服务右侧的操作「发布」,即可对外发布数据接口,根据用户配置需求,支持同步/异步发布接口功能。
4.5 服务测试
用户可在输入框搜索、选择需要测试的API,查看测试结果。系统目前只支持对单个API进行选择测试,暂不支持对多个API同时进行测试
下表是Get/Post两种类型API的不同数据源及参数设置下的测试对照:
序号 | 类型 | 数据源类型 | 是否有参数 | 测试方式 |
---|---|---|---|---|
1 | Get | Redis | - | 输入对应键的值后进行测试 |
2 | Get | ElasticSearch | 无 | 直接点击测试 |
3 | Get | ElasticSearch | 有 | 输入对应键的值后进行测试 |
4 | Get | ElasticSearch(使用高级查询) | - | |
5 | Get | MySQL/Oracle/HBase/GauseDB/PgSQL | 无 | 直接点击测试 |
6 | Get | MySQL/Oracle/HBase/GauseDB/PgSQL | 有 | 输入对应键的值后进行测试 |
7 | Post | Redis | - | 输入对应键的值后进行测试 |
8 | Post | ElasticSearch | 无 | 直接点击测试 |
9 | Post | ElasticSearch | 有 | 直接点击测试 |
10 | Post | ElasticSearch(使用高级查询) | - | |
11 | Post | MySQL/Oracle/HBase/GauseDB/PgSQL | 无 | 直接点击测试 |
12 | Post | MySQL/Oracle/HBase/GauseDB/PgSQL | 有 | 直接点击测试 |
1.Get类型Redis数据源
2.Get类型ElasticSearch数据源(无参数)
Get类型ElasticSearch数据源(无参数)测试
3.Get类型ElasticSearch数据源(有参数)
Get类型ElasticSearch数据源(有参数)测试
4.Get类型ElasticSearch数据源(使用高级查询)
5.Get类型MySQL/Oracle/HBase/GauseDB/PgSQL数据源(无参数)
以MySQL为例
Get类型MySQL数据源测试(无参数)
6.Get类型MySQL/Oracle/HBase/GauseDB/PgSQL数据源(有参数)
以MySQL为例
Get类型MySQL数据源测试(有参数)
7.Post类型Redis数据源
创建的Post类型Redis数据源API配置信息
Post类型Redis数据源测试
8.Post类型ElasticSearch数据源(无参数)
9.Post类型ElasticSearch数据源(有参数)
用户创建API时选择的参数会附带在JSON编辑器内
10.Post类型ElasticSearch数据源(使用高级查询)
Post类型ElasticSearch数据源(使用高级查询)测试
11.Post类型MySQL/Oracle/HBase/GauseDB/PgSQL数据源(无参数)
12.Post类型MySQL/Oracle/HBase/GauseDB/PgSQL数据源(有参数)
Post类型MySQL/Oracle/HBase/GauseDB/PgSQL数据源(有参数)测试
直接点击进行测试
所有的服务都需要发布后,才能供集群中的应用调用。在对创建的API编辑后,重新测试,并重新发布。再次发布后,会对上一次发布的API配置进行覆盖。
4.6 服务分组
系统的分组功即对API的归属进行分类,是用户创建API时的必要环节。用户在创建API前,可在此界面提前创建API分组,也可在创建API的界面进行创建。
4.7 标签管理
用户可通过标签名称和标签所关联的API进行搜索,可单个/批量删除标签。删除标签后,系统会自动解除标签和API的关联关系。
4.8 日志审计
用户可通过日志审计界面筛选项,如:用户名、请求服务名称、客户端UA、请求用户IP、用户配置路径、请求返回状态、请求数据长度、请求起始时间、请求结束时间、KONG请求时延起始、KONG请求时延结束等筛选条件对创建的API进行筛选,并精确定位查看API的详细审计信息
4.9 用户管理
系统的用户信息统一从BDOS大数据操作系统平台接入,用户可通过「同步用户」按钮,对用户基本信息进行同步更新。同时,用户可根据「编辑」按钮,对指定用户进行流量控制,即设置该用户访问所有API服务的流量控制
4.10 审批
所有用户提交的API审核请求会进入本界面进行状态展示,用户可通过审批状态(审批历史、待审批)进行筛选、查看
4.11 审批者管理
本界面仅限管理员权限用户可查看,对审批者进行管理(添加、删除)。添加的审批者有资格批复/驳回API发布申请
5. 常见问题
6. 术语
- API 网关服务 Kong:Kong 是一个云原生的轻量级的 API 网关软件,它可以水平扩展, 以低延迟的方式保证大规模的微服务访问。在数据服务的架构中,Kong 可以作为所有数据服务的一个统一管理工具。Kong 可以以模块化的方式加入很多新的功能,如对 API 访问进行安全控制的 JWT 安全组件,分析监控插件 Datadog 等等。
- 内存数据库 Redis:Redis 是一个存储键值对的内存数据库,支持多种数据类型并提供灵 活的查询语句。Redis 可以以集群方式来运行以保证高可用,同时支持将内存数据存入本 地磁盘来进行容错恢复处理。Redis 可以当作数据库、应用程序缓存、以及消息的转发者 来使用。
- 分布式数据库 HBase:HBase 是构建在 HDFS 之上的一个高可用、基于列存储、 进行快 速随机查询的分布式数据库。因为 HBase 提供对数据的索引,所以它的随机查询速度很快。
- 分布式数据仓库 Hive:Hive 是构建在 Hadoop 之上的、进行数据查询和分析的数据仓库 工具。Hive 的元数据管理将 HDFS 上存储的结构化文件定义成数据库中的表,同时 ,Hive 提供类似 SQL 的数据库查询语言来查询存储在 HDFS 上的结构化文件,这些查询 作业将会转化成 MapReduce 作业在 Hadoop 上运行。
- 关系型数据库 MySQL:MySQL 是一个使用非常广泛的开源数据库,几乎每家公司都在使用 。MySQL 支持大型的数据库,可以处理上千万表记录。它将不同的数据库保存在不同的文件中,提高了存储和访问效率。
- 分布式文件数据库 MongoDB:MongoDB 是一个文件数据库,将数据保存为 JSON 格式的文档。它支持文件索引并提供丰富的查询语言。MongoDB 通过数据分区来支持大数据量的存储,同时通过主从备份模式以支持高可用。