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操作。
今天的分享到此就到这里结束了,关于交互式分析的更多功能请期待下期分享。
也欢迎大家进入我们的钉钉交流群,小编会实时在线为您解答各种疑难杂症!