2019杭州云栖大会回顾之Spark Relational Cache实现亚秒级响应的交互式分析

简介: 本文来自2019杭州云栖大会大数据生态专场中的分享《Spark Relational Cache实现亚秒级响应的交互式分析》

本文来自2019杭州云栖大会大数据生态专场中的分享《Spark Relational Cache实现亚秒级响应的交互式分析》


作者:王道远,花名健身,阿里云EMR技术专家,Apache Spark活跃贡献者,主要关注大数据计算优化相关工作。


视频链接:https://tianchi.aliyun.com/course/video?spm=5176.12282027.0.0.369a379cZrDREc&liveId=41101


Document_page_001

分四部分介绍阿里云EMR团队在Spark Relational Cache上的工作。
Document_page_002

项目介绍

EMR为用户提供了丰富的应用,可以进行各种数据分析。
Document_page_004

在云上进行数据分析时,需要在支持大规模数据的同时,实现快速的分析。Spark目前用户数量庞大,然而Spark目前的数据缓存机制,不支持缓存在跨会话共享,也需要使用者改写SQL查询才能利用缓存好的数据。
Document_page_005

Spark Relational Cache 内建于EMR Spark中,为这种场景提供了一种解决方案。
Document_page_006

Spark Relational Cache 用户透明且支持数据更新,未来还会支持缓存方案自动推荐。
Document_page_007

技术分析

核心技术主要分三部分:数据预计算、数据预组织、查询自动重写。
Document_page_009

数据预计算:由于数据之间是直接有关系的,查询间通常有一些通用模式。通过预计算可以大大加速查询。
Document_page_010

Spark Relational Cache 引入执行计划重写,用户无需修改查询语句即可使用缓存好的数据。
Document_page_011

下面是两个查询自动重写的简单示例。
Document_page_012
Document_page_013

数据预组织则是为了进一步优化读取预计算好的数据的过程。通过对数据进行排序和全局索引的构建,使用列式存储格式,在需要读取一定量的数据时,可以显著减少查询时间。
Document_page_014

如何使用

Spark Relational Cache 提供了 DDL 语句用于定义缓存。
Document_page_016

两种数据更新策略,在加速的同时能保证数据准确。Spark Relational Cache目前也支持基于分区的增量更新,后续会有更细粒度的增量更新支持。
Document_page_017

性能分析

用Star Schema Benchmark进行测试。
Document_page_019

由于EMR Spark的优化,1TB数据构建时间约为1小时,明显优于同类产品。
Document_page_020

使用 Spark Relational Cache 可以获得200倍以上的性能提升。
Document_page_021

欢迎加入Spark技术交流钉钉二群进行交流:
image

相关实践学习
数据湖构建DLF快速入门
本教程通过使⽤数据湖构建DLF产品对于淘宝用户行为样例数据的分析,介绍数据湖构建DLF产品的数据发现和数据探索功能。
快速掌握阿里云 E-MapReduce
E-MapReduce 是构建于阿里云 ECS 弹性虚拟机之上,利用开源大数据生态系统,包括 Hadoop、Spark、HBase,为用户提供集群、作业、数据等管理的一站式大数据处理分析服务。 本课程主要介绍阿里云 E-MapReduce 的使用方法。
相关文章
|
18天前
|
移动开发 分布式计算 Spark
Spark的几种去重的原理分析
Spark的几种去重的原理分析
22 0
|
1月前
|
机器学习/深度学习 SQL 分布式计算
Apache Spark 的基本概念和在大数据分析中的应用
介绍 Apache Spark 的基本概念和在大数据分析中的应用
209 0
|
1月前
|
机器学习/深度学习 SQL 分布式计算
介绍 Apache Spark 的基本概念和在大数据分析中的应用。
介绍 Apache Spark 的基本概念和在大数据分析中的应用。
|
1月前
|
SQL 分布式计算 HIVE
Spark数据倾斜问题分析和解决
Spark数据倾斜问题分析和解决
52 0
|
4天前
|
分布式计算 定位技术 Scala
使用spark基于出租车GPS数据实现车辆数量统计以及北京每个城区的车辆位置点数分析
使用spark基于出租车GPS数据实现车辆数量统计以及北京每个城区的车辆位置点数分析
|
4天前
|
机器学习/深度学习 数据采集 分布式计算
基于spark的大数据分析预测地震受灾情况的系统设计
基于spark的大数据分析预测地震受灾情况的系统设计
|
18天前
|
SQL 分布式计算 Spark
Spark3.x的Cache能不能让我在2022好好睡觉
Spark3.x的Cache能不能让我在2022好好睡觉
18 0
|
21天前
|
SQL 分布式计算 关系型数据库
Spark 分析计算连续三周登录的用户数
本文介绍了如何使用窗口函数`range between`来查询`login_time`为2022-03-10的用户最近连续三周的登录数。首先在MySQL中创建`log_data`表并插入数据,接着定义需求为找出该日期前连续三周活跃的用户数。通过Spark SQL,分步骤实现:1)确定统计周期,2)筛选符合条件的数据,3)计算用户连续登录状态。在初始实现中出现错误,因未考虑日期在周中的位置,修正后正确计算出活跃用户数。
|
1月前
|
分布式计算 Java 关系型数据库
|
1月前
|
SQL 分布式计算 数据可视化
数据分享|Python、Spark SQL、MapReduce决策树、回归对车祸发生率影响因素可视化分析
数据分享|Python、Spark SQL、MapReduce决策树、回归对车祸发生率影响因素可视化分析