双引擎驱动Quick BI十亿数据0.3秒分析,首屏展示时间缩短30%

简介:在规划中,Quick BI制定了产品竞争力建设的三大方向,包括Quick(快)能力、移动端能力和集成能力。针对其中的产品“报表查看打开慢”“报表开发数据同步慢”等性问题开展专项战役——Quick战役,以实现展现快、计算快,为使用者提供顺滑体验为目标。

“Quick”是产品始终追求的目标

Quick BI数据可视化分析平台,在2021年二次入选了Gartner ABI魔力象限,这是对产品本身能力强有力的认证。在不断夯实B I的可视化体验和权限管控能力之外,推进Quick BI的全场景数据消费能力,让数据在企业内最大限度的流转起来。

在规划中,Quick BI制定了产品竞争力建设的三大方向,包括Quick(快)能力、移动端能力和集成能力。针对其中的产品“报表查看打开慢”“报表开发数据同步慢”等性问题开展专项战役——Quick战役,以实现展现快、计算快,为使用者提供顺滑体验为目标。

双引擎成就Quick全新体验

无论是开发者还是阅览者,若想要在使用Quick BI的过程中获得流畅快速的体验,可能在这两个方面进行优化:

在数据报表开发的过程中,大量级数据需要在一定范围的时间内响应,即计算要快;

面对报表的查看者,首屏打开和下拉加载的时间需要在一定范围内完成,即展现要快。

Quick BI推出计算引擎和渲染引擎,以双引擎的方式为产品全力加速。

1、计算引擎(Quick引擎)

包含原有直连模式,新增加速模式、抽取模式、智能缓存模式,用户按照不同场景的不同需求,通过配置开关进行模式的选择。在数据集开发和数据作品制作的过程中获得加速体验,可以有效提升用户报表的数据查询速度,减少用户的数据库查询压力。

实时加速

基于 MPP 内存计算引擎,查询中实时从数据库(调/读)取数据,并在计算引擎的内存中进行计算,有效提升用户数据计算的性能,适用于对数据时效有高要求的情况。

抽取模式

把数据库或数仓的数据抽取到Quick引擎的高性能列式存储引擎中,支持全量模式和增量模式,分析计算负载直接在Quick BI引擎中进行,充分利用Quick引擎性能的同时,降低用户数仓的负担,适用于没有独立数仓或数仓负载过重的情况。

智能缓存

提供的2种缓存模式都可以直接返回结果,提升用户查询速度,减少数据库访问次数。

数据集缓存

将用户已经查询过的结果缓存在 Quick BI 高速缓存组件内,一段时间内完全一致的查询可以直接返回查询结果。

智能预计算

算法根据用户的历史查询记录,对数据集的查询进行预聚合,提前计算出用户所需的结果,保存在高性能存储中。一旦用户查询命中,则直接返回结果。

2、渲染引擎

负责取得肉眼可见页面的内容,包括图像、图表等,并进行数据信息整理,以及计算网页的显示方式,然后输出并展现。由于BI场景的报表(仪表板、电子表格、门户等)内容相当复杂,渲染引擎的加速可以非常直接的影响Quick BI报表的打开速度,优化用户的报表阅览体验。渲染引擎的加速动作无需进行任何配置,无声地服务整个分析流程。

渲染引擎进行了如下整体升级:

  • 资源(js/css/ajax等)加载优化:包括预加载、按需加载、任务调度、TreeShaking等
  • 前端计算&执行优化:数据流节流、懒数据策略、mutable改造、深克隆等计算优化等
  • 可视化升级:底层可视化统一,桑基图等大数据量下解析优化、渲染次数收敛等
  • 移动端升级:包体积优化(压缩前20.6M减少至5.6M)、图表预加载、资源本地化缓存等
  • 查询链路优化:支持 MaxCompute 加速查询、登录层优化、防止配置查询缓存穿透、缓存优化等
  • 性能工具升级:SQL诊断支持 MaxCompute 数据源,并支持 SQL 诊断工具的国际化等

利用五种机制整体提升渲染引擎作业效果

