写点什么

网易在智能分析领域的应用与实践

  • 2019 年 9 月 06 日
  • 本文字数:4697 字

    阅读完需:约 15 分钟

网易在智能分析领域的应用与实践

本次分享将从以下三个方面做介绍:



PART 01 部门介绍

网易大数据主要分为俩部分:大数据底层的网易猛犸和大数据应用层的网易有数,具体介绍见下图。



PART 02

1. 网易数据平台发展史


经过多年大数据分析的技术积累,网易有数目前服务 150+项目,报表 20000+,用户超过 3000,整个过程主要分以下几个阶段:


① 初级阶段:


  • 数据统计为主,分析为辅:BIEE 配置了大量统计报表,主要为公司内部各级人员提供报表功能,分析功能比较弱,需求环节较长。


② 起步阶段:


  • 引入 Hadoop 存储计算平台:面对海量的业务数据,开始尝试引入 Hadoop 来解决数据存储和计算问题。

  • 数据获取更方便:通过 Hive 提供查询功能,开发人员可以通过 HiveSQL 响应分析和业务人员数据需求。


③ 整合阶段:


  • 统一数据采集机制:针对不同移动端平台开发了数据采集 SDK,WEB 端开发了 JS 数据采集器,服务端开发了数据接入 API 接口。

  • 规范化指标体系:统一了产品、市场等业务的数据评估指标,使得网易各产品间的数据有了对比的可能。

  • 场景化分析产品:针对产品、设计、运营和市场等不同场景提供相应的分析产品,提供特定的分析模型用于评估业务效果。

  • 数据高质量分析管理:从数据采集、传输、存储、管理、分析和展示等一系列流程保证所有业务数据的高质量、可管理和可分析。


④ 提速阶段:


  • 加速工程师开发工作:通过猛犸工具提供的计算任务调度管理、任务作业流管理、数据传输和同步管理加速工程师的数据开发工作。

  • 提高数据获取速度:Hermes 通过优化底层数据模型和数据分析架构,提高数据获取的速度。

  • 提升数据分析师效率:通过有数可视化工具完成大量数据探索工作,固化分析结果,形成日常报表。

  • 更快发挥数据价值:通过有数和 Hermes 分别进行数据探索和数据获取工作,极大提高了数据价值发现过程。


这是目前大多数公司的分析方式:



这是我们认为比较高效的分析方式:



2. 当时面临的挑战

① 分析工具层面:


  • 缺乏易用性:用户上手困难,甚至需要用户进行编码;

  • 缺乏洞见性:图表类型固定,无法支持对数据个性化探索,无法挖掘出数据中隐藏的故事;

  • 缺乏连贯性:用户无法在一个平台内完成整套数据分析;

  • 性能不好:在大数量的情况下,响应慢。


② 用户层面:


  • 用户自身数据分析、可视化知识的匮乏。比如不知道如何用合适的图形来更有效的反应数据。


③ 对数据产品的要求


  • 易用性:直观的拖拽式的交互操作,大大地缩短数据建模,查询,可视化的时间;

  • 高性能:使用内存数据库等技术,加速查询,可混合多种数据源;

  • 连贯性:一个人,在一个平台中,可以快速独立完成所有的分析工作;

  • 洞见性:帮助用户发现问题,定位问题,进行决策。


PART 03

1. 智能分析平台:网易有数


网易有数是企业级大数据智能可视化分析平台,他可以通过拖拽,自然语言搜索的方式,智能化的完成数据分析与探索。下图为网易有数的编辑界面。



2. 易用性

网易在智能分析上的探索:具有易用性、智能化的可视化系统中的图形智能推导技术。


具体表现为:


  • 用户通过拖拽、点击式的操作,可以轻松完成数据分析与探索;

  • 可视化过程中,系统给予用户可视化辅助建议,更好的指导用户完成;

  • 能够支持通过自然语言进行图表的制作,真正降低用户可视化门槛,实现数据驱动运营。


下面为大家展示一些 Demo:


① 易用:拖拽、点击、完成一份精美的报告


