点击蓝字 关注我们 //
从DataTalk的名字就可以看出,用数据(data)去对话(talk)。数据驱动决策的理念已经在不断地深入人心,目前商业领域由数据驱动的程度与日俱增。小型和大型企业都利用数据来做出与销售、招聘、目标以及他们拥有数据的所有领域相关的决策。尽管大多数企业都能访问某种类型的数据,但在没有数据分析或统计学背景知识的情况下,尝试理解这些数据非常困难。
即便你确实了解数据,但以易于理解的方式展示数据并将其传达给其他相关人员可能是一项巨大的挑战。DataTalk 消除了数据分析和可视化过程中的困扰和麻烦。通过连接到不同的数据源,并使用安全、易于理解的界面,你可以快速轻松地与数据进行交互并理解数据,从而影响所有业务系统。
所以DataTalk是一款面向不同用户角色、支持多种数据源、面向开放式的、自由的数据可视化平台。
1
这个时候可能有同学会说,又造了个轮子,且慢,请先继续看下面
【我们的差异化、决心和信念】
从上图也可以看到,我们站在巨人肩膀上取经学习(罗盘、彩虹、show等平台的经验),考虑到了不同的用户角色(例如:Twitter的早期大数据平台架构中,Tableau是供有统计学背景的分析师使用的,其自研的Birdbrain也可以确保从老板到销售的不同角色均可使用。我们在DataTalk中也同时提供了简易、高级两种不同的模式,去满足不同用户角色的需求),支持连接不同的数据源,面向多端的场景,提供丰富的功能,以开放自由的思路去构建。
熟悉灯塔分析(DataInsight)的小伙伴,这时可能会问,这二者又有何区别?DataInsight专注的是BI,包含着强大的融合分析引擎,拥有着诸多的分析模型,面对更多的是分析的场景。作为DataInsight的兄弟DataTalk,传承着兄长的基因,又开疆拓土,提供更开放,更自由地构建个性化的数据应用能力。
多端应用场景
通过DataTalk构建的大屏、PC端、移动端场景应用:(以下截图数据来源于DEMO模拟数据,仅供参考)
——2021·DataTalk数据可视化大赛第一名「JSRAT」团队作品
【JOOX聊天房敏捷实时看板】
如上图所见,通过DataTalk我们可以同时构建PC端、移动端、大屏等多端的可视化数据应用报表。在构建PC端报表之后,只需要点击适配,再简单拖拽一下位置和大小就能在移动端达到想要的效果。
用户体验的打磨我们是高度重视的。
开放的数据源连接
数据可视化,我们先从数据聊起。前面提到过,DataTalk支持多种不同的数据源,下面我们一起来看下,到底支持哪些:
我们目前支持的不同种类的数据源,可直连业务DB,灯塔分析转存,以及各种数据库和强大的灯塔融合计算引擎,本地文档,腾讯文档和OpenAPI等等,另外在后面也可以随时、快速增加更多的数据源类型。
下面一起来看我们的数据请求流程:
开放丰富的组件
DataTalk中可以划分出六大类基础组件、以及提供多种主题、多种布局组件:
多种类别的组件
多种主题和布局
PS:更多的布局效果持续更新。
大家是否注意到上面的DIY图表和开放扩展组件?其实理论上这里是可以无限扩展的,我们下面详细介绍一下:
DIY图表组件
究竟什么是DIY图表组件呢?虽然我们上面提供了N种图形,但实际的业务场景千变万化,如果上面都无法满足需求怎么办?如何快速去完成一个心仪的图形呢?
可以思考一下,一个图表组件最重要的其实就两点:
①数据:数据可以通过DataTalk中的各类模型直接查询出:拖拽查询,手写SQL查询,业务API查询等,最终得到一份Dataset数据。
②图形渲染:通过在线编码的形式,给到用户Dataset数据,再结合想要图形的option结构(Echarts),编写一些数据转换函数即可,因为不同的Echarts图形所需要的数据结构是不同的,又要满足不同的个性化需求,因此这里让用户手动写渲染函数。
说人话:拿到数据后(DataTalk帮你查询了),根据想要的图形的数据结构,写数据转换函数去适配即可。
其实这里也不一定非要前端同学写,很多研发同学都可以很快上手,在DataTalk实际业务中也有很多大牛运营和产品、设计同学自己写出精美的报表。
DIY图形组件,我们也叫做CharCode组件,下面是原型:
流程和结构:
实际的效果:
熟悉Echarts同学一看便知,其实就是我们查询数据后,转换成我们想要的option即可,所以只要你想要的图形,理论上都可以在线完成(我们也会根据数据去分析用户常用的图形有哪些,根据数据去驱动,直接固化到我们的图形组件中)。
自定义组件
上面提供了自定义图表组件的能力,还不够怎么办,用户拥有代码能力,同时又很有创意,DataTalk又没提供相应的内容怎么办?我们通过【代码组件】满足您的需求!
在其中提供了一款WebIDE,支持在线编写Vue template代码,JS代码,CSS代码,支持在线调试等功能。开发者就可以基于它写出自己想要的任意组件了。
我们不进行过多的封装,我们只做代码的搬运工
下面这张图就是使用我们的【代码组件】结合Ant Design Vue组件库构建的自定义组件,并且这里支持解析数据变量,这样我们从拖拽分析模型,API模型,SQL模型等查出来的数据再结合这里,就可以打造出自己想要的前端组件了。
因此这里能影响我们的应该只有创意了(当然我们还需要不断迭代和优化,虚心接受各方建议)。
开放扩展组建
如果以上类别还无法满足您的诉求,没关系,直接和我们一起共建开发吧,这里您无需了解DataTalk的复杂业务逻辑,我们完全抽象处理出组件内容,只需要关心组件本身即可。
举两个例子:我们集成的cherryMarkdown和Draw.IO组件
其实在新增这类组件的时候,我们已经将组件的逻辑完全抽象独立出来了,开发者完全不需要关心画布,拖拽,数据的获取等复杂的业务逻辑,而更多关心组件本身,按照我们的组件结构(展示、编辑、配置)去开发即可。
再举个例子:
我们的可视化图形也是基于公司oteam tvision构建,tvision也致力于打造公司级的可视化项目。DataTalk很多图形都出自于oteam同学的创作。
更多开放计划
我们不满足于此,目前正在更多地投入在DataTalk的组件开放能力建设中,后面我们会:
构建DataTalk的SDK,推出DataTalk的NPM包,支持在外部系统嵌入dashboard和图卡
建设组件市场,让更多用户所编写的创意组件沉淀下来,让更多的同学可以使用
Dashboard配置
下面是配置一张报表中的图卡流程:
画布
根据对比和调查发现,目前普遍为两大类型画布:自由画布和栅格画布,对比如下:
我们思来想去发现,大家都是成年人,两个都要吧~
数据驱动UI
因此,DataTalk集成了【栅格画布】和【自由画布】两套布局方式的画布供大家选择。
每一个数据应用都由一张张数据看板组合而成,每一个数据看板,都是由一张张数据图卡组合而成。而每张图卡的数据可能来源于不同的指标和维度,也可能来自于不同的数据源。然而真实的业务场景会存在全局筛选过滤、局部过滤、数据下钻、数据联动等功能,而这些数据之间的交互在DataTalk中是通过【变量】去实现。
01
变量类型
02
枚举变量
以纯文本和JSON两种格式作为静态变量
03
拖拽分析变量
通过拖拽指标、维度等条件
去DB中查询数据后,存储为变量
并且支持对查询结果通过JS的方式,进行二次加工处理,比如取得数据集合中第一行中的ds字段。
04
SQL变量
熟悉SQL的同学直接可以手写SQL查出想要的数据,同时也支持使用JS对于结果集的后置计算。
PS:我们支持一键生成SQL
05
API变量
DataTalk支持任意API作为我们的数据源,因此这里只需要选择对应的API,输入API所需要的查询参数即可,同时也支持使用JS对于结果集的后置计算 。
06
函数变量
通过JS支持任意的组合,比如将各类不同的变量进行二次组合,或者通过JS取得一些URL参数等等。
变量的结构和流程如下:
07
联动和下钻
推送
配置好的报表肯定需要定期的推送能力,在DataTalk中我们支持邮箱、企业微信、企业微信群等渠道进行推送配置。这里我们推送到邮箱是以截图形式进行,那么截图服务是基于puppeteer进行,后期也将整个截图服务基于腾讯云ServerLess,使用FaaS进行了改造,并成为了组内公共模块,目前灯塔分析的推送截图也是基于此。
我们也拥有实体表格(html)的推送,而非截图的形态,满足更多的用户诉求,同时也在和企微Bot进行合作,在办公协同这一块不断推进中,下面是我们的推送截图服务和faas的改造流程:
下面是推送配置界面:
推送到企业微信中时,我们是支持根据变量获取到实时数据的,下面就是通过OpenAPI作为数据源,将信息推送到企业微信的:
查询和缓存
01
查询流程
整个DataTalk报表的查询流程如下:
我们以DataTalk中的拖拽分析模型为例来看下分析模型的架构形态:
整体的结构如下:
02
缓存和预刷
通过用户的访问行为和自动化配置在puppeteer进行预刷,提升查询体验。
后记
DataTalk的建设从二零二零年十一后才开始,我们还有很长的路要走,同时也一直虚心接受各种建议,不断地优化和打磨中,欢迎大家一起加盟共建~