任务调度机制

支持在各段加载和执行流程中利用组件或函数控制CPU时间和网络占用优先级,从而将首屏内容的展示时间点缩短至少了30%。

截流渲染机制

支持Redux类数据流体系,以配置化方式控制单位时间组件渲染次数,组件平均渲染次数减少90%以上。

按需计算机制

按需加载和执行JS逻辑组件及其资源,利用LazyObject思路(即:使用时初始化执行,而非定义时)进行按需调用,LazyCache思路(即:命中时计算和缓存,而非实时)进行数据流模型计算,节省约30%的CPU时间以及40%的网络占用。

预加载机制

通过将原本串行依赖的流程逻辑按不同时机并行(如:当页面拉取JS资源时同时拉取后端数据,在空闲时预加载下一屏内容),根据历史使用习惯预先加载后续可能访问的内容,达到瞬时查看的效果。

资源本地化缓存机制

将js等资源本地化的形式,加上根据不同设备(移动端等)的资源管理策略,有效解决系统内存释放导致的缓存失效,弱网环境导致的资源加载缓慢等问题。

经过一系列核心能力的升级和特定场景的针对性优化,操作平均FPS(每秒传输帧数)可达55左右,较复杂报表下,首屏加载时间也从最初18秒降至3秒以内(中等简单报表2秒内),结合Quick引擎,还可以支持10亿级数据量的报表3秒内展现。

典型场景下的性能体验全面提升

1、数据开发视角的场景方案

(1)报表展示的数据在一定时间内固定不变

有些客户对数据需要每天进行一次汇总,并通过 Quick BI 的可视化图表以日报形式展示出来。这些展示的数据在下一次汇总之前都不会发生变化,同时这些汇总数据比较固定,不需要阅览报表的人主动更改查询条件。

如是场景,推荐开启数据集上的缓存功能。用户可以自行设置缓存的有效期,在有效期内,相同的查询会命中缓存,直接将该周期内第一次查询的结果毫秒级返回。以上述场景为例,用户可以开启 12 小时的缓存,这样日报只会在第一次打开时进行数据查询,之后一整天的时间,一旦客户点击打开,报表就会立刻展现。

(2)报表数据存在较多变化,对非实时数据进行分析

以大促为例,商家在活动结束后,对大促期间的销量、营业额以及营销投放效果进行复盘。数据分析包含很多维度,比如类目、地区、部门等等。商家的分析师或者决策者在查看报表时,往往会对维度进行调整、变更、钻取,来获得更加深入的洞察。这个场景下用户数据查询的动作多变,上述的缓存策略往往很难命中。

此时,可以在数据集的 Quick 引擎中开启抽取加速。抽取加速默认全表加速,允许用户同步T-1 的数据到 Quick 引擎高性能存储及分析模块中,后续的查询和计算会直接在 Quick 引擎中进行,减少用户数据库的性能压力。抽取加速可以做到亿级数据,亚秒级响应。

与此同时还可以开启智能预计算模式, 会对用户的查询历史进行分析, 提前对可能的查询进行预聚合。用户的查询如果命中,则会直接返回聚合结果。

(3)用户数据源查询慢,但对数据实时性有要求

有的用户,数仓里的数据每天都在实时变化。以仓储管理为例,仓库里每天货物的进出是动态的,这些数据会实时落到数据库里,而客户希望能够通过 Quick BI 的报表,对这些动态数据进行分析。显然,上面提到的缓存方案以及抽取加速都无法达成这个目的。

对于这类用户来说,他们可以在数据集的 Quick 引擎里开启实时加速, 通过引擎内置的 MPP 内存计算引擎,对数据进行实时的内存计算,从而达到加速的目的。

开启了 Quick 引擎的实时加速,可以做到亿级数据,秒级响应。

(4)用户查询依赖维度值的获取

企业如果需要以产品类目为维度,对销售记录进行分析。这个时候,就会用到 Quick BI 的查询控件,以下拉列表的方式对“类目”这个维度的值进行展示和选择。

