基本信息
- 原书名:In-Memory Data Management:Technology and Applications,Second Edition
- 原出版社: Springer; 2nd ed. 2012 edition
【插图】

编辑推荐
作者多角度多方面的全新完美演释
内存数据管理与列存储相结合
多核和多台计算机上并行化的实现
利用压缩技术提高性能并节省空间
内容简介
计算机书籍
试想您住在美国的一个大城市里。现在,想象一下每次您需要一杯水时,您不是去厨房取,而是需要先开车到机场,接着坐上飞机飞到德国,然后在那拿起一杯水。从现代CPU 的角度来看,访问内存数据就如同从厨房取一杯水。而访问计算机硬盘中的数据就好比飞到德国去取一杯水。在过去,主存的成本高昂,于是必须飞到德国去取水。然而,过去几年,主存每 MB 的成本显著降低,最终使得从厨房取一杯水成为有成本效益且更加便利的选择。
这种访问时间上的巨大差别对于企业级应用有重大影响。在过去由于花费时间过长而未曾考虑过的事情现在已经成为可能,这有助于企业将之前以臆测和猜测为主的工作转变为切实的洞察力。
本书中所述的内存计算革命不仅仅是指将数据存储于内存中,以便更快地进行访问。我们还阐述了 IT 行业其他两大趋势的融合:(a)多核CPU 的出现以及软件并行化的必要性(b) DRAM 访问延迟造成的阻塞,要求软件巧妙地平衡CPU和内存活动;需要利用以上两点以真正挖掘潜在性能优势。我们介绍的内存数据管理愿景的另一个重要方面是,底层数据库中数据存储方式的变化。正如下面的章节所述,这与我们所关注的企业级应用的关系尤为密切。内存数据管理的作用就在于将所有这些联系在一起。
内存数据管理与列存储相结合
我们的经验表明,许多企业级应用利用数据库的方式相似。在执行期间,他们处理大量数据行,但最为关键的是,只有表中的一小部分数据列可能会对某项特定查询有用。本书中所述的列存储模型允许仅读取所需列,而表中其余部分则可以忽略。传统的行优先模型则不同,必须访问表中的所有列,即便是对结果来说不必要的列也在访问范围之内。
列存储模型也意味着将给定列中的元素存储在一起。而在行优先模型中,给定列中的数据与行中的其他数据存储在一起,因而企业级应用常见的聚集操作在列存储模型中的速度要比在行优先模型中快得多。
多核和多台计算机上并行化的实现
单个 CPU内核的速度不会再快些,而 CPU 内核的数量却仍有望每 18 个月翻一番。因此利用多核 CPU 的并行处理能力对未来的软件开发至关重要。正如之前所述,内存列存储将给定列中的数据一起存储在内存中,从而便于分配一个或多个内核来处理单列。这称为垂直分片。
同时,也可将表分成数据行集合,然后再分配至不同的处理器,这一过程称为水平分片。水平分片在数据量持续增加时尤为重要,且在数据仓库应用程序的并行化中取得了部分成功。不但在单个多核计算机上,而且在群集或数据中心中的多台计算机上均可应用这两类方法。
利用压缩技术提高性能并节省空间
数据压缩技术利用数据冗余性和有关数据领域的知识。压缩尤其适合于企业数据管理场景中的列存储,因为同一列中的所有数据(a)具有相同的数据类型(b)在很多情况下,有很少数量的唯一值,比如在国家列或状态列中。在列存储中使用压缩技术有两个原因:节省空间和提高性能。
空间的有效利用对于内存数据管理尤为重要,这是因为,即使主存成本已大幅下降,然而与磁盘相比,它相对而言依然更加昂贵。由于在列中进行了压缩,因此与空间消耗相关的信息密度得到了提高。这样一来,每次便可加载更多的相关信息,从而提高了性能。与行存储相比,它需要的加载操作更少。因为在行存储中,对于查询来说不相关的列也被加载,但却没有被利用。
结论
目录
引言
第一部分企业级应用的转折点
第 1 章 可取性、适用性、可行性——内存计算技术的影响
1.1 实时信息——随时随地获取任何信息
1.1.1 思想速度般的响应
1.1.2 实时分析和动态计算
1.2 最新硬件趋势的影响
1.2.1 企业级应用的数据库管理系统
1.2.2 主存是新磁盘
1.2.3 从最大化 CPU 速度到多核处理器
1.2.4 增加的 CPU 和主存之间的带宽
1.3 通过内存数据管理降低成本
1.3.1 总体拥有成本
1.3.2 企业系统中的成本因素
1.3.3 内存计算的性能促进成本降低
1.4 结论
第 2 章 企业级应用为何如此繁杂零乱
2.1 当前的企业级应用
2.2 企业级应用范例
前言
本书第一版已经出版了一年有余。在这一年间,内存计算技术对企业级计算与应用市场产生了重大影响,使其真正成为一个技术拐点。由于这一发展,以及由此引发的新问题,有必要扩充本书至第二版。
第二版中的新内容主要侧重于数据密集型应用程序的开发和部署,数据密集型应用程序的设计需要尽可能利用内存数据库系统的功能。在其他新增内容中,6.1.1 章节介绍了内存应用程序编程模型,涵盖了开发内存应用程序的重点和指导原则。为减轻应用程序开发人员和数据库管理人员的工作负荷,我们在6.1.5 章节探讨了图形化创建数据库视图。最后,对应用程序层上的新功能作了详细说明,例如6.2.4 章节中数据分析和文本搜索的组合以及9.2 章节中两个行业案例的展示。
当然,如果没有我们企业平台的学生们以及集成概念主席的帮助,我们不可能在这么短的时间内完成本书第二版的编纂工作。因此,除了在第一版序言中对他们的付出和努力表示感谢之外,在这里我们还想再次感谢他们。
2012 年 3 月 1 日,波茨坦 哈索(HassoPlattner)
亚力山大?泽埃尔(Alexander Zeier)
第一版前言
我们写这本书,是因为我们深信内存计算技术的运用将成为企业级应用的转折点。在过去几年里,内存单价下降,内存容量大幅增长。这就需要重新思考如何存储海量数据。现在我们可以将数据库主要数据的副本存储在内存中而不是机械磁盘中,这样可以使性能得到几个数量级的提升,并且使得全新的应用成为可能。这种数据存储方式的改变正在并将继续对企业级应用产生重大影响,进而最终影响企业的运营方式。企业决策者能够以思想般的速度获得实时信息,他将具备前所未有的洞察力。
本书面向特定的读者群。他们将了解数据管理方式的根本性转变如何影响企业级应用。我们希望本书能对想充分利用内存计算来创建新业务流程的在校大学生、IT 专业人员、IT 经理和高级管理层有所启发。
本书分为三个部分:
? 第一部分概述我们的愿景,即内存计算技术如何改变企业级应用。这一部分适用于所有读者。
?第二部分更深入地阐述我们打算如何实现愿景。这一部分适用于那些希望深入了解内存数据管理的学生和开发人员。
? 第三部分阐述内存计算对企业级应用开发和功能所带来的深远意义。这一部分适用于技术人员和业务型读者。
一本书往往凝聚着许多人的心血,绝非仅靠作者完成。在此,我们要特别感谢德国波茨坦大学哈索?普拉特纳学院的“企业平台和集成概念”小组的全体成员。HANA 研究小组的成员包括:安佳?伯格(Anja Bog)、马丁?格伦德(Martin Grund)、延森?克鲁格(Jens Krüger)、史蒂芬?穆勒(Stephan Müller)、简恩?夏弗纳(Jan Schaffner)和克里斯汀?缇娜芬德(Christian Tinnefeld)。在过去的 5 年里,他们一直专注于内存计算应用领域的研究。他们的研究为本书的撰写奠定了坚实的基础。此外,瓦迪姆?波罗夫斯基(Vadym Borovskiy)、托马斯?科沃科(Thomas Kowark)、拉尔夫?屈内(Ralph Kühne)、马丁?洛伦兹(Martin Lorenz)、杰根?穆勒(Jürgen Müller)、奥克斯德?帕奇可(Oleksandr Panchenko)、马斯恩?夏普拉娜(Matthieu Schapranow)、克里斯汀?施瓦兹(Christian Schwarz)、马提亚?艾弗拉克(Matthias Uflacker)和约翰尼斯?伍斯特(Johannes Wust)也为本书的编写做出了巨大贡献。我们的助手安德里亚?兰格(Andrea Lange)也一直在帮助进行协调工作。此外,在编写本书的过程中,我们还得到了许多 SAP 同事的热心帮助。如果没有他们的支持,本书将无法顺利面世。卡夫尔?涂森(Cafer Tosun)在 HPI 和 SAP 之间起着桥梁作用,他不仅负责协调我们与 SAP 的合作关系,而且还积极为本书提供部分章节内容。其团队成员安德鲁?麦考密克史密斯(Andrew McCormick-Smith)和克里斯汀?马蒂斯(Christian Mathis)为本书提供了许多重要文字段落。借此书付梓之际,我们衷心感谢乔斯?亨德瑞克?布斯(Joos Hendrik Boese)、伯恩哈德?菲舍尔(Bernhard Fischer)、依娜?福克斯(Enno Folkerts)、安德烈亚斯?赫歇尔(AndreasHerschel)、塞拉?卡佩斯(Sarah Kappes)、克里斯汀?穆克尔(Christian Münkel)、弗兰克?伦克思(Frank Renkes)、弗雷德里克?全斯尔(Frederik Transier)所付出的辛勤劳动。我们衷心感谢保罗?霍夫曼(Paul Hofmann)为本书付出的心血,感谢他帮助管理我们与美国各大学共同合作的研究项目。此外,我们的研究成果也离不开其他 SAP 同事的热心帮助。在此,我们特别感谢弗朗兹?法波(Franz F?rber)及其团队所提供的反馈意见,以及他们在过去几年里对我们的研究成果所做出的卓越贡献。我们在整本书中提及的许多想法都源自弗兰兹。此外,他还负责 SAP 内部实施事务。对此,我们要特别赞扬。
最后,我们要感谢 SAP 首席技术官维舍尔?斯卡(Vishal Sikka)。他一直鼎力支持我们的研究工作,并亲身参与其中。另外,我们还要衷心感谢 SAP 首席运营官格哈德?奥斯瓦德(Gerhard Oswald)和 SAP 联合首席执行官吉姆?哈格曼?施杰翰 (Jim Hagemann Snabe) 与比尔?孟鼎铭(Bill McDermott)对我们项目的长期支持。
序言
提到为实时数据库分析制定权威的业务解决方案,在这个世界上还能有谁比哈索更有资格?他能够利用最新硬件技术趋势并结合自身对企业资源数据库设计的深刻理解,详细描述解决方案的技术细节。
哈索既是大型跨国公司SAP的首席执行官,又是一家领先研究机构的计算机科学教授。他与同事们共同构建了 ERP 主内存数据库的工作原型。这一举措再次强有力地证明,哈索是一个为自己坚信的东西全力拼搏的人。随着内存容量的快速增长、单处理器内核个数的日益增加,哈索和他的同事们充分利用这一技术潮流,共同研发了 SanssouciDB,表明在企业系统中,联机事务处理系统(OLTP)和联机分析处理系统(OLAP)已没有必要分离。
业务主管可即席查询生产交易数据库,并快速得到结果。而在过去,OLTP/OLAP 系统是分离使用的,从写查询语句到得到结果,往往需要一周的时间。在本书中,哈索不仅阐述软件如何利用无共享数据库概念扩展到多个刀片服务器,以及通过利用全共享数据库概念,充分利用海量内存和多处理器。此外,他还指出云计算在整合事务系统和分析系统中所起的作用。
除了技术上所取得的成就,哈索这位“德国的比尔?盖茨(Bill Gates)”还进一步阐述在业务上如何通过整合这一前沿技术来提高企业的效率和利润。如今,当许多企业正在为全球市场和供应链问题头痛不已时,这种实时的分析能力无异于雪中送炭。此外,如果能得到充分和广泛的使用,业务主管就能快速高效地调整企业资源,满足不断变化的市场需求,从而使下一轮经济低潮不会像上一轮那样剧烈。
约翰?亨尼斯(John L. Hennessy)教授(美国加州斯坦福大学)
戴维?帕特森(David A. Patterson)教授(美国加州大学伯克利分校)