关于问题数据可视化工具有哪些?一共有 2 位热心网友为你解答:
【1】、来自网友【DataFunTalk】的最佳回答:
DataTalk:开放的通用 BI 可视化平台
分享嘉宾|金家兴 腾讯 大数据平台部应用开发负责人
编辑整理|吴亚茹 得到
出品社区|DataFun
导读:现实中,大家经常会收到各种各样的数据需求,比如最常见的:当产品迭代后,老板想要查看迭代功能的 PV、UV 分布。按照传统的工作方式,基本上都是运营马上去提需求,然后开发去埋点,再进行 ETL 清洗入仓入库,最后设定好维度和指标,当这些准备工作都完成之后,开发同学去制作报表,运营截图发送给老板,整个过程是非常漫长的,这个时候,老板一旦想要看一些其他维度、或者其他指标,该怎么办呢?很多过程都要推倒重来。今天为大家分享一款开放的通用 BI 可视化平台——DataTalk ,用来解决上面提到的问题。
主要内容包括以下几大方面:
- DataTalk 的诞生
- 架构设计
- 开放能力建设
- 腾讯内的实践和展望
01/DataTalk 的诞生
1.DataTalk 是什么?
DataTalk 直译为 “使用数据去对话”。数据驱动的理念在不断地深入人心,目前大大小小的公司都会做出与销售、招聘以及目标等相关的决策。尽管大多数企业都能访问某种类型的数据,但是在没有数据分析和统计学背景的情况下,尝试理解这些数据还是比较困难的,或者说即使我们了解这些数据,但想要通过易于理解的方式传达给他人也是一项非常巨大的挑战。
DataTalk 就是消除了这些可视化分析的困难。通过连接不同的数据源,我们提供了多个画布场景和多端应用场景,你可以快速地通过拖拽的方式去搭建一个精美的仪表盘,进行一些数据交互和分析。
所以说 DataTalk 是一款面向不同用户角色、支持多种数据源、开放且自由创作的 BI 可视化平台。
2. DataTalk 是在重复造轮子吗?
可能会有人问,市场上类似的工具很多,我们是不是在重复造轮子?
作为一个技术人员,一般都会秉承着业务有需求、技术有使命这样的精神去做一些工具,我们的目标是要做一套标准化的数据工具,这还是比较难的。首先对于一个平台来说,不同的用户,他们的诉求也是不一样的,对于 BI 产品来说,老板的诉求可能是需要在移动端及时查看数据;运营同学需要圈选一些人群,便于进行活动的运营和推广;对于数据开发同学,可能需要多维度多角度的下钻分析,需要自助写 SQL;对于业务开发同学,可能需要平台提供一些扩展能力,便于他们去二次开发完成一些自定义业务需求。
我们也是秉承着同一平台满足不同用户不同诉求的目标去实现 DataTalk。我们不是直接去造轮子,而是先站在巨人的肩膀上学习,比如说学习行业内比较有名的 Superset、Power BI、泛 BI 等等;经过大量的对比分析,结合市场上和腾讯内部的实际诉求,从用户角色、数据源、多端场景、开放能力等多个维度去考虑实现。
我们提供了简单、易用、高级三种不同的模式去满足不同用户的诉求;也支持很多主流的数据源,在这里可以看到有 ClickHouse、PostgreSQL 等;也提供了面向多端的场景,以及很多丰富的功能,可以在 PC 端、移动端、大屏去进行报表查看;最主要的是我们是以一种 Low Code 加 Plugin 开放式的形式去架构,可以很好地满足个性化的诉求。
3. DataTalk 在腾讯内部的使用
整个产品是由腾讯内部多个团队和部门共同打造的,其中包含腾讯灯塔、手 Q、新闻及微信等等,所以说在腾讯内有大量的应用实践、证明。下图是 Data Talk 的腾讯内容多端实践场景,图中依次是王者荣耀的大屏直播展示、日报/周报的推送、移动端的展示。
02/架构设计
1. 腾讯灯塔的介绍
首先为大家介绍腾讯灯塔,灯塔提供了一站式的敏捷分析方案,它包含了各种业务端的数据上报采集,和无埋点数据的收集,各类不同的数据源在进行 ETL 后,会进行入湖、入仓的操作。DataInsight 是一款用户行为分析工具,支持多维度下钻和关联目标人群分析。这些数据也可以在 DataTalk 中通过拖拽的方式去生成一张精美的仪表盘,然后再通过多种通信手段触达用户,比如发送邮件、企业微信等等,形成分析闭环。
2. DataTalk 的整体架构
下图为 DataTalk 整体架构:数据采集、ETL 传输、引擎、应用全链路。
① 多种数据源:即连即用,关联整合企业内各部门数据,解决数据孤岛问题
下面我们对 DataTalk 本身进行更详细的讲解,最主要的特性是支持多种数据源链接,可以连接市面上所有的主流数据库,比如刚刚介绍的 Clickhouse 、 MySQL 、PostgreSQL 等;也支持很多本地文件的上传,比如腾讯在线文档,以及各种 OpenAPI,都可以作为数据源本身,可以关联和整合企业内各种部门的数据,解决数据孤岛问题。连接方式有两种:DataTalk 直连,和通过 MixQuery 进行加速查询。此外我们也会进行结果集的二次开发,也就是将查询后的结果,使用 JS 通过在线编码的方式去进行聚合,主要是为了解决各种图表配置时的个性化需求。
② 数据使用场景:支持不同的 SQL 方式
在数据使用场景上,可以自助写 SQL 去查询不同的数据源。我们支持两种不同的 SQL 方式:
- 支持按照 DB 的原生方式写,比如 MySQL、Clickhouse。之后我们会提供 One SQL 的能力,使用我们的引擎通过 One SQL 能力帮助大家进行方言的翻译,去查询各种不同的数据源。
- 支持对原有的数据进行加工建模生成虚拟表,生成表后可以使用界面拖拽、SQL 和 API 等方式查询数据。
对于一些有搭建报表需求,但是不会写 SQL 的用户(比如:销售人员、运营人员),该怎么办呢?针对这些用户我们出具了对应的功能,通过简单的拖拽,可以生成看板。链接数据源、选择表、选择想要查看的指标和维度,通过拖拽的方式就可以查询出来了,然后挑选对应的图形,进行样式的配置。这样一个简单的指标卡片就做好啦!整个过程都是一种 Low Code 的形式,不需要写一行代码就可以完成整个操作。
3. 画布相关内容介绍
DataTalk 提供了两种模式:
- 简易模式:适合销售人员、运营人员快速的搭建一张报表,整个过程不需要写一行代码。
- 高级模式:适合进行各种二次开发,可以在线写 SQL、在线写变量,使用变量去关联各种指标卡,进行全局或者局部的交互;或者写 SQL,结合 AI 的能力进行指标异动的归因查询和处理等。
对于画布的排列,也提供了两种模式:
- 三格布局:可以按需按行按列进行排列,特点就是简单、整齐。
- 自定义布局:可以任意的排列组合,可以搭建任何想要的内容,特点就是自由。
同时我们也提供了整个六套官方主题,可以自由切换,比如黑色系、清新色系,可以自由挑选,如果这些主题还不够用,用户也可以通过在线平台去搭建自己想要的风格,发布到我们的系统中。
4. 组件相关内容介绍
从下图可以看到,我们的组件库有六大类组件,每类组件都有十几款,这些组件基本可以满足用户日常的所有需求。比如想要在看板上配置一个流程图、交互图,该怎么办?我们提供了 draw.io 的能力。如果你想写一些 MB 文档,我们也会提供一些精美的 MB 编辑器,还有一些副文本的编辑器。所以说无论你是研发还是产品还是设计,那都可以找到你想要的这种组件。如果说这些还不够,该怎么办?可以一起看看我们下一节的开放能力。
在传统的 BI 分析中,可能我们会直接在数仓中按照固定的指标和维度查询数据,然后展示就可以了。现在很多场景我们都想要进行一种科学的分析方式,这里我们也结合了 Zeppelin 和腾讯云的 Serverless 云函数进行洞察分析。下图中有一些只能洞察,进行了时间和数据的预测。
5. 页面模版介绍
对于不太擅长 UI 和交互的同学,但又想做出精美的看板,可以直接在模版库中选择合适的模版进行使用。使用模版,提升创作效率,让美化页面更简单。
6. 触达通道介绍
我们是一个完整的数据分析闭环。为了更好的触达用户,我们支持通过订阅到邮件、QQ、企业微信等多个渠道,让我们实时看到一些数据的变化。我们也提供了非常丰富的办公协同效果,我们本身可以在图表上进行一些批注,比如说有运营同学问为什么今天的 GMV 这么高?然后下面可能会有同学进行回复。整个过程既可以在看板本身,也可以联动企业微信,在微信推送消息体后,我们可以进行一些回复和修改。我们也会提供完整的业务指标的监控告警,让你可以随时随地洞察整个业务的波动。
7. 仪表盘是如何诞生的?
下面我们从技术的角度讲解看板的设计。
这里讲仪表盘到底是如何诞生的?DataTalk 是重前端的应用。为了未来的开放性,我们将所有的报表都固化成一个 JSON 文件,其实也可以通过 YAML 去配置它。所以为了方便,我们是以这种配置化和声明化的方式去声明一个仪表盘。在仪表盘内,我们将所有的内容都固化成组件,所以说一切都是组件,一个组件等于一份 JSON 的配置,我们可以通过拖拽的方式,也可以通过未来提供的 Open API 的方式,让你去快速大奖各类想要的组件和想要的仪表盘效果。
举个例子,在腾讯内部有很多种 BI 可视化工具,我们是如果做到让大家快速切换使用的呢?首先我们不断地提升自己的能力,去满足各种各样的需求;其次是我们可以以 JSON 的形式进行配置,减少大家切换平台的工作量。
我们将 DataTalk 的组件抽象为两部分:ViewWrapper(组件展示)和 EditorForm(组件编辑)。大家可以在仪表盘上看到的就是组件,每个组件都有它自己的配置。比如一个折线图,我想要配置它的展示效果,可以通过 JSON Schema 去配置,也是不需要写代码。
那我们对这些组件的交互是怎么做到的?是以一种变量的形式去进行的。举一个例子,我们想做一个省市的联动,然后通过省市联动去查询报表的数据。一般是拖两个 Slide,那再拖一个折线图出来,这完全没有交集的。通过变量的方式,我们可以看到上面省是一个 Select,它选择后的结果其作为平台本身的变量,将这个变量传送给第二个 select 通过省级去查市级,最终将这两个变量的组合传递给报表。这样就可以任意的组合查询数据了,整个过程不需要写代码,通过配置就可以生成。
还有一些更特殊的情况,该怎么处理呢?比如我有一份数据在 MySQL,有一份数据在 Post Gray,这两份数据在入仓的时候没有做关联,想要查询是比较困难的,但是 DataTalk 可以对一些结果记进行二次处理。
那这两其实我们在如果没有做一些入仓的处理的时候,那想想要先结合还是非常困难的。那这里我们也可以对一些结果集进行二次的处理,在查询结果后,可以通过 SQL 变量拿到结果传递给函数,通过函数变量进行组合展示。从下图的右边我们可以看到各个图表的维度下钻,还有全局联动。
DataTalk 是一个前端应用,我们的报表都是自定义的,用户可能会在一个看板中拖出无数个图卡,每一个图卡都是需要查询的,那打开一个看板,将会是漫长的等待。为了提升用户体验,我们会通过 PopTier 进行整个的首屏的看板的预刷。我们通过一些用户行为和定时器的处理,主动帮用户做刷新工作。通过 Pubtier 将所有的页面直接静态,静态导出为 HTML 之后,通过 Nodejs 服务达到 SSR 的效果,也就是页面的植出效果,让用户可以体验到秒打开的效果。当然这只是以前端角度来看,我们还要以整个查询的内容去看。如果这时候查询没有触发到缓存的预刷怎么办呢?
我们也可以智能预刷,比如通过整个的访问频次,还有热度在后端帮用户做预刷。当然了这些都是为了 T+1 的数据效果。如果是实时的数据,需要进行直连查询。报表工具只是一个数据的展示,不会帮助你进行查询的加速,当然我们也会通过引擎进行加速。这里主要讲的是通过前后端不同的角度帮助大家不断地提升查询缓存命中率,还有一些实时命中率等。
03/开放能力建设
面向业务大量需求如何高质量快速交付?DataTalk 学习国内外先进的技术和方案,来解决该类问题,总结起来有三部分:
- 提供 SDK 满足不同用户的嵌入需求
- 提供 Open API 支持不同数据平台的数据迁移
- 通过 Ccore 加 Plugin 开放式架构,让大家去实现想要实现的需求
前文一直提到 Plugin ,那么我们到底需要什么样的插件呢?下面这张 PPT 的左图看出,上面是一个插线插排,下面是我们电脑中的主板,这两个都有一个共同的特点,它本身就是一个容器,提供了诸多插槽,但是通过很多这种接口的扩展,它能提供出很多各种各样的能力。我可以连 CPO,也可以挂 SS 硬盘,还可以挂很多内存,这些都是通过主板提供接口让你去扩展出来的。那与此我们也是通过它去推理出来。插件具体是用来解决什么问题呢?
- 帮助我们快速扩展各种能力
- 可以进行各种各样定制化开发
- 减少插件和代码耦合,提升生产效率
下面以灯塔为例,讲解我们的开放式架构。我们可以看到在灯塔里,我们有很多应用产品,提供了完整的数据分析闭环。在这里我们都依托于灯塔的整个公共服务,它会提供元数据管理、缓存、文件、下载以及权限管理,整个服务都是通过一整套的通用服务去搭建的。除此之外,我们的应用还依托于开放平台本身。
1. 开放平台提供什么能力?
那开放平台提供什么能力呢?刚才我提到的整个的插件,这种注册、管理、声明以及我们多种多样的共建方式。比如我们会提供出很多云函数,让大家去写,提供出很多 Open API;会提供了一款 Beacon 的 Cli,也就是命令行的一个工具,让大家通过我们的 Cli 去创建插件的前端项目以及后端的项目,整个的插件的发布、更新、定制、卸载都是通过它可以做到的。我们也会提供出很多的标准的,比如说标准的 CICD 、文档建设等,以此会推导出我们整个的应用的建设。当然我们底层是依托于整个 MixQuery(融合分析引擎)的能力进行一些加速查询。这里我更多的是以整个应用层的视角去给大家讲解。
2. 开放平台如何使用的?
我们通过 Cli 去将构建一个前端仓库,每一个组件都是一个独立的仓库,它不需要去和原有的项目耦合,完全是解耦的。这样的话也可以做到很多插件热更新、热加载等等。最终前端我们会发布成一个组件的 JS 包,发布到我们的 CDN 上,然后后端会生成一个 Jar 包,发布到 Mapping 上。前后端所有组件都通过这种动态加载的方式去做的。
我们每一个应用其实都是一个数组的 Application。那这里我们应用本身会提供诸多的插槽,比如说我想去开发可视化组件,我可以提供出插头;我想连接各种数据源,DataTalk 提供了一款开发能力( data connector) 通过它可以去连接各种你想要的数据源。这个时候你不需要去完全了解整个平台架构能力是什么,你只需要关心你自身需求即可。我们平台本身会提供一些整个的 API,通过发布订阅模式进行一些插件间的通信以及注册管理,所有的内容大家只需要去关心功能本身即可。
3. 发布和加载插件的流程
开发者通过 Cli 去生成自己的仓库后,可以进行一个打包编译。打包编译后,我们直接会把这些插件本身发布到我们的公共的 COS 上。我们通过 CN 的方式去挂载,把对应的信息去加载到我们的入户,写入我们 DB 里,然后所有的插件发布和变化,我们完全可以通过 MIS 系统去控制它。比如说在 A 空间里,我想去加载某一类组件,那我完全可以通过 MIS 去动态地加载。而且我们整个的插件加载方式完全是一种异步的动态加载,也支持热更新的方式,无论是前端的插件以及后端的 Jar 包都是支持的。另外我们也提供了比较完整的本地调试环境,供大家直接去开发和调试。
4. 在线开发组件能力
DataTalk 不仅是一个 Low Code 平台,也是一个 Low Code 。我们提供了两种不同的开发组件能力,来支持一些个性化的需求。在线 Code 能力 ,快速实现组件;在线手写任意 Vue 组件能力,实现更复杂的前端组件能。如果你自己编写的组件特别受欢迎,也可以直接把它发布到我们的公共市场里,供更多的人使用。
04/腾讯内的实践和展望
1. DataTalk 的用户是谁?
DataTalk 是由腾讯内部多个团队共同建设的,经历了社交、游戏、教育、医疗多个领域。不同的部门和产品都会使用我们的产品,目前在腾讯内部有大量的用户。
2. DataTalk 自身的开放能力的实践
QQ 推出了一个 QQ 频道的功能,QQ 频道本身是需求去看数的,看用户的访问量、用户的分布,以及一些 PV/UV 等。在传统的开发中,会定制化开发一个 H5,然后加载进去,这样是比较繁琐的。DataTalk 不止能完成可视化看板的配置,也可以以一些低代码的能力去帮助用户配置出这种数据页面。我们也管它叫 Data App 相当于这里头的整个数据报表,整个的数据页面完全是通过 DataTalk 配置出来的,然后直接去发布到 QQ 上。所以说这也可以看到我们整个 DataTalk 的能力、场景和用户范围有多少。
3. DataTalk 的相关案例
在一些节假日,我们都会收到一些总结数据、反馈数据等等。这个产品也支持类似的场景,会直接通过企业微信发推送给到用户。
下面这款是我们的实时大屏场景,最开始看到的一个王者荣耀仪表盘的场景,也是通过 DataTalk 配置出来的。这里可以动态地、实时地去查看用户数。
对外我们已经在汽车、金融、政务等很多种场景去进行了一些商业化。
4. 接下来
灯塔是一个全链路的大数据套件产品矩阵。在 2022-06-30 会进行一个云化的版本,纯基于云上的云原生版本的套件会与大家见面。现在在腾讯云上,可以收到整个 DataTalk,它是以单独独立产品形态去部署的。未来我们会把从上报到分析、以及行动、画像、实验等整个套件,以云原生角度发布到云上。未来也期待大家去使用。想了解更多的关于腾讯灯塔的内容,也可以关注我们的公众号,谢谢大家!
灯塔大数据套件,正在对外公测;立即注册,即可免费获得 1 年个人专业版权益。诚邀「数据相关领域」的专业伙伴们体验产品,多反馈多建议,一起参与进来,共同打造一款「新一代」的数据产品。
产品体验链接:https://beacon.qq.com/?entrance=100027
05/问答环节
Q: DataTalk 在公司内的用户都有哪些类型?
A:DataTalk 在公司内的用户还是非常丰富的。我们刚才也提到了 DataTalk 是面向多种用户的,现在我们整个的 DAU 基本上过万人,你可以想象到一款 BI 产品,一款可视化产品,哪能这么多人去使用,基本上涉及到我们所有不同的角色,比如销售、运营、产品都会有的。然后以及涉及到多个 BG 不同业务。
今天的分享就到这里,谢谢大家。
分享嘉宾
金家兴|腾讯 大数据平台部应用开发负责人
超过十年的研发经验、曾就职于百度从事 LBS 方向 toC 的研发工作、目前在腾讯负责大数据相关的应用开发和架构工作。
【2】、来自网友【数据分析不是个事儿】的最佳回答:
市面上的数据可视化工具很多,大体分为 3 类:
1、专业图表制作类,专业的图表制作网站/软件,针对性的制作一些可视化图表,一般不带有数据处理功能
2、开发工具,比如 python,调用第三方可视化库可以制作非常个性化的可视化图表,门槛高,要会写代码
3、零代码可视化分析工具,比如 BI 工具,操作简单,门槛低,自带数据处理功能,适合普通的业务人员或者数据分析师
专业图表制作网站
1、Flourish
推荐人群:可视化爱好者
我用过最好用的免费可视化在线网站,拥有非常丰富的可视化模板,操作非常便捷,个性化程度稍微差一点,唯一的缺点是界面全英文,看起来有点费劲
2、图表秀
国内免费的在线图表制作工具,支持自由布局与联动交互分析。主要看中它几点:图表新颖丰富,操作简单一键替换,支持一键导出 PPT、在线动态数据展示。不过和大部分图表制作网站一样,个性化程度不高,样式受模板限制。
除了这种综合性的图表制作网站,还有针对地图、词云图等特殊图表制作的网站,比如:
数据地图:PolyMaps
词云图:微词云
开发工具
1、E charts
百度出品的开源免费的 javascript 数据可视化工具,专为大数据量可视化设计的,数据实时展现,需要一定的代码能力
2、D3.js
开源的可视化库,在 JS 绘图界的地位很靠前。功能非常强大,灵活性高,很多其他的库都是基于它所开发。非常适合开发者学习研究,需要牛逼的编程功底,门槛较高。
3、Highcharts
国外的产品,对标的是 E charts,两者用起来差不多,图表种类也很丰富,不过和 E charts 一样都需要进行二次开发,它的优点是它有详细的文档,示例和详细的 CSS,产品稳定性好,缺点是商用版付费。
零代码工具
1、tableau
全球知的数据可视化工具,除了可视化图表制作,还带有数据处理、数据连接功能,是一个专业的数据分析工具,操作简单,图表设计也比较简洁,个性化程度高用。入门门槛低,一般的业务人员就能上手,缺点是免费版功能有限,收费版对于个人用户来说有点贵。
2、FineBI
和 tableau 类似的一款数据分析工具,国产的,图表制作方法和 tableau 基本差不多,也带有数据处理、数据链接功能,主打的是数据分析,可视化图表非常丰富,而且带有智能图表推荐功能。操作相比于 tableau 更加符合中国人的使用习惯,而且个人版免费,功能和收费版相比,没有阉割