用 TiDB 可以实现哪些有趣的数据洞察应用?丨TiDB Hackathon 2022 赛后非正式会谈

PingCAP 2022-11-25 20:00

开发者最大的理想就是通过编程,让世界变得有趣一些。那么,通过 TiDB 都能实现哪些有趣的数据洞察应用呢?

在本届 TiDB Hackathon 2022 上,应用组的选手迸发出各种创意灵感,各展才艺,创造了许许多多令人惊艳的应用,其中受到 OSS Insight 启发的 Data Insight 项目更是如雨后春笋般浮现出来,「莫慌,有我!」、「cloud naive 」和「一天一个项目」三个团队的项目更是吸引了很多评委的关注,我们也在 TiDB Hackathon 2022 赛后非正式会谈中邀请到了三个团队的代表,与主持人 PingCAP 副总裁刘松一起畅谈他们那些项目的创意理念与背后的故事。

这三个团队做的事儿各不相同,有的偏 HTAP 工具,有的偏区块链分析,名字也都非常有趣,但是他们都有一个共同点,那就是所做的项目都与 HTAP 和 Data insight 有关。下面通过访谈实录,我们来一起了解下这些有趣的项目是如何炼成的。

本篇内容为直播节选,欲知更多细节,欢迎观看直播回放(点击文末「阅读原文」,观看完整访谈视频)

应用组评委的评分标准

PingCAP DM 研发负责人徐成选是这次 TiDB Hackathon 2022 的应用组评委,算上选手身份其实已经是 TiDB Hackathon 的三朝元老了,做评委是第二次,在本次赛后非正式会谈中我们也邀请成选老师点评本期的 Hackathon 创意项目,首先来看看应用组评委的打分标准:
徐成选:今年应用组是第一次作为一个单独的赛道列出来,大家结合 TiDB 的 HTAP 能力做出了很多有创意的项目。这次令人比较惊喜的一点是有一些项目实现了和 TiDB Cloud 的对接,Cloud 其实都有很标准的 API ,就和使用 SQL 差不多,他们基于 Cloud 做出了一些很好的 idea ,实现了一些不错的产品,比如「cloud naive 」团队的低代码平台项目。
我因为做工程比较多,比较注重项目的工程价值或使用价值。尤其是在应用组,这个项目是不是对其他人很有意义?他看到这个项目是不是特别想用?这一点是我比较看重;第二,我比较注重项目的创新性。Hackathon 一方面要结合 TiDB 和 TiDB Cloud 的能力实现创意, 另外一方面还要结合自己的一些点子或者一些新的东西,也就是说项目要具有比较好的创新性。比如这次有项目结合了区块链应用,或者是结合低代码平台。我觉得它们既实用,又命中了当下的技术趋势,同时与 TiDB 结合实现了一定的创新性;第三点就是项目最好有趣一些,这也是 Hackathon 的精髓所在。

NFTips,让小白也能用起来的投资分析工具

当下,区块链是非常热门的技术领域,在本届 TiDB Hackathon 2022 中,也出现了好几个赛队都在做区块链相关项目。其中,「莫慌,有我!」团队拿了区块链特别奖,他们的项目 NFTips 就是做区块链分析的。「莫慌,有我!」团队队长 Vita 为大家仔细地讲述了整个参赛经历和创意理念。
NFTips  项目链接:https://github.com/ChenlingLu/NFTips(复制链接至浏览器即可查看,下同)
Vita:我们希望能做一个最受小白用户信赖的 NFT 投资分析工具。这个项目很符合成选评委提到的实用性,这也是我们最主要的设计理念。其实在当时参加 Hackathon 的时候,我们整个团队对 TiDB 产品并不是特别熟悉,尤其像我还是一个非技术同学,这对于我们来说难度其实是非常大的。所以我觉得我们可以在别的方面多发挥一点。这个项目最大的特点是产品设计,我们有产品经理,先去做了一些用户画像的分析调研,然后再去做功能设计。在实用性方面,我们希望这个项目能够为 C 端用户的投资带来一些实用的帮助,让他们以更低的门槛去接触 NFT 领域。这个项目里有一个很大的亮点是对于某个特定项目做综合评分。这里面存在一个挑战,就是如何让 C 端用户认为这个打分是合理并科学的?这也是做这个产品设计最困扰的地方。我想要达到的目的是让小白用户看到这个分数,一眼就知道这个产品值不值得投资。那它其实需要非常高的准确度,目前市面上并没有类似的产品可以参考。所以我阅读了比较多的论文材料,了解大概如何评价一个藏品。比如它的转手次数越多,就说明它在投资市场更加热门,那相应的占比是不是应该提高?另外还有藏品的涨幅程度,比如说一个藏品今天 100 块钱买入,明天 200 块钱卖出,那它就涨了 100 块钱,另一个藏品只涨了 50 块钱。那这个涨幅更高的是不是应该获得更高的分数?这个算法目前我们实现了一个初级版,根据藏品的近 7 天交易频率来判断是否热门,来给它加分。未来,我们计划依靠更多社区力量,征集深度用户,给到更多的输入,然后再去把它逐渐完善。
刘松:答辩的时候你们说只用一天半就实现了这个原型,你们是怎么在一天半里快速学习并开发的呢?
Vita:我们团队有四个人,除我之外还有一位后端开发同学,他自己在从事一些 NFT 的投资买卖,给了很多灵感方面的输入。我作为一个典型的小白用户,正好可以站在用户视角做这个产品的设计。这个东西作为一个数据分析产品,前期需要去了解更多的行业背景,才能做出更具有价值的分析判断。我们这个一天半的时间其实是从采集数据开始,到最终 Hackathon 现场答辩,大概花了一天半。
徐成选:区块链本身是一个很好的应用趋势,海外也有很多专门做这种区块链分析的公司。因为区块链的数据比较多,这类应用首先需要对数据做采集,然后再进行数据分析,这一整条链跟以前互联网公司的那种采集分析有比较大的区别。以前大多是通过类似于日志收集把它采集起来,然后通过 ETL 转到数仓里去分析。但如果是区块链搞做这种应用的话,因为它本身的数据价值不一定有很直接的体现,如果用比较重的 Hadoop 来做处理的话,就会比较痛苦。相比之下,HTAP 数据库能更快地实现这个分析过程。所以我感觉数据采集和分析是比较有挑战的过程,反而之后的区块链业务形态,比如怎么制定那些指标,怎么展示得更好看一些,可能都有垂直化的平台工具。

