天天看點

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
2019杭州雲栖大會回顧之Spark Relational Cache實作亞秒級響應的互動式分析
分四部分介紹阿裡雲EMR團隊在Spark Relational Cache上的工作。
2019杭州雲栖大會回顧之Spark Relational Cache實作亞秒級響應的互動式分析

項目介紹

EMR為使用者提供了豐富的應用,可以進行各種資料分析。

2019杭州雲栖大會回顧之Spark Relational Cache實作亞秒級響應的互動式分析

在雲上進行資料分析時,需要在支援大規模資料的同時,實作快速的分析。Spark目前使用者數量龐大,然而Spark目前的資料緩存機制,不支援緩存在跨會話共享,也需要使用者改寫SQL查詢才能利用緩存好的資料。

2019杭州雲栖大會回顧之Spark Relational Cache實作亞秒級響應的互動式分析

Spark Relational Cache 内建于EMR Spark中,為這種場景提供了一種解決方案。

2019杭州雲栖大會回顧之Spark Relational Cache實作亞秒級響應的互動式分析

Spark Relational Cache 使用者透明且支援資料更新,未來還會支援緩存方案自動推薦。

2019杭州雲栖大會回顧之Spark Relational Cache實作亞秒級響應的互動式分析

技術分析

核心技術主要分三部分:資料預計算、資料預組織、查詢自動重寫。

2019杭州雲栖大會回顧之Spark Relational Cache實作亞秒級響應的互動式分析

資料預計算:由于資料之間是直接有關系的,查詢間通常有一些通用模式。通過預計算可以大大加速查詢。

2019杭州雲栖大會回顧之Spark Relational Cache實作亞秒級響應的互動式分析

Spark Relational Cache 引入執行計劃重寫,使用者無需修改查詢語句即可使用緩存好的資料。

2019杭州雲栖大會回顧之Spark Relational Cache實作亞秒級響應的互動式分析

下面是兩個查詢自動重寫的簡單示例。

2019杭州雲栖大會回顧之Spark Relational Cache實作亞秒級響應的互動式分析
2019杭州雲栖大會回顧之Spark Relational Cache實作亞秒級響應的互動式分析

資料預組織則是為了進一步優化讀取預計算好的資料的過程。通過對資料進行排序和全局索引的建構,使用列式存儲格式,在需要讀取一定量的資料時,可以顯著減少查詢時間。

2019杭州雲栖大會回顧之Spark Relational Cache實作亞秒級響應的互動式分析

如何使用

Spark Relational Cache 提供了 DDL 語句用于定義緩存。

2019杭州雲栖大會回顧之Spark Relational Cache實作亞秒級響應的互動式分析

兩種資料更新政策,在加速的同時能保證資料準确。Spark Relational Cache目前也支援基于分區的增量更新,後續會有更細粒度的增量更新支援。

2019杭州雲栖大會回顧之Spark Relational Cache實作亞秒級響應的互動式分析

性能分析

用Star Schema Benchmark進行測試。

2019杭州雲栖大會回顧之Spark Relational Cache實作亞秒級響應的互動式分析

由于EMR Spark的優化,1TB資料建構時間約為1小時,明顯優于同類産品。

2019杭州雲栖大會回顧之Spark Relational Cache實作亞秒級響應的互動式分析

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

2019杭州雲栖大會回顧之Spark Relational Cache實作亞秒級響應的互動式分析

歡迎加入Spark技術交流釘釘二群進行交流:

2019杭州雲栖大會回顧之Spark Relational Cache實作亞秒級響應的互動式分析

繼續閱讀