SAP HANA技术总结

最近在查找HTAP相关的参考文献,打算顺便系统的出一个关于内存数据库商业系统的专题,内容当前可能不会很完善,但先mark后期再补充。第一篇文字主要是关于HANA系统的。

HANA系统(https://www.sap.com/products/hana/features/in-memory-database.html)是通过收购P*Time数据库,然后二次开发得到的。P*Time的文章见下文:

S. K. Cha and C. Song.P*TIME: Highly Scalable OLTP DBMS for Managing Update-Intensive Stream Workload. InProc. VLDB, pages 1033–1044, 2004 (http://www.vldb.org/conf/2004/IND2P2.PDF)

HANA的介绍文章:The SAP HANA Database – An Architecture Overview

HANA主打的功能是HTAP应用场景,同时在一个单一系统中处理OLTP和OLAP业务负载。HANA的主要组件如下图所示:

OLAP的数据是基于列存储的方式压缩存储的。每一列的数据基于排序字典进行压缩。压缩技术参见下文:

C. Lemke, K.-U. Sattler, F. Farber, and A. Zeier. Speeding Up Queries in Column Stores – A Case for ¨Compression. InProc. DaWak, pages 117–129, 2010

M. Paradies, C. Lemke, H. Plattner, W. Lehner, K.-U. Sattler, A. Zeier, and J. Kruger. How to Juggle ¨Columns: An Entropy-Based Approach for Table Compression. InProc. IDEAS, pages 205–215, 2010.

同时通过SIMD技术优化scan过程:

T. Willhalm, N. Popovici, Y. Boshmaf, H. Plattner, A. Zeier, and J. Schaffner. SIMD-Scan: Ultra Fast in-Memory Table Scan using on- Chip Vector Processing Units.Proc. VLDB, 2(1):385–394, 2009.

数据更新操作,借助一个delta storage的结构暂存,这个针对写优化结构会定期合并到主数据中。这部分工作在下文HYRISE系统(和HANA是一波人在搞)中提到:

J. Kruger, C. Kim, M. Grund, N. Satish, D. Schwalb, J. Chhugani, P. Dubey, H. Plattner, and A. Zeier.Fast ¨Updates on Read-Optimized Databases Using Multi-Core CPUs.Proc. VLDB, 5(1):61–72, 2011(http://www.vldb.org/pvldb/vol5/p061_jenskrueger_vldb2012.pdf)

他的主要思想是在列式数据库不适合插入,单独为每一列副本上维护一个csb+树。如下图

分布式连接操作的方式:

G. Hill and A. Ross. Reducing outer joins.VLDB Journal, 18(3):599–610, 2009.

HANA的OLTP业务处理仍然是基于列式数据的。个人认为HANA总体还是偏向于OLAP业务,虽然可以进行TP。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180730G0GVGA00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券