可视化数据API平台

249 阅读4分钟

前言

什么是数据API?

将离线数据、汇总数据等通过大数据手段进行处理、加工过的数据,通过 API 的形式呈现给业务系统。统一的可视化数据API平台则是解放业务开发频繁与大数据交互,进而提升开发效率。

简言之,大数据API为各业务系统提供可视化web接口配置管理和数据输出服务,是大数据对外进行数据输出的主要方式之一

通过简单、便捷的参数配置,一分钟“零代码”就可以生成API,帮助各业务线搭建便捷的数仓服务出口,实现数据应用价值最大化

可视化数据API平台

原理

  1. 大数据组件处理数据,并存储到 hive 表
  2. 提供配置化的平台,配置API,由业务接入方发起API参数、接口地址、源数据表、字段映射、数据存储方式等
  3. 数据API平台根据配置,将大数据(这里是 hive)数据同步到指定表结构(比如 mysql,因为查询快)
  4. 业务方直接调用大数据API获取数据即可

核心模型

image.png

大数据API为各业务系统提供可视化web接口配置管理和数据输出服务,是大数据对外进行数据输出的主要方式之一,大部分场景下大数据存储在 Hive 表。

对于Hive数据API而言,由于直接去hive表里取数据比较慢,系统会将hive里的数据导入到 mysql来提高速度,所以Hive数据 API 实际访问的是 MySQL(常见的方案也可以导入 Hbase)。

对于MySQL类型API而言,其配置过程实质上是上对其SQL模板的配置,通过解析请求参数,完成SQL实例的构造,并将查询到的数据返回给调用方。

系统架构

核心架构

  1. 配置管理
  2. 数据同步层
  3. 数据查询服务
  4. 稳定性保障

整个系统主要分为API配置管理平台和数据查询服务两部分,前者主要负责API的配置和管控,后者则是用户调用API时实际访问的服务。

按照真实数据源的不同,可以提供多种类型的API,适用于不同场景下的数据需求。

除此之外,还能通过简单的配置实现对内部其他服务的代理,作为网关为其提供统一鉴权、流控,并共用同一套接入标准开放给外部。

将传统的开发模式予以配置化、线上化,将API的整个生命周期纳入管控,不仅能极大提升研发效率,对利于流程管控和安全审计。

可支持能力

(1)、限流策略:平台可以采用 appKey+URI 进行限流,这样可以为不同业务方对于同一API的访问按重要程度分配配额。支持对 qps 的快速控制

(2)、支持跨应用访问,用户可以在配置平台对其他人创建的API进行申请,通过以后便可以通过自己的appKey调用其他人创建的API

(3)、支持持续迭代,API可以支持快速配置,原表新增字段可以进行快速同步

(4)、供每个API的多维度调用信息展示和整个服务的实时监控大盘,方便用户了解API的健康状态,并对异常API进行快速定位和诊断

数据同步层

为了提高性能,MySQL会将表的索引装载到内存中,InnoDB buffer size 足够的情况下,其能完成全加载进内存,查询不会有问题。

但是,当单表数据到达某个量级的上限时,导致内存无法存储其索引,使得之后的 SQL 查询会产生磁盘 IO,从而导致性能下降。

对于千万级大表,我们是不建议直接在此之上构建MySQL类型API的,但是实际工作中,这种场景并不能完全避免,这种情况下,则需要更加关注SQL的性能、数据表拆分等。

小结

通过可视化的数据同步API平台,可以方便的使用大数据处理后的数据,主要有以下几点:

  • 配置化管理:通过配置文件或界面,业务方可以灵活定义数据同步的细节,减少对技术细节的依赖。
  • 任务调度与自动化:使用调度工具自动化数据同步过程,确保数据的及时性和一致性。
  • 数据转换与清洗:在数据同步过程中,确保数据的格式和质量符合业务需求。
  • API设计:提供统一的接口,简化业务方的数据访问流程。