“My Life”,低代码平台与 TiDB HTAP 的最佳结合

TiDB 作为 HTAP 数据库,拥有强大的分析能力。OSS Insight 问世以来,受到了较大的关注。它以 GitHub 为数据源,充分发挥了 TiDB 的 HTAP 能力。
它解决了 How to use TiDB 的问题。但实际上还有两个问题:Where is the datasources? Who can build it? 很明显,OSS Insight 需要一定开发经验的开发人员通过 GitHub 提供的 Open API 获取数据。如果有这样一款产品/框架,能够集成众多数据源,又不需要专业开发知识,还能一键展示 Dashboard。那么我们可以说:Every one can build an "OSS Insight"。
低代码/无代码的概念已经盛行了一段时间,它可以降低门槛,让不懂开发的人也能轻松上手。「cloud naive」团队就从低代码入手实现 idea。「cloud naive」团队队长施宇航从设计理念到实现过程讲述了他们是如何 TiDB 实现低代码平台的。
My Life 项目链接:https://github.com/Daemonxiao/n8n/tree/tidb/packages/nodes-base/nodes/TiDB
施宇航:我们的出发点其实很简单,就是从生态的角度去切入,让更多人来使用 TiDB Cloud。低代码领域不仅开发人员能参与,说不定一些非开发人员也能参与进来,所以我们就瞄准了低代码平台这个方向。我们在 Hackathon 中的项目叫“My Life”,这是我们想法的一个 example,它能记录我们的生活轨迹,存储到 TiDB 中,最终以各种方式展现。
在数据源上,我们希望有丰富的数据源;在数据存储上,我们希望数据源能一键导入 TiDB,无需过多开发。基于此,我们选择了 Zapier/n8n 。Zapier/n8n 是一类可以连接 APP 的低代码产品,它们集成了众多 APP (GitHub,Twitter,Facebook 等)且支持拓展。它通过触发-行动的模型连接 APP,如 APP A 触发操作 x, 则 APP B 执行操作 y。Zapier/n8n 介入了上千 APP,也就是说我们拥有上千数据源。而数据导入正是 Zapier/n8n 的最佳实践。只要开发一款 TiDB intergration,那么 TiDB 就能和上千 APP 轻松集成。举个例子,当你发了一条推特、提了一个 PR 都可以准确得被 TiDB 记录下来。
当我把 TiDB Cloud 集成进去,就相当于 TiDB Cloud 可以和这几千个 APP 连接在一起了。举个例子,比如说当你往 TiDB 插一个数据的时候,我可以自动帮你发一份邮件,或者是当你发一个 slack 消息的时候,我把这消息存到 TiDB 上。大数据时代其实数据是最值钱的,我们已经帮你搞定了数据获取这一道比较难的关卡,之后大家怎么用都可以,完全放飞你的想象力,将你常用的 APP 跟 TiDB 组合在一起,有非常多的想象空间。
但是作为一个 Hackathon 的项目,光这样讲好像不太行。于是我们想是不是得搞个 demo 出来,可以更形象一点。所以,我们就搞了这个叫“My Life”的 demo 。这个 demo 收集了各个常用的社交平台上的数据,像 GitHub 、 Twitter 甚至是一些 Stream 上的信息,然后把它们存到 TiDB 上。之后就可以利用 TiDB 的 HTAP 能力进行一些分析。分析之后的展示其实我们纠结了一下,到底怎么展示比较好,因为时间有限,我们没法像 OSS Insight 做得那么酷炫,而且我们根本没有人会前端。当时我们就想既然都搞低代码了,那就再整一个低代码,我们就使用了 retool 等低代码工具搭建了展示面板,只要会写 SQL 就行。它有一些通用的组件,通过拖拖拽拽就可以搞定了一个 Dashboard 。我们就通过这种方式做了一个比较粗糙的 demo 出来,它可以看到你每一天在干什么,在每个 APP 上的一些行为轨迹,这有点像 iPhone 上的记录各个 APP 使用时长的小功能。