以服装公司为例,共有100 个产品类目,销售记录上千万条。这个时候从完整的销售记录里获取类目值,效率太低。可以使用 Quick BI 提供的维值加速方案, 将类目的维度表配置进维值加速功能,此时100 个类目仅对应 100 行数据,而不再是原来的上千万条。

再获取类目下拉列表时,就会直接从维度表中读取,大大提升下拉列表里维度值的获取效率。

2、Quick BI阅览者视角的加速效果

(1)即席分析表格

500W单元格,秒级渲染完毕(60 FPS),操作流畅:

(2)报表首屏打开

基于双引擎,在1亿行数据,20个图表组件,常规聚合类查询下进行标准测试,一个标准复杂报表可在2秒内展现:

原文链接

本文为阿里云原创内容,未经允许不得转载。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/511575.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Quick BI产品核心功能大图(六)开放集成

简介:企业想要拥有领先的数据分析能力,自研往往需要投入巨大的人力和财力。 Quick BI作为唯一一个连续两年入选Gartner魔力象限的中国BI产品,具备强大的全链路开放集成能力,可以轻松的与企业原有系统匹配融合,帮助企业…

低复杂度 - 服务网格的下一站

作者 | Addo Zhang来源 | 云原生指北译者:作为一个曾经在新造车公司的基础架构团队任职,为支持公司的“互联网基因”和“数字化转型”落地了云原生基础设施平台,并在尝试采用服务网格未成的我来说,看到这篇文章深有感触。尤其是文…

ADBPGGreenplum成本优化之磁盘水位管理

简介:本文我们将通过一个实际的磁盘空间优化案例来说明,如何帮助客户做成本优化。 作者 | 玉翮 来源 | 阿里技术公众号 一 背景描述 目前,企业的核心数据一般都以二维表的方式存储在数据库中。在核心技术自主可控的大环境下,政企…

阿里云图数据库GDB V3引擎发布,加速开启“图智”未来

简介:无论是学术界还是产业界,都对图数据库有比较高的预期。Gartner发布的《2021年十大数据和分析技术趋势》中提到:“到2025年图技术在数据和分析创新中的占比将从2021年的10%上升到80%。”应用需求推动着技术的发展,在GDB V3的引…

阿里云EMR Remote Shuffle Service在小米的实践

简介:阿里云EMR自2020年推出Remote Shuffle Service(RSS)以来,帮助了诸多客户解决Spark作业的性能、稳定性问题,并使得存算分离架构得以实施,与此同时RSS也在跟合作方小米的共建下不断演进。本文将介绍RSS的最新架构,在…

Spring Boot Serverless 实战系列 | 性能调优

简介:Spring Boot Serverless 实战系列第四篇来啦,本文将向大家介绍如何对 Serverless 应用进行性能调优。 SpringBoot 是基于 Java Spring 框架的套件,它预装了 Spring 的一系列组件,让开发者只需要很少的配置就可以创建独立运行…

消息队列 RocketMQ 遇上可观测:业务核心链路可视化

简介:本篇文章主要介绍 RocketMQ 的可观测性工具在线上生产环境的最佳实践。RocketMQ的可观测性能力领先业界同类产品,RocketMQ 的 Dashboard 和消息轨迹等功能为业务核心链路保驾护航,有效应对线上大规模生产使用过程中遇到的容量规划、消息…

30人的产研团队如何高效协同?

简介:工具选型及使用建议对于中小企业,基本都不会自己搭建服务器和机房进行部署,而是选择各大云平台,选择一款SaaS项目管理工具可以极大的降低运维成本。 作者介绍:以诺行CTO 刘自强 团队使用云效3年 团队协作需求 …

从 Flink Forward Asia 2021,看Flink未来开启新篇章

简介:本文将对FFA Keynote议题作一些简单的归纳总结,感兴趣的小伙伴们可以在FFA官网[2]找到相关主题视频观看直播回放。 作者 | 梅源(Yuan Mei) 来源 | 阿里技术公众号 律回春晖渐,万象始更新,这句诗用来形…

从需求到开源,如何做到刮目相看?

作者 | 👽来源 | 前端Sharing一、一切根源都从无厘头需求开始最近在开发业务项目的时候,产品小姐姐突然来到我身边,然后就对着电脑一顿操作,具体场景大致是这样的。场景一:如上图所示,当在数万级别的数据中…

如何高效完成ECS多环境部署?

简介:通过本文,你可以了解到,如何通过云效流水线有效拉通开发与运维,打破二者之间的壁垒墙,让开发与运维高效联动。在软件开发和部署过程中,我们的软件往往需要在不同的运行环境中运行,例如&…

技术探秘: 360数科夺得ICDAR OCR竞赛世界第一

ICDAR(国际文档分析与识别会议)是OCR识别领域最权威的会议之一。近期,360数科在ICDAR2019-SROIE(Results - ICDAR 2019 Robust Reading Challenge on Scanned Receipts OCR and Information Extraction - Robust Reading Competition) 榜单上…

云原生时代,软件交付有何不同 | 研发效能提升36计

简介:从今天起,我们将开启一个新的专栏:《研发效能提升36计_持续交付篇》。专栏将通过10-20篇文章,系统分享云原生时代,企业如何落地持续交付。 编者按:从今天起,我们将开启一个新的专栏&#…

php 获取字符串完整拼音,PHP 获取中文字符串的首字符拼音字母

class"php"><?php header(Content-Type: text/html; charsetutf-8);$str"阅谁问君诵&#xff0c;水落清香浮";echo getFirstCharCode($str);function getFirstCharCode($str){$str iconv("UTF-8","gb2312", $str);$targetChar*…

IT人的年夜饭,也太香了吧

简介&#xff1a; 平时的IT人&#xff0c;奋战在修复bug前线&#xff0c;起早与贪黑齐飞&#xff0c;调休共假期待定。到了新春佳节&#xff0c;对于IT人来说&#xff0c;没有什么是比一顿年夜饭更让人熨贴肺腑的了。为了让废寝忘食编程序、闻机起早保运维的IT人过一个安稳的好…

小红书消息中间件的运维实践与治理之路

简介&#xff1a;近年来&#xff0c;消息领域的全面云原生化逐渐走向深入&#xff0c;比如 RocketMQ 5.0 版本的存算分离设计和 raft 模式&#xff0c;再比如 Kafka3.0 引入了分层设计的方式&#xff08;tiered storage&#xff09;和 raft 模式&#xff0c;以及近年来新崛起的…

爆测一周,22年必看最细致代码托管工具测评

简介&#xff1a;网上代码托管选型的文章不少&#xff0c;不过大多内容有点久远&#xff0c;很多最新的平台没有包括进来&#xff0c;个人花了大概一个星期的时间&#xff0c;把目前市面上比较火的代码托管平台&#xff08;开源托管平台&#xff1a;Github、Gitee&#xff1b;企…

read 文件一个字节实际会发生多大的磁盘IO?

作者 | 张彦飞allen来源 | 开发内功修炼在日常开发中一些看似司空见惯的问题上&#xff0c;我觉得可能大多数人其实并没有真正理解&#xff0c;或者理解的不够透彻。不信我们来看以下一段简单的读取文件的代码&#xff1a;上图中的代码仅仅只是对某个文件读取了一个字节&#x…

【指标需求思考】如何做好指标类需求建设

简介&#xff1a;大家一直所说的【需求】究竟有哪些&#xff1f;用户需求、业务需求、系统需求...... 但是今天我要给大家介绍一种我自认为一种别出心裁的需求&#xff01;【指标类需求】在庞大的需求体系里&#xff0c;一个完整的系统设计流程是非常必要的&#xff0c;好则效率…

oracle 12c 低版本,oracle高版本迁移数据到低版本(12c至11g)方法

1.12c版本信息&#xff1a;2.11g版本信息&#xff1a;3.查看12c的字符集编码&#xff1a;select userenv(language) from dual;要迁移的两个数据库字符集编码要保持一致。如果不一致请手工修改&#xff0c;修改方法另行百度。4.查看11g数据库字符集编码&#xff1a;5.查看12c数…