导读:本文整顿自线上分享,首次披露 Sugar BI 的技术架构。
本次技术分享,将以 Sugar BI 为示例,剖析背地的技术架构与流程,以及可视化图表的智能举荐策略等性能的设计思路,帮忙大家深刻了解智能化可视化 BI 的技术与实际。
本次内容次要分为以下 4 个局部:Sugar BI 产品的整体详情、可视化技术剖析、智能图表举荐、智能语音交互。
全文 5923 字,预计浏览工夫 15 分钟。
01 Sugar BI 介绍
1.1 百度智能云大数据体系产品架构全景
百度智能云大数据产品架构全景图共三层:
底层:通过湖仓数据基础设施(包含湖仓引擎和治理开发)为企业提供数据存储、数据处理、数据开发等能力。
中层:数据价值开掘平台,充分利用百度智能大数据技术,实现企业数据资产价值最大化。
顶层:基于底层和中层的技术,帮忙各行各业落地大数据利用落地。
除此之外,在架构图的右侧咱们能够看到,百度智能云大数据体系建设了数据安全防护体系,如:多方平安计算、数据审计、加密脱敏等把控数据安全。
Sugar BI 作为数据价值开掘平台之一,它是数据与用户最间接的一个连贯。
△图 1 百度大数据体系产品架构全景图
1.2 疾速搭建专业化 BI 剖析平台
设计指标:让用户在 5 分钟之内就能搭建业余的场景化的 BI 剖析平台。
搭建流程:增加数据源 → 创立数据模型 → 可视化成果制作(包含报表制作 & 大屏制作)
这样简略的步骤让用户非常容易就能搭建一个可视化平台。在这个过程中利用了百度可视化开源组件 Apach Echarts,通过拖拽图表组件及数据字段的形式,在 5 分钟之内就能够搭建数据可视化页面并进行简单的数据分析操作。
△图 2 Sugar BI 可视化页面搭建流程
1.3 对接多种数据源
在数据源层面,Sugar BI 能够对接的数据源包含:
开放性的数据库:MySQL、SQL Sever、PostgreSQL、Oracle 等。
大数据的数据源:国产麒麟(Kylin)等。
其余场景中常常会用到的大数据的组件:Hive、Spark、Impala、Presto 等。Sugar BI 还能够反对 Excel / CSV 数据的上传,同时还反对对接已有的 API 并且容许用户动态的输出 JSON 代码来做成果展现。
最初还开发了内网隧道的性能,能够让内网中数据源的数据通过内网隧道的形式间接对接到云上 Sugar BI 的产品中。
对于不同的数据源,比方 MySQL 和 SQL Server,还反对两种数据源的跨源穿插剖析。
△图 3 Sugar BI 反对的数据源类型
1.4 零代码 + 拖拽式制作报表
- 在产品报表的主编辑页面,所有的组件都是拖拽式的。
- 应用拖拽字段的形式进行数据绑定、全界面化的增加和批改图表组件,简略易用。
- 丰盛的图表配置项,能够让用户零门槛上手。
- 挪动端报表布局主动适配,能够让用户随时随地多端查看 Sugar BI 产品。
- 帮忙真正懂业务的人实现剖析。
在大屏页面中通过内置几十种大屏模板,Sugar BI 将百度外部业余的 UE / UI 设计资源赋能给客户,模板包含政务、教育、批发、金融、制作、新闻、餐饮等各行业。
整套设计涵盖挪动端与 PC 端。客户只需简略批改,即可应用。
△图 4 Sugar BI 大屏展现
1.5 主动剖析:你筹备数据,我生成报表
在传统 BI 工具拖拽式生成报表的根底上,Sugar BI 进一步实现一键主动剖析。零碎在几秒钟内,就能将明细数据主动制作成交互式报表,真正做到解放用户双手。
用户只需提供一些维度和度量数据,Sugar BI 依据数据模型和维度、度量,就能够主动生成可视化页面。不仅页面中会主动生成图表,也会帮忙用户主动增加一些过滤组件。用户能够依据本人需要,在主动生成的图表上做一些可视化的批改。
△图 5 Sugar BI 主动剖析性能展现
02 可视化技术剖析
2.1 Sugar BI 架构——有 AI 特色的可视化 +BI 剖析平台
Sugar BI 设计的定位是做一个有 AI 特色的可视化剖析平台。其中次要突出的三个特点别离是 AI、BI 和可视化。
Sugar BI 的整体架构图都是围绕 ”AI”、”BI” 和 ” 可视化 ” 这三大特点来构建的,它将 AI、BI、可视化这样的三个能力进行交融,最终应用容器化的技术进行打包和部署。
△图 6 Sugar BI 架构图
2.2 BI 能力:数据模型 + 灵便交互 + 数据计算
BI 能力方面,Sugar BI 反对对接丰盛的数据源品种,包含 Excel、各种关系型数据库 MySQL、Oracle 等、以及大数据数仓 Doris、ClickHouse 等,一共超过 30 种数据源,目前在国内反对数据源类型最全。除此之外,Sugar BI 反对了达梦、人大金仓、南大通用、华为 GaussDB 等国产数据库。
数据模型:BI 能力的最底层是数据模型,在数据模型层面 Sugar BI 能够实现单表查问、多表 Join,反对数据库外面的视图,同样也反对用户去写自定义 SQL 视图。并且,用户在进行拖拽操作时,Sugar BI 可能对数据表里的字段主动进行维度、度量的划分。
BI 引擎:数据模型的下层是 BI 引擎。BI 引擎是在数据模型的根底上,以数据模型技术去解析用户的交互,从而进行过滤条件和数据筛选,最终生成可能在数据库上运行的查问语句,包含反对数据的筛选,下钻,联动,还能够反对和 URL 的参数来做联动。
计算引擎:包含表计算、穿插计算、数据格式化等,并且在数据层面也能做监控预警和留存剖析这样一些比拟深层次的计算。
△图 7 Sugar BI“数据模型 + 灵便交互 + 数据计算”能力展现图
2.2.1 数据模型
市面上其余数据可视化的平台的毛病是须要用户去写 SQL 语句,而后将 SQL 语句查问的后果绑定到图表上。这对非技术的人员十分不敌对,因为须要用户懂 SQL 语句的书写,而且在开发的过程中须要重复的批改 SQL 语句,这样会导致整体的开发效率比拟低。
而在 Sugar BI 产品中,借鉴了 BI 的做法,将 BI 与可视化大屏的进行交融。除了写 SQL 语句之外,用户也能够通过数据建模,将数据通过拖拽的形式绑定到可视化图表上,所以 Sugar BI 产品的定位就是一个产品满足两个产品的需要。
总结起来,Sugar BI 数据模型有以下的劣势:
- 开放性的数据库:MySQL、SQL Sever、Postgre SQL、Oracle 等。
- 零代码:能够做到用户不须要写任何的 SQL 语句。
- 能够依据不同的数据源抹平其中不同数据库之间 SQL 语句的差别。
- 能够在获取数据表字段的时候会主动造成维度和度量的差异,还会主动取辨认天文字段。辨认策略次要有两种:
第一种是依据字段的数据类型,例如如果是字符串、日期会主动生成维度;如果是整数、小数等会主动生成度量。
第二种是依据字段名称、数据内容进行辨认,相似 ID、type 类型、正文,从而在维度和度量的主动生成上做一个智能的辨别,如果写的是省份 province / city,Sugar BI 会依据词性猜想字段为天文字段,不过用户也能够将维度和度量之间任意转换。
- 能够对度量进行惯例的聚合操作,其中包含 Sum,Average,Max,Min 等。
△图 8 Sugar BI 数据模型:零 SQL 代码,用户应用更简略
在 Sugar BI 中多表的 Join 应用的是雪花模型,能够主动的依据字段来抉择 Join 的形式。应用最近独特先人寻找法来解决查问的字段来自多个不同表的问题。
上面一共举了三个例子帮忙大家独特去了解(参考图 9 左半局部):
- 查问 Field 3、Field 6
因为 Field 3、Field 6 别离在 Table 2 和 Table 3 上面,所以咱们须要查问 Table1、Table 2、Table 3 的关联,能力把 Field 3、Field 6 同时查问进去。
- 查问 Field 3、Field 13
因为 Field 3、Field 13 别离在 Table 2 和 Table 7 上面,所以咱们只须要查问 Table1、Table 2、Table 3、Table 7 即可。
- 查问 Field 7、Field 13
因为 Field 7、Field 13 别离在 Table 4 和 Table 7 上面,所以咱们只须要查问 Table1、Table 2、Table 4、Table 3、Table 7 即可。
以上过程总结为机器了解的形式——最近独特先人寻找法。每一个在查的时候,他在往上寻找一个独特的先人,就能够解决这个问题了。
正是因为有 最近独特先人寻找法,所以才可能确保 Sugar BI 的模型在依据用户拖拽字段的时候,他才可能找到到底要从雪花模型中 Join 哪几个表,而后通过设置的 Join 关系可能主动的生成 SQL 语句。
△图 9 Sugar BI 数据雪花模型图
2.2.2 灵便交互
在简单场景下做 SQL 的 Where 筛选,就是要对数据进行过滤,对于左边非常复杂的 Where 筛选,Sugar BI 设计了右边的性能可能满足用户非常复杂的交互场景。
△图 10 Sugar BI 数据筛选示例图
Sugar BI 还反对聚合查问后的 Having 筛选,例如场景是查问年度总销售额大于 13 万的城市,对应到 SQL 语句的 Having 场景,是对数据聚合后再做一个筛选。
△图 11 Sugar BI 聚合查问后的 Having 筛选示例图_
交互式的数据筛选其中分为页面整体的过滤组件和单个图表的过滤组件。
△图 12 Sugar BI 过滤组件:交互式的数据筛选示例图
除了数据的筛选和过滤组件的联动以外,Sugar BI 还有 图表间的联动。例如:点击左侧地图,而后点击地图的某一个省份,想让左边的某一个组件展示省份的具体数据,这就是典型的图表联动成果。
△图 13 Sugar BI 图表联动、下钻
2.2.3 SQL 查问层面的数据计算
特点:最终都转化为 SQL 语句,在数据库层面进行计算。具体可做的计算操作包含:
- 数据格式转换
- 日期工夫的聚合计算
- 计算字段
- 分桶分组
2.2.3.1 二次计算
二次计算是指在 SQL 查问后果后的再次计算,二次计算能够基于 SQL 查问后果,在内存中进行多线程计算。
该计算产生在内存中。具体包含:
- 数据值映射
在很多场景下,用户数据库外面存的是代码,然而用户心愿能够将其展示为大多数人能够看懂的形式,这个时候就要用到数据值映射。Sugar BI 反对用户配置一对一的映射,数据值映射将这些不敌对的值映射为能够展现给用户的可浏览性强的值。
- 穿插透视表
- 共计、均值
- 表计算、疾速表计算
2.2.3.2 性能优化
Sugar BI 在性能优化方面做了如下尝试:
- 数据缓存:能够利用 Redis,确保同一个 SQL 只执行一次。每一次执行的后果,Sugar BI 能够帮忙执行后果进行缓存,从而达到较好的性能成果。
- 针对不同数据源的非凡优化:如 ClickHouse 的留存计算 Retention,通过调取不同数据源特有的性能函数去实现特有的性能。
- 异步多线程的表计算。
03 智能图表举荐
3.1 智能图表目标
智能图表作为智能语音交互的根底,能够依据数据的维度和字段,主动为用户举荐最合适的图表类型。同时,也反对用户依据需要自主切换图表类型。
3.2 智能图表举荐流程
智能图表首先是对系统外部 100 多种的图表进行形象,从图表中提取特色,例如依据折线图的属性,X 轴、Y 轴至多须要绑定一个字段。并且,用户在拖入字段的时候,Sugar BI 能够依据数据度量、维度、天文字段等形象为一个数据特色。
而后在图表举荐模块将图表的特色与以后用户输出的特色做一个匹配,之后举荐的图表有一个列表,并对列表中对每一个图表进行打分,最初进行排名将得分最高的图表举荐给用户。
△图 14 Sugar BI 智能图表举荐流程图
3.3 图表特色设计
设计的内容为:图表须要几个维度、几个度量、起码 / 最多能够搁置几个字段,依据这些信息总结成数据特色。
不过同一个图表也有很多变种,例如折线图里的折线能够是沉积或单个不沉积的模式,图表类型可能是折线 + 柱图混搭。在不同的变种的状况下,Sugar BI 也会设计数据特色从而达到较好的智能图表举荐成果。
△图 15 Sugar BI 图表特色设计
3.4 举荐策略
图表举荐策略设计,是针对每一个图表设计的,有两个规定:
第一个强制规定,是必须要满足的。如果强制规定里有一个没有满足,那么最初的得分为 0,零碎将不会为用户举荐此图表。
第二个是可选规定,有这个规定就能够加分。
举荐策略是硬性条件和加分条件的组合,强制规定之间做乘法,可选规定之间做加法,而后在每一个规定外面都会设计相应的权重。
3.5 规定设计
强制规定只有一个,就是为了确保用户须要剖析的每个字段都能在被举荐的图表中有所体现。
可选规定针对不同的图表就会不一样,它形容的是:
- 计算输出字段特色和图表特色对字段需要的类似水平
- 和日期字段无关的规定:例如依据日期的字段,零碎可能会优先举荐折线图。因为折线图比拟适宜展示日期下面的稳定状况。
- 和度量单位无关的规定
△图 16 Sugar BI 举荐策略
04 智能语音交互
4.1 语音问答整体计划
问答模型基于数据模型实现的。数据模型中的同义词、举荐问题、维度数据、Schema 构造能够送入问答模型,紧接着问答模型就会做 NLU(自然语言了解)将数据模型了解透彻。
在用户问答的模型中包含两种形式:第一种是能够通过间接的文字输出形式;第二种是能够通过大屏或挪动端的语音输入而后转换为文字。最终问答模型外面是一个文字了解的过程。
问答模型最终的输入后果,会将问题主动了解为要查问数据模型的哪些字段并且要做一些什么样的数据筛选比方:排序、聚合运算,最初通过 Sugar BI 智能图表的转换过程最终出现一个可视化的后果。
△图 17 Sugar BI 智能语音交互的整体计划示例图
05 下一步打算及 BI 将来方向
5.1 BI 剖析的趋势
下一步打算聚焦在 AI 剖析的过程上,次要能够分为以下三个品种的剖析:
- 归因剖析:指某一指标产生的较大的变动时,可能帮用户主动找到是哪些维度引起的,每个维度的别离影响的贡献度是多少,都能够通过归因剖析来进行量化。该性能目前已上线。
- 异样剖析:指的是数据产生激烈变动时须要找到起因,后续会和归因剖析一起进行。异样剖析个别都是零碎被动剖析而后主动地将异样报进去,不须要用户独自去进行操作。所以会联合数据预警,出现异常的时候就被动给用户发预警。该性能目前已上线。
- 预测剖析:指的是在历史数据的根底上,利用机器学习、AI 算法等一些策略,反对业务人员对后续的数据走势做出肯定的预测。这样 Sugar BI 就能更好的帮忙用户总结过来、展望未来,为用户的决策做更好的数据撑持。
有了 AI 剖析和智能化的交互,百度智能云认为传统 BI 的发展趋势就是“AI + BI”的能力交融!
△图 18 BI 剖析的趋势
————————END————————
举荐浏览:
品牌广告投放平台的中台化利用与实际
百度 APP Android 包体积优化实际(二)Dex 行号优化
百度 APP Android 包体积优化实际(一)总览
百度 APP iOS 端内存优化实际 - 大块内存监控计划
百家号基于 AE 的视频渲染技术摸索
百度工程师教你玩转设计模式(观察者模式)