将洞察变成服务, 一天一个项目

最近有一个词比较火,叫“ Insight as a Service ”,将洞察变成一种服务。「一天一个项目」团队做的项目就非常符合这一概念。他们通过建立一个 demo Data APP ,依托 TiDB Cloud HTAP 能力,解决 BI 领域内的 OLAP 数据分析场景。充分利用 HTAP 的架构优越性,支持客户实现一天开发一个项目的效率飞跃。「一天一个项目」团队代表 Brian Niu 在访谈中介绍了他们做这样一个项目的出发点以及其设计理念。
一天一个项目 项目链接:https://github.com/sydpz/pingcap_hackthon
Brian Niu :我们其实是第一次参加 Hackathon,我们这个团队的名称顾名思义就是希望通过这个项目,让想要做基础项目的团队或者是个人开发者,能够以 TiDB Cloud 为基础,一天产生一个项目,一天去尝试一个业务的创新点。 
TiDB Cloud 其实是依托 TiDB kernel 的产品,形成了一个云托管的服务。它真正的价值体现在提高客户的效率和降低客户的成本上。基于这个大背景下,我们就在想作为一个 DBaaS 怎么能够帮助业务实现提效?
一般情况下,我们要搭建一个业务系统是怎么样的呢?首先前面要有一个前端,前端有 web 的、有 APP 的,然后搭建后端,后端里面可能还会有分层,有应用层、基础设施层、存储层等等,有一个非常长的链条。但是做了很多系统之后,我们发现很多系统都是雷同的。我们写这么多重复的东西,那是不是可以复用呢?这就是为什么会有各种各样的中台,其目的就是为了复用。那 TiDB Cloud 有什么呢?有存储,有云服务。但距离真正让用户构建应用还是有差距的,我们能不能让客户去少做一些事情?这就是我们这个项目的出发点。我们认为 TiDB Cloud 其实是扮演着一个 Infrastructure Service 的部分,它是基础设施的一环,我们能不能在这层之上去构建一些 Data service 呢? 
所以,在这个项目里面,首先我们需要封装起 TiDB Cloud 的运维工作,你不需要再去管集群。我们对数据的操作可以用 HTTP 的方式,直接去查找数据,或是修改数据。基于此再往上一层封装是什么?我们针对一些特定场景,比如说一些 AP 分析场景、风控场景,去封装出来一系列固定的几个动作,形成业务场景的封装。基于这几层,我们就封装出了几个东西:
  • 第一个是 Data API 。API 是以一种 restful 来访问数据的方式,只要写好一个 SQL,剩下的事情都不用关心了。用一个 restful 接口把一个 SQL 传过去,然后就可以拿回来一个 JSON 的数据。这样的话,你直接可以从前端去调数据,所以想构建一个项目就非常快了。比如类似于 OSS insight ,可能几个前端研发在几天就可以做出来。 
  • 第二个,我们在 Data API 上面又封装了一个东西,叫做 Data Application,这就是对应用场景的封装。第三个,在 Hackathon 中,我们做了一个示例 DataCharts,基于一些数据做了时间的分析,按周按月进行聚合。
基于该功能,后续 OSS Insight 功能的网站搭建可以转为直接通过嵌入 TiDB Cloud 生成的 iframe 图标的方式完成搭建,无需再做数据获取并将其转义为图标的操作。

结语

从三个团队的项目可以看出,他们其实都是围绕数据分析展开的创意,都在做 Data Service,只是各自站在了不同角度。但它们之间其实也存在互相联合的可能性,比如「一天一个项目」实现了 Data API、Data Application,不管是做区块链、NFT 其实也都需要这种分层的能力,而再往上构建应用时,又需要「cloud naive」团队的低代码框架。如果脑洞再大一点的话,这些能力实际上可以构成类似于 Data APPs 或者 Data Marketplace 似的应用商店。这些项目带给我们很多启发,未来也希望看到在这个领域爆发出更多新的形态,帮助更多用户、开发者使用好数据,创造出一个繁荣的数据生态!


💡 点击文末【阅读原文】观看完整视频回顾!

推荐阅读