php怎么写入口文档,数据可视化工具有哪些?
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=10002705/问答环节Q: DataTalk 在公司内的用户都有哪些类型?A:DataTalk 在公司内的用户还是非常丰富的。我们刚才也提到了 DataTalk 是面向多种用户的,现在我们整个的 DAU 基本上过万人,你可以想象到一款 BI 产品,一款可视化产品,哪能这么多人去使用,基本上涉及到我们所有不同的角色,比如销售、运营、产品都会有的。然后以及涉及到多个 BG 不同业务。今天的分享就到这里,谢谢大家。分享嘉宾金家兴|腾讯 大数据平台部应用开发负责人
超过十年的研发经验、曾就职于百度从事LBS方向toC的研发工作、目前在腾讯负责大数据相关的应用开发和架构工作。
零基础如何学游戏编程?
不论你想学习游戏开发的编程入门,还是想学编程入门课程,教学方式比较游戏化,我这边都有很好的经验。
作为一名超10年的老程序员,我也并非科班出身,我本科学习的是应用心理学,然后通过书籍,网络,教程等自学的编程。
那门要学习编程入门,什么样的资料最适合呢?这里我首推w3cschool,既老牌又非常知名,里面的基础教程非常丰富,涵盖了方方面面的入门教程。
如果你说的游戏化编程入门学习,那他们的APP刚好能满足你的需求,在苹果应用商店和各种安卓手机应用商店里都有。
对于初学者,有趣的学习,会让人更好的学习和进步。
类似这种边学边练,像游戏一样学习闯关的,是国内编程学习的新模式。
希望你通过这些能帮助你快速入门编程领域的基础知识。
零基础编程入门,我主推w3cschool的APP,其次是慕课网的视频课程,两者结合学习。
意大利面怎么做才好吃?
您好~可以试试很经典的白酱意大利面哦~
材料:
1.先将黄油加热到融化
2.倒入面粉搅拌到顺滑
3.关火,倒入1/3的牛奶搅拌到没有大颗粒
4.再继续加入1/3的牛奶搅拌到没有颗粒
5.最后倒入剩下的牛奶,开小火,慢慢煮到变成浓稠的酱
提起的时候纹路不会马上消失就可以了
5.将其装在碗里,盖好保鲜膜放冰箱可以冷藏2-3天
6.白蘑菇切片,洋葱切粒,培根切小块
7.开水里面加半茶匙盐,放入意大利面煮10分钟以后捞出
8.锅里下油,放入洋葱炒香
9.加入蘑菇和培根炒出香味
10.倒入水,加入3汤匙的白酱
11.拌匀后再加入盐和黑胡椒粉
12.最后下煮好的意大利面搅拌均匀即可
白酱是西餐的基础酱汁之一,除了配意大利面也可以做浓汤、披萨等等,超级百搭。
lol隐藏分查询系统官网入口?
玩家可以登录英雄联盟小助手官网https://www.LOLhelper.cn/intro.php,点击【LOL隐藏分查询】来查询玩家自己排位赛的隐藏分。
具体步骤:
1、进入英雄联盟小助手,点击【LOL隐藏分查询】;
2、输入自己的游戏ID以及所在的大区后点击查询。
软件测试学习需要用什么软件?
快转正啦,要写转正评审ppt,顺带就了下个人学习路线,仅供参考。初学者不要看晕了,学完基础就可以找实习啦,其他的慢慢来~
先附上xmind,简洁明了
1、长期学习软件测试理论
其中包括测试方法熟练运用、测试思维的养成
测试方法可以找一本基础理论的书籍
以下是我入门的两本测试理论书籍,可在公众号回复(电子书)获取电子版
熟练运用和测试思维的养成我认为是需要功能测试经验的积累,多看看别人的用例,别人提交的bug
2、测试中bug定位分析
测试中bug定位可以学习fiddle抓包,数据库分析数据,查看日志,之前发过的F12定位web测试前后端bug也是其中一种
Fiddle教程我发现现在多数教程都是如何使用,而聊到如何分析的几乎没有,我没有找到哦,后面开一篇聊聊,共勉!
数据库分析数据,这就需要学习数据库相关知识了
SQL基本语句的学习(增删改查),查询是重点
3、接口测试
学习相关概念
学习Json基本语法
学习常见接口测试工具的使用
如Postman
Postman单口测试
Postman多口业务逻辑测试
Postman断言
4、python基础学习
看书、代码敲起来、练习做起来
菜鸟书籍《笨办法学Python》回复(电子书)获取
注意!这边的电子书是基于python2的
后续我会出python3写的《笨办法学Python2》系列习题答案,可持续关注,也可以直接看《笨办法学Python3》
5、自动化测试
(1)python+selenium基于web的UI自动化学习
(2)python+appium基于APP的UI自动化学习
6、掌握1个或者多个自动测试框架,学习robotframework, python的unittest
7、掌握性能测试技术,学习jmeter
题外话:
现在常见的现象是功能测试工程师想去做自动化测试,他觉得写自动化测试是价值,他能从中学到新的内容。
但是我觉得,你想清楚自己是在哪个阶段上,你想往另一个方面去发展的话,那么你一定需要在另一个方面去做额外的努力。那么这个做努力的过程中,从知识积累的角度来讲,它一定是从深度再到广度。
所有的测试离不开基础理论的支撑,即使是自动化。
我对自己的要求是在工作当中,如果接触到了一个技术,一个项目,一个功能,不轻易放过。不是得过且过,我测了就测了,一定要刨根问底。相信这样,每个接触过的技术都会变得比较深入。随着项目接触的越来越多,做到的事情越来越多之后,你很快就会发现,你有了深度的同时你就有了广度。
个人对自动化学习的要求:
考虑把身边天天碰到的这些重复性劳动,用一个简单的脚本,或者做一个简单的工具去做优化。一方面这是来源于对整个知识体系的理解,想法、思维方式,以及行动。在这个过程中,就体现作为一个测试人员的价值。我相信随着工具越来越多,知识面越来越广后,能做的事情就会更多。