Skip to content

Instantly share code, notes, and snippets.

@sydpz

sydpz/struct.jpg Secret

Last active October 23, 2022 03:43
Show Gist options
  • Save sydpz/2d5791eabb47058fdd377d4bdd4af775 to your computer and use it in GitHub Desktop.
Save sydpz/2d5791eabb47058fdd377d4bdd4af775 to your computer and use it in GitHub Desktop.
TiDB Hackathon 2022 RFC

项目介绍

建立一个 demo data app ,依托 TiDBCloud HTAP 能力,来解决 BI 领域内的 OLAP 数据分析场景。充分利用 HTAP 的架构优越性,支持客户实现一天开发一个项目的效率飞跃。 核心包括:

  1. A demo of TiDBCloud dataAPI。通过 HTTP 接口直接访问 TiDB Cloud cluster 内的数据。
  2. A demo of HTAP charts,一个基于 TiDBCloud 的数据应用(data application)。核心包含 2 个用户交互页面:1)图表制作,通过图形化的配置方式,针对 TiDB Cloud 中的数据进行 OLAP 分析,并生成图表。2)图表展示,提供一个看板页面展示做好的图表。同时,这个图表可以直接被引用到其他网站,提高客户的开发效率。
  3. A demo of data app framework。为后续更多 data app 开发提供平台能力支撑,提升未来的 data app 开发效率。

背景&动机

随着 HTAP 的迅猛发展,越来越多的用户开始关注该类型的数据库, 其中也出现了较为典型的应用场景,例如:

  • OssInsight - GitHub 项目热度分析平台, 实时展示 billion 级数据记录的统计报表
  • Coinbase - 区块链交易平台, 实时展示数百种虚拟货币的交易状态和指数分析

在以上应用场景中,存在以下特点:

  • 数据体量巨大且增长迅速,超出了单体数据库的支撑能力
  • 数据内存在分析的价值,有搭建 AP 平台的真实需求
  • 场景内存在实时或半实时报表展示的需求
  • 绝大多数分析操作可以通过简单的插叙语句拼接实现
    • 趋势分析,占比分析,地域分析,热能图,etc

在当前 AP 平台搭建的过程中, 大致流程为 新建数据库、搭建后端数据查询服务并标准化结果返回前端、前端引用标准图表组件绘制报表 的三个步骤构成, 目前来看以上步骤在大多数应用内的操作和执行流程是一致的,故当前的想法是将 数据查询能力(DataAPI)、数据制表能力(DataCharts)、应用管理能力(DataAPP) 统一进行设计和实现,并将以上能力嵌入至 TiDB Cloud 内, 为用户提供开箱即用的 AP 能力, 提高用户的开发效率。 -image

项目设计

整个项目的核心逻辑在 DataCharts 部分。

前端部分

支持 DataAPI 的前端展示, 输入相关操作的 Sql 语句, 在前端即可看到查询结果。 用户可以在该组件上通过指定数据表名的方式选择使用的数据源, 基于该数据源中的字段配置图表的 X 轴和 Y 轴, 生成对应的图表。 前端所做的工作为提供用户相关的交互操作,以及通过 HTTP 接口的方式向后端请求相关数据源 schema 和获取具体数据。

后端部分

后端通过 HTTP 接口获得前端的相关请求内容,将该部分请求转义为 Sql 操作,访问数据库获得相关结果并将该结果组装成标准格式后返回给前端。

应用案例剖析

基于该功能,后续 ossInsight 功能的网站搭建可以转为直接通过嵌入 TiDB Cloud 生成的 iframe 图表的方式完成搭建,无需再做获取数据并将其转义为图表的操作。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment