《交互式分析六脉神剑》之真正的秒级交互式响应
hi,大家好,今天为大家带来《交互式分析六脉神剑》之第三剑中冲剑--秒级交互式响应。
第一剑:5分钟学会交互式分析?!
第二剑:《交互式分析六脉神剑》之HoloStudio初体验
金庸武侠中的中冲剑是指:右手中指—阳明—胃经—中冲剑,其特点:大开大阖,气势雄迈。正好对应交互式分析的核心特点之一秒级交互式响应,今天小编就为大家介绍,秒级交互式响应如何体现在具体的数据开发实践中。
在离线大数据场景上,MaxCompute拥有着举足轻重的地位,但使用过MaxCompute的开发者们都会发现,针对简单查询能够满足业务要求,但是随着数量增多,查询query变得复杂时,响应速度会变得特别慢,满足不了实时交互的要求。而众所周知,交互式分析的核心功能之一是对MaxCompute离线数据加速查询。具体的加速体现在以下两个方面:(本案例均采用HoloStudio来进行演示,关于HoloStudio的介绍可参见HoloStudio简介)
简单场景
MaxCompute直接查询
针对简单查询场景,可以直接使用交互式分析进行查询,无需数据导入导出,就能实现实时查询。
示例如下:在MaxCompute中有一张小表(数据量约为1.5亿条)。
使用基于交互式分析的HoloStudio查询MaxCompute中的数据,只需要在HoloStudio中一键创建外部表即可。建表成功后,一键点击数据预览就能查看数据(注意:使用直接查询的方式数据仍然存储在MaxCompute中哦)
关于性能表现:直接查MaxCompute表中的200000条数据,用时1.7秒,真正做到秒级交互式响应。
MaxCompute导入查询
随着数据量的增多,大家会发现,使用交互式分析进行直接MaxCompute查询响应也会有一丢丢的吃力,这时,可以将MaxCompute中的数据导入进交互式分析进行查询。具体导入步骤可以参见用户手册:导入查询
示例采用同一张MaxCompute表数据(约1.5亿条数据),将表导入交互式分析中(数据存储在交互式分析中),查询其中的200000条数据,用时约0.8秒,比用交互式分析直接查询MaxCompute数据快将近1.5倍。
随着MaxCompute中数据量逐渐变多时,交互式分析的查询响应更是表现惊人,这背后的技术离不开我们自研的系统架构。关于交互式分析架构的了解可以参见架构介绍。
复杂场景
但其实在真实的场景中,开发者/数据分析师不仅仅只对单一表进行简单查询,更多的是对多表做复杂关联分析、多维分析等。下面通过一个示例来具体展示,交互式分析中对MaxCompute海量数据复杂查询的性能表现:
本示例中MaxCompute两张表的数据量分别为:6亿条和5千万条。
交互式分析直接加速复杂查询
使用交互式分析直接加速查询MaxCompute中的表数据,并做相同的复杂join,响应时间为:6.6秒。
交互式分析导入查询
相同情况下,将MaxCompute中两张表数据导入进交互式分析中,做相同条件的复杂join,响应时间:5.5秒。
通过以上场景的讲述,不管是直接加速还是导入查询,在查询响应的性能上都有着惊人的表现,尤其是随着数据量的增多以及查询的复杂度增加时,变现力更是惊人。但有朋友可能会有些疑惑,使用交互式分析直接查询和导入查询性能表现都很不错,到底该怎么选择呢?通俗来讲:
直接查询适用场景:数据量小于100GB的简单查询。
导入查询适用场景:单表查询大于100GB、复杂查询、含索引的查询、数据需更新、insert操作。
今天的分享到此就到这里结束了,关于交互式分析的更多功能请期待下期分享。
也欢迎大家进入我们的钉钉交流群,小编会实时在线为您解答各种疑难杂症!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Arthas 开源一周年,GitHub Star 16 K ,我们一直在坚持什么? | 10月25号栖夜读
点击订阅云栖夜读日刊,专业的技术干货,不容错过! 阿里专家原创好文 1.Arthas 开源一周年,GitHub Star 16 K ,我们一直在坚持什么? 最近看到一个很流行的标题,《开源XX年,star XXX,我是如何坚持的》。看到这样的标题,忽然发觉 Arthas 从 2018 年 9 月开源以来,刚好一年了,正好在这个秋高气爽的时节做下总结和回顾。阅读更多》》 2.码农节快乐|一个系统,高效解决复杂事件采集-计算-实时触达 今天是1024,一个特别的数字,比如某网站内容的解压密码通常都是1024,想求一个种子留言也是1024。1024是属于广大程序猿(又称码农)的节日,在这样一个节日里,各种“黑”程序猿的新老段子将纷纷出现在各大媒体网站。为什么程序猿属于经常被黑的一个群体?凌乱的发型、黑框眼镜、双肩包、格子衫、牛仔裤、运动鞋、钱多话少是很多人眼中的程序猿形象。阅读更多》》 3.Knative Service 是如何指定端口和协议的 如果使用 Knative Serving 部署一个 Nginx 你可能会发现服务起来了,但是无法访问到 Nginx 中的服务。当然这不是 Nginx...
- 下一篇
两分钟让你明白Go中如何继承
最近在重构代码的时候,抽象了大量的接口。也使用这些抽象的接口做了很多伪继承的操作,极大的减少了代码冗余,同时也增加了代码的可读性。 然后随便搜了一下关于Go继承的文章,发现有的文章的代码量过多,并且代码format极其粗糙,命名极其随意,类似于A、B这种,让人看着看着就忘了到底是谁继承谁,我又要回去看一遍逻辑。 虽然只是样例代码,我认为仍然需要做到简洁、清晰以及明了。这也是我为什么要写这篇博客的原因。接下里在这里简单分享一下在Go中如何实现继承。 1. 简单的组合 说到继承我们都知道,在Go中没有extends关键字,也就意味着Go并没有原生级别的继承支持。这也是为什么我在文章开头用了伪继承这个词。本质上,Go使用interface实现的功能叫组合,Go是使用组合来实现的继承,说的更精确一点,是使用组合来代替的继承,举个很简单的例子。 1.1 实现父类 我们用很容易理解的动物-猫来举例子,废话不多说,直接看代码。 type Animal struct { Name string } func (a *Animal) Eat() { fmt.Printf("%v is eating", ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS8编译安装MySQL8.0.19
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS关闭SELinux安全模块