用 TiDB 可以实现哪些有趣的数据洞察应用? | TiDB Hackathon 2022 赛后非正式会谈
开发者最大的理想就是通过编程,让世界变得有趣一些。那么,通过 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 为大家仔细地讲述了整个参赛经历和创意理念。
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 "ossinsight"。
低代码/无代码的概念已经盛行了一段时间,它可以降低门槛,让不懂开发的人也能轻松上手。「cloud naive 」团队就从低代码入手实现 idea。「cloud naive 」团队队长施宇航从设计理念到实现过程讲述了他们是如何 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 在访谈中介绍了他们做这样一个项目的出发点以及其设计理念。
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 似的应用商店。这些项目带给我们很多启发,未来也希望看到在这个领域爆发出更多新的形态,帮助更多用户、开发者使用好数据,创造出一个繁荣的数据生态!