深度干货!一篇 Paper 带您读懂 HTAP | StoneDB 学术分享会第①期
在最新一届国际数据库顶级会议 ACM SIGMOD 2022 上,来自清华大学的李国良和张超两位老师发表了一篇论文:《HTAP Database: What is New and What is Next》,并做了 《HTAP Database:A Tutorial》 的专项报告。 本篇文章,我们将系统地梳理一下两位老师的报告,带读者了解 HTAP 的发展现状和未来趋势。
-
背景介绍 。
-
HTAP Databases :分享最新的 HTAP 数据库技术,总结它们主要的应用场景与优缺点,并根据存储架构对它们进行分类。
-
HTAP Tecniques :介绍主流的 HTAP 数据库关键技术,包括事务处理技术、查询分析技术、数据组织技术、数据同步技术、查询优化技术以及资源调度技术等。
-
HTAP Benchmarks :介绍目前现有的主流 HTAP 基准测试。
-
Challenges and Open Problems :讨论 HTAP 技术未来的研究方向与挑战。
Part1 背景介绍
1. Motivation
Gartner envisioned that, HTAP techniques will<br>be widely adopted in the business applications<br>with real-time data analytics by 2024.
-
在购物节这种高并发的情形下,如果电商卖家能够实时地分析用户行为数据,并根据分析结果针对性地投放品类广告,这无疑会给卖家带来更多的收益。
-
银行在线上处理用户事务时还能实时地分析数据,从而检测判断该用户及其行为是否异常或者存在风险,这会让风控系统更加智能化。
-
第一阶段(2010-2014) :HTAP 数据库主要是采用主列存(primary column store)的方式。如SAP HANA、HyPer、DB2和BLU等。
-
第二阶段(2014-2020) :HTAP 数据库主要是扩展了以前主行存的技术,在行存上加上了列存。如SQL Server,Oracle和L-store等。
-
第三阶段(2020-present) :HTAP 数据库主要是开启了分布式的架构实现,满足高并发的请求。如SingleStore、MySQL Heatwave和Greenplum等。
-
行存(Row Store) :比较适合OLTP。
-
Row-wise,update-heavy(重更新),short-lived transactions(短时延事务)
-
列存(Column Store) :比较适合OLAP。
-
column-wise,read-heavy,bandwidth-intensive queries(带宽敏感查询)
2. A trade-off for HTAP databases
-
高的工作负载隔离会导致较低的数据新鲜度
-
低的工作负载隔离会获得较高的数据新鲜度
3. Challenges for HTAP databases
-
挑战一: 数据组织 (Data Organization)
-
挑战二: 数据同步 (Data Synchronization)
-
挑战三: 查询优化 (Query Optimization)
-
挑战四: 资源调度 (Resource Scheduling)
Part2 HTAP 数据库
-
主行存储+内存中列存储 (Primary Row Store + InMemory Column Store)
-
分布式行存储+列存储副本 (Distributed Row Store + Column Store Replica)
-
磁盘行存储+分布式列存储 (Disk Row Store + Distributed Column Store)
-
主列存储+增量行存储 (Primary Column Store + Delta Row Store)
a. 主行存储+内存中列存储
-
TP 吞吐量高
-
AP 吞吐量高
-
数据新鲜度高
-
AP 扩展能力低
-
负载隔离性低
案例研究1:Oracle Dual-Format
-
SIMD:单指令多数据
-
Max-Min Zone Map
-
Vector Group By:向量化
案例研究2:SQL Server
-
Persistent Column Store:持久化列存
-
Updatable:可更新
总结
b. 分布式行存储+列存储副本
-
负载隔离性高
-
扩展性高
-
数据新鲜度低
案例研究:F1 Lightning
总结
c. 磁盘行存储+分布式列存储
-
负载隔离性高
-
AP吞吐量和扩展性高
-
数据新鲜度不高
-
Medium(On-premise):部署在本地,在不同机器上会有数据新鲜度的牺牲
-
Low(Cloud-based):部署在云端,网络延迟会影响数据新鲜度
案例研究1:MySQL Heatwave
-
Auto-pilot service:自动调优(一些云服务,可以在系统中自动帮客户实现数据分区、查询优化和资源调度等等)
-
Auto-Sunc:自动同步(可实现定时定量同步数据)
案例研究2:Oracle RAC
-
Auto-Sunc:自动同步(基于阈值的方式)
总结
d. 主列存储+增量行存储
-
数据新鲜度高
-
AP吞吐量高
-
TP可扩展性不高
-
负载隔离性不高
案例1:SAP HANA
案例2:Hyper(Column)
总结
四种架构HTAP数据库的对比