毫无疑问,传统关系型数据库管理系统(RDBMS)是为联机事务型应用而设计的,而且这一经典的架构被使用如此之久。几十年前设计的到今天依然存在的Oracle、DB2、MS SQL Server等数据库产品,虽然在不断更新换代,但是你会发现数据库在任何一个IT发展时代都是特别重要的。过去的数据库产品只处理少量的企业业务信息,然而今天的企业每时每刻都会产生大量的业务信息数据,虽然传统数据库在过去这些年一直在不断发展,但是这些基于传统磁盘技术的数据库在应对目前的海量数据处理时已经力不从心。简而言之,无法实时地计算海量数据已经成为制约企业信息化的瓶颈,这些信息处理瓶颈直接限制了企业信息化的持续发展。
从SAP发布全球第一款R系列的产品到现在SAP HANA所领导的高性能实时数据计算技术,R1(R代表RealTime,即实时的意思)、R2和R3不断在强调实时计算,这期间已经跨越了40年的时间,无论是20世纪80年代基于ABAP虚拟机的R2,还是经典的企业级三层架构应用(展现层、应用层、持久层,如图1-1所示),再或者是成为企业移动计算技术的领导者,拥有业界最先进的内存计算技术,SAP公司在企业级信息化架构上一直保持其固有的领导地位和先进性。
SAP公司在40年前就已经认识到底层传统RDBMS数据库的数据吞吐将是一个瓶颈,它将成为一种限制性的因素,所以SAP的企业管理软件一开始就是基于三层架构(展现层、应用层、数据库持久层)而实现的。
图1-1 SAP应用软件三层架构
SAP将企业的应用逻辑和业务处理都建立在应用层(底层数据库性能有瓶颈,无法支持大量业务操作),业务流程非常灵活且容易配置,并且应用层服务器可以灵活扩展多个节点,从而增强应用服务器的内存和计算能力(例如,可以设置SAP系统应用层的透明表在内存中为行级缓存、区域或全表缓存),这样可以减少对于底层数据库的磁盘读取依赖,并且利用应用层缓存来降低瓶颈,提升整个应用系统的性能。除此之外,SAP系统还对底层数据库做抽象处理,保持其灵活性,让应用层的软件系统可以适用于所有主流的RDBMS,而非局限于某一种数据库产品。
随着传统数据库软件系统不断升级,例如使用缓存型数据库和硬件加速,也在解决部分问题,但是在软件核心架构上无法有效利用新硬件架构优势。随着企业业务的快速增长,以及结构化和非结构化数据的海量增加,大数据处理和实时计算已日益迫切,传统数据库已经无法满足企业对IT技术的要求。总而言之,SAP HANA更多地摒弃了传统RDBMS在技术上的一些束缚和限制,具备了传统RDBMS所不具备的核心功能,即无限扩展的并行化、内存计算、OLTP+OLAP的融合等。