00:00 / 00:00
    1.0x
    • 2.0x
    • 1.5x
    • 1.25x
    • 1.0x
    • 0.5x
    网页全屏
    全屏
    00:00


    ② 智能推荐:“还可以怎么看”



    根据图表当前的字段,能够匹配值最适合展示的图表类型,用户可以轻松点击完成图表制作。



    ③ 智能位置匹配:“应该怎么看”



    用户双击某个感兴趣的字段,字段会自动匹配放置到最合适的位置。



    ④ 智能问答:基于自然语言绘制图表



    基于用户的文字输入,匹配出最合适的图表,并给出相应的推荐。


    00:00 / 00:00
      1.0x
      • 2.0x
      • 1.5x
      • 1.25x
      • 1.0x
      • 0.5x
      网页全屏
      全屏
      00:00


      VQL


      上述的功能我们是如何做到的呢?实际上,有数在拖拽式数据建模、查询和可视化背后的核心逻辑就是我们把它编译成了 VQL(Visual Query Language),一种可以拖拽式生成的数据可视化请求语言


      接下来,将为大家详细讲解下背后的逻辑:



      这是图表的界面,它的面板显示了 X 轴,Y 轴分别代表了什么,以及一些筛选条件,这其实就对应了我们的 VQL。



      因为要支持拖拽字段的方式生成图表,所以需要解析图表配置面板上的信息,可视化查询也就是图表数据面板上面的字段配置信息,比如 X 轴 Y 轴哪些字段,顺序是怎么样的。



      配置的背后会表示成类似 json 格式的结构,会告诉我面板 X 轴上有什么,Y 轴上有什么,颜色上有什么,等等。



      当这个配置传给平台端之后,会根据配置做两件事情:


      • 划分透视结构

      • 获取数据,把这个配置对应的数据获取过来



      一个图表构成的要素有以下三个:


      • 图表的透视结构

      • 图表每个格子内的图形设计

      • 图表中每个格子的数据


      对于上图,可以看到 X 轴和 Y 轴的配置,根据这个配置我们会得到中间的图,这里有个定义,Pane 是相同结构的东西,如左图,Pane 里面会有一个 Cell,所以通过这个配置,我们得到了一个 2*3 的透视结构,有 6 个 Pane(块),12 个 Cell(格子)。



      结构知道之后,我们需要把数据从数据源中调取出来,当有了数据之后,就可以根据数据结构来切分数据,切分成一个个 pane 和 cell,在这之后,就是智能推导模块要做的事情,寻找最合适的标记组合图形语句。



      这里不得不提图形语法,它阐述了一个重要的概念:


      • 不仅数据是有结构的,图形也是有结构的,如上图,虽然看上去形式是两样的,实际上,只是把图表从笛卡尔坐标系转换成了极坐标系;

      • 图形语法首先描述了图形的结构,并提出了一种组合的方法,从而可以描述无穷无尽的图表。


      所以,图表也是由一些基础的组件,搭建而成的,如坐标轴,平或者扁的标记,颜色等等配合而成的。那么,网易有数在做智能推导的时候,也是运营了图形语法:


      • 几何标记:可视化中标记通常是一些几何图形元素,例如:点、线、面

      • 视觉通道:用于控制几何标记的展示特性,包括标记的位置、大小、方向、颜色、色调、饱和度、亮度等。



      这里引用陈为老师《数据可视化》中的例子说明:


      图 A 表示了三个不同班级的数学平均分,用柱状图表示,矩形作为几何标记,柱状图的高度作为一个视觉通道,编码了数学平均分的值;


      图 B 中,我们想在 A 的基础上多展示语文平均分这一项数据(即增加了一个数据维度),则选用点这个形状作为几何标记,点的横坐标编码语文平均分的值;点的纵坐标编码数学平均分的值。


      这时候发现图 B 中我们把班级这个数据维度给丢掉了,于是我们可以用颜色这一视觉通道来编码班级这个属性信息,如图 C。


      如果我们还想展示班级人数这一信息,则可以用尺寸这一视觉通道来编码,如图 D。



      所以有数的面板中也会有几何标记和视觉通道。


      那么说了这么多,想表达的意思就是,我们希望通过寻找合适的标记组合,把图形展示出来。



      举个例子,上图就是车辆颜色销售额的排名,那么这张图在有数是怎么做出来的呢。



      它是由这两张图合并出来的,上边是用线做出来的图表,下面是用点和数字做出来的图表,它们表示的都是同一个意思。


      寻找最合适标记的方法


      • 基于数据特征的标记类型推荐


      ① 数据角色 ( Role ):维度 ( Dimension ) 、度量 ( Measure )


      ② 数据阐释 ( Interpretation ):离散 ( Discrete )、连续 ( Continuous )


      ③ 数据类型 ( Type ):整数、小数、字符串、日期、时间、地理等


      • 标记类型推荐:基于字段的放置位置


      ① 轴的配置+视觉属性



      图形语句合并的时候,会有一些算法逻辑包含在里面。



      最后,VQL 主要的内容解析完毕之后生成的透视表结构,数据,以及推导出来的抽象图表描述将会交给图标合成层,合成最终将在前端渲染出来的图表配置。在这个模块中,VQL 中剩下的一些信息,如用户自定义的轴的范围,数据格式等将会被解析执行。这就是 VQL 智能生成与解析的完整链路流程。



      使用 VQL 让网易有数具有以下的这些优点:


      • 用户可以不需要编写 SQL 代码,通过较为简单的拖拽,只需要表达对于可视化图形的需求,我们就能从中提炼并自动生成获取数据的代码。

      • VQL 的表达能力也是非常强大的,复杂的复合可视化图表的表达一样非常简单,多层嵌套的透视图表,双轴图,地图等,都可以在 VQL 中统一的描述。

      • 最后,VQL 的这种表达方式让用户可以更容易的建立起数据和图形之间的联系,从而使用户可以互动式的探索挖掘数据,让有数的可视化探索分析成为可能。


      以上就是今天要解决的第一个点:易用性,以及在智能化上的探索。


      3. 洞见性


      从上图可以看出,很多时候,我们停留在什么地方?比如我们用一个分析工具,来描述当前的业务现状,做了一些报表,做了一些监控,帮助我们发现问题,但是其实用户更想知道的是为什么会发生这些问题,未来是否还会发生这样的问题,是否可以提前知道,应该该如何解决,这块我们把他认为是高级分析领域,目前大多数分析师,还是停留在知道发生了什么。


      针对这样的问题,我们有了智能模块,包括:智能洞察、智能问答、机器学习。



      ① 智能洞察


      比如我想查看下华东和东北为什么会有这么大的差异。



      这里会有两种,一种是对比分析,一种是解释分析。



      • 对比分析:不需要用户自己找差异,根据不同的维度、指标,会直接告诉用户差异在什么地方,方便用户找到他需要的原因。



      • 解释分析,这里没有截图,其实也比较好用,就是会解释下为什么会有这种情况。


      ② 智能问答:自然语言解析



      智能问答的作用有很多:


      • 通过语言的描述,快速的做图表

      • 回答各种问题,比如销售额为什么会下降


      如上图,我们输入了“2018 年销售额情况”,下面就是我们智能问答给出的结果:



      ③ 机器学习算法



      这是常用的一些机器学习算法,直接集成在网易有数中,比如回归、聚类、时序预测等,这里并不是做成黑盒傻瓜式的工具,而是根据用户自己的需求进行选择。


      4. 高性能

      影响性能的因素:


      • 数据量巨大,查询耗时

      • 查询请求数大,数据引擎并发受限


      性能优化的点很多,这里以报告性能为例:



      报告性能由会由几部分构成:页面渲染、数据查询,网络延迟等等,页面渲染通常比较容易优化的,这里的难点在数据查询,它跟用户数据源的性能是强相关的,如果用户数据源性能非常差,那么请求就会非常慢,经常落库查询会需要 20s,但是如果可以命中缓存的话,其实只需要 0.06s。


      所以,我们的思路就是如何做缓存:



      这里我们有两个层面:


      ① 数据驱动,从被动缓存(可能用户第一次查询这个数据的时候会非常慢,那没关系,这时我们已经把它缓存了,当用户再次查询这个数据的时候就会非常快)到定时缓存(用户第一次查询还是很慢,这时就会采用定时缓存,比如每天 3:00 定时把报表都重新刷一遍,这样就起到了加速的作用,但是这种方法对计算资源消耗非常大),这时我们就采用了数据驱动缓存:



      比如说我有这些报名,它们背后都有对应的数据模型在猛犸中,所以表数据有没有更新完,猛犸是很清楚的,当表猛犸更新完之后来主动触发对所有图表的缓存,这样就解决了缓存的问题,同时也实现了图表级的缓存。


      ② 精细化



      从对报告级缓存,到页面级缓存,再到图表级缓存,越来越精细化。从上图可以看出,当达到图表级的时候,对系统的压力就非常分散了。


      5. 分析思路产品化


      这也是我们有数在做的事情,分析思路产品化:当用户使用的时候只需要选择对应的模板,把自己的数据替换进去,就可以了。


      PART 04

      最后给大家分享一些案例:


      00:00 / 00:00
        1.0x
        • 2.0x
        • 1.5x
        • 1.25x
        • 1.0x
        • 0.5x
        网页全屏
        全屏
        00:00


        这是我们的一些大屏展示



        这是生成海报的例子



        最后,欢迎大家登入官网体验我们的智能分析平台:


        https://youdata.163.com/


        作者介绍


        王文开,网易大数据资深数据产品专家,复旦大学软件工程硕士,从事多年可视化分析工作,具备丰富的数据分析、智能分析实践及应用经验,熟悉国内外主流 BI 产品。目前任职网易数据科学中心,负责网易数据分析产品设计工作。


        本文来自 DataFun 社区


        原文链接


        https://mp.weixin.qq.com/s?__biz=MzU1NTMyOTI4Mw==&mid=2247493311&idx=1&sn=eed00341c8445026535a69d2701acfb9&chksm=fbd754d3cca0ddc55818ae1b2549dd660b7c5b37cf16fdc8ba08811dfab31adb04d34870e963&scene=27#wechat_redirect


        2019 年 9 月 06 日 08:002766

        评论

        发布
        暂无评论
        发现更多内容

        五分钟了解 Blazor

        智联大前端

        blazor

        MySQL 数据库开发入门(二):数据库表的创建与管理

        程序员小呆

        MySQL MySQL 高可用 MySQL 运维 MySQL 数据库 java

        全网首发!马士兵内部共享—1658页《Java面试突击核心讲》

        收到请回复

        Java 程序员 面试 架构师 金九银十

        MySQL 数据库开发入门(四):MySQL 的数据引擎

        程序员小呆

        MySQL MySQL 高可用 :MySQL 数据库 MySQL 数据库 java

        前后端、多语言、跨云部署,全链路追踪到底有多难?

        阿里巴巴云原生

        阿里云 云原生 全链路追踪

        Groovy记录(1)-GroovyClassLoader

        春秋易简

        Groovy

        GitHub爆火!阿里内部Java高并发系统设计全彩手册曝光,极致的理解!

        Java 架构 面试 程序人生 编程语言

        OceanBase 存储层代码解读(一)引言

        OceanBase 数据库

        oceanbase OceanBase 开源 OceanBase 社区版 OceanBase 数据库大赛

        MySQL 数据库开发入门(三):Navicat 客户端的使用

        程序员小呆

        MySQL MySQL 高可用 MySQL 运维 :MySQL 数据库 MySQL 数据库

        区块链技术赋能音乐作品版权保护 法院采信存证证书作为有效权属证据

        CECBC

        学生试卷&答题结构redis存储

        潇湘以南_vs7S

        面试官:你说说ThreadLocal为什么会导致内存泄漏?

        长河

        Java

        014云原生之云数据库

        穿过生命散发芬芳

        云原生 10月日更

        MySQL 数据库开发入门(一):安装与常用命令

        程序员小呆

        基于区块链的供应链金融创新

        CECBC

        艺术市场的区块链革命

        CECBC

        Groovy 记录(2)-CompilationUnit

        春秋易简

        Serverless 工程实践 | 零基础上手 Knative 应用

        阿里巴巴云原生

        阿里云 Serverless 云原生 Knative

        AtomSolutions与Bholdus缔结业务合作伙伴关系

        Geek_c610c0

        ToB产品如何自传播(下)

        石云升

        产品经理 产品思维 10月日更

        为 Elasticsearch/Kibana 配置账号和 https(qbit)

        qbit

        https 安全 TLS ssl

        自定义 View:如何手动绘制一个头像控件

        Changing Lin

        10月日更

        百度翻译团队获“2021年大数据科技传播奖”未来奖

        百度大脑

        人工智能

        应用出海,如何使用苹果 CallKit 提升网络通话体验

        融云 RongCloud

        音视频 出海社交

        无敌是多么的寂寞!这份在各大平台获百万推荐的Java核心手册称得上史上最强!

        Java 架构 面试 程序人生 编程语言

        阿里大牛开源内部"JDK源码手册"一经现世,惊艳四方

        Java 架构 面试 程序人生 编程语言

        从Engineer到Leader,我在思考啥?

        夏兮。

        互联网 管理 技术人 IT

        Alibaba最新微服务持续集成,内含(Jenkins+Docker+Spring Cloud+K8S)

        Java 架构 面试 程序人生 编程语言

        流行技术限时开源!Alibaba新产“Java面试权威指南”助阵金九银十

        Java 编程 程序员 架构 面试

        力软快速开发平台,帮助中小企业躲过数字化“踏浪出海”的“暗礁”

        力软.net/java开发平台

        gRPC,爆赞

        AlwaysBeta

        golang 编程 gRPC 后端 Go 语言

        网易在智能分析领域的应用与实践-InfoQ