0
点赞
收藏
分享

微信扫一扫

内存计算,让数据飞起来

内存计算,让数据飞起来_数据

突破口在哪?

传统数据仓库的改造工作千头万绪。完全推倒重来?成本高,周期长,风险大,看起来不是一个好的选择。

另起炉灶,新建一个数据湖?又往往会面临业务应用场景缺乏,系统定位不清晰的问题。

如何寻找突破口,既要保障业务的持续运行,又能引入新技术、新方法,推动系统变革?在企业的系统架构中引入内存计算技术是一个不错的选择。




01


内存计算,唯快不破


站在风口上,才能飞得更高,飞得更远。当代硬件的快速发展对数据库系统架构产生了的深远的影响。


近年来, 多核CPU的快速发展, 内存价格的不断下降, 以及系统架构的不断演进,为大数据处理在硬件方面提供了有利的条件。SAP公司在2010年推出的HANA内存计算使得内存计算再次得到学术界和工业界的广泛关注。2012年,加州大学伯克利分校开发的Apache Spark。IBM的solidDB、Oracle的Exadata X3、微软的SQL Server 2012也引入了内存计算。


为了充分发挥现代硬件的高性能,数据管理系统必须具备以下特点:


• 内存数据库

所有相关的数据必须保存在主内存中,所以读取操作可以在没有磁盘I/O的情况下执行。磁盘存储仍然需要,用于持久存储数据。


• 高速缓存对内存组织、优化和执行高度敏感

设计必须最小化CPU缓存未命中的次数,避免因访问内存而导致CPU停滞。所谓缓存未命中是指数据块不在CPU高速缓存中而不得不从内存中读取的情况。实现这个目标的一种方法是在内存中使用基于列的存储。


• 支持并行执行

近年来,CPU并没有通过提高时钟频率变得更快,而是增加了处理器内核的数量。软件要充分利用多核处理器,必须支持并行执行,并且使用支持内核数量扩展的架构。对于数据管理系统,这意味着必须能够对数据进行分区,以便并行地执行计算。为了确保可伸缩性,必须尽可能避免顺序处理。



02


为什么分析场景中更多使用列式存储


实现上述目标的步骤之一是在适当的情况下按列式存储的方式组织数据。从概念上来说,一张数据库表是一个二维的数据结构,以行和列的形式组织多个单元格。而计算机内存则是以线性顺序组织的。行式存储将表中一行包含的所有字段顺序存储,之后再存储下一行的字段。在列式存储中,同一列的所有条目被存储在连续的存储单元中。


下面的应用场景推荐使用列式存储方式:

• 只对单列或者几列执行计算。

• 只根据几列的值搜索表。

• 表中有大量的列。

• 表中有大量的行,并且需要执行基于列的操作(聚合、扫描等等)。

• 相对于行数而言,大多数列只含有少量的不同值,因此可以实现很高的压缩率。


在适用列式存储的使用场景中,列式存储表有诸多优势:

优势1、更高的数据压缩率。

优势2、更好的列操作性能。

优势3、无需额外的索引。

优势4、无需物化聚合。

优势5、并行处理。



03


引入SAP HANA,让数据平台飞起来


SAP HANA是SAP公司在2010年11月份推出的高性能数据处理和创新平台,也是所有SAP应用系统的战略平台。SAP HANA核心是SAP HANA数据库,一种创新的内存计算数据库管理系统,可充分利用现代硬件的计算能力,提供应用系统的性能,降低用户拥有成本,并支持前所未有的新场景和新应用系统。


内存计算,让数据飞起来_列式存储_02

SAP HANA概览


SAP HANA平台主要提供了以下四种服务:


首先,SAPHANA提供数据库管理服务。

SAP HANA数据库是支持多种数据存储范式的混合型数据库管理系统。其中包括一个完整的关系数据库管理系统,即可以支持数据库表在内存中基于列或行的存储,也支持数据库表在磁盘中的列式存储。


其次,SAP HANA提供应用开发服务。

SAP HANA 扩展应用服务(extended application services,XS)是基于SAP HANA数据库上的一层。它提供了执行基于SAPHANA的网页应用平台。XS高级版平台支持多种编程语言和执行环境,如 Java, Node.js等。在云端,XS高级版是具有一系列SAP扩展和增强的Cloud Foundry[1]平台。


第三,数据处理与分析智能是大数据平台必不可少的功能。

SAP HANA并不局限于传统数据库的功能,还提供了一系列数据分析的扩展功能。这些扩展功能有助于SAP HANA平台上处理一些常见的非结构化的大数据类型,通过这些功能扩展, SAP HANA支持各种结构化程度不同的数据:从结构化的关系型数据,到非结构化的文本结构,再到不规则结构的数据图。


最后,数据集成与质量管理是SAP HANA提供的另一个重要的服务。


SAP HANA提供了多种机制,实现数据提供和外部数据源的集成:


1. 智能数据访问(Smart data access,SDA)提供了数据联邦的能力,可以在SAPHANA中实时查询不同的远程数据源,无需创建冗余的数据副本。


2. 企业信息管理(Enterprise information management,EIM),包括智能数据集成和智能数据质量。


3.  智能数据流:将SAP事件流处理器的消费数据流和复杂事件处理功能集成到HANA中。


基于这些特性,SAP HANA可以通过SAP IQ或者与Apache Hadoop集成,进行大数据处理。Apache Hadoop在可扩展和可靠的分布文件系统上提供了虚拟无限存储空间,Hadoop家族在Hadoop基础上提供了丰富的数据管理和处理引擎。Hadoop的吸引力在于它运行在商业硬件的大型集群上,起步成本低,并可以灵活进行扩展。


SAP HANA通过多种方式与Hadoop进行集成。一种方式是将Hadoop作为SAP HANA的远程数据源,并使用SAP HANA数据库的关系型查询访问Hadoop的数据。另一个方式是使用SQL语句中基于Hadoop的虚拟函数。当执行这种SQL语句时,SAP HANA触发了Hadoop中的一个map/reduce作业。


-End-


本文作者:陈永杰 

著有《SAP大数据完全解决方案》等多本有影响力的SAP图书



举报

相关推荐

0 条评论