文 / 郝志伟 郝梦晨
随着信息技术发展,“互联网+”和物联网不断深度融合应用,提升了企业管理水平、经营质量、生产效率。在企业信息化建设中,产生了大量的数据,在数据交互频繁的业务系统采用传统关系型数据库已经被人们熟悉和认知。当数据的种类、数量大到一定规模时,就形成了大数据,这就需要建立数据仓库,对数据进行存取和分析,为企业提供决策支持。在大数据时代,数据就是资产,如何让大数据在企业转型升级发展中发挥最大效能?本文从数据仓库产生的背景和意义、种类和特点、不同的场景应用维度进行了探索与分析,希望对企业在大数据平台建设时如何对数据库进行选型有所启示。
随着IT技术的成熟发展,信息系统充分应用,大数据已经成为时代发展的“新能源”。如果说数据是“血液”,那么数据库就是完成造血的“心脏”,数据已越来越成为伴随企业成长的、不可或缺的、能量高效转换的自主、自有和自驱的“新能源”。
如何让企业具备更强大的造血功能和更高效的“新能源”转化效能?首要任务是理清业务需求脉络和逻辑,把业务需求转化成一个便于分析的数学问题,战略性地建设企业数据库和对数据库进行渐进式布局。基于这种思路,宏观审视企业内部数据架构,企业信息化建设只有选用了适合的数据库,“新能源”效能才能得到充分释放。
数据库(Database)是在计算机存储设备上按照数据结构来组织、存储和管理的相关数据集合,简单地说就是电子化的文件柜。不同的信息系统需求和应用场景需要不同的数据模型,不同数据库产品功能各异,需要综合考虑数据模型、产品特性和应用情景,选择最适合的架构和数据库模型以及产品。
从数据存储的逻辑视角来看,可以分为关系型数据库和非关系型数据库;从数据存储的物理角度来看,则可以分为行式数据库和列式数据库。目前,企业的数据库建设主要有OLTP和OLAP两种应用方式。
联机事务处理OLTP(On-Line Transaction Processing),是传统的关系型数据库的主要应用,基本特征是在业务交互场景中,前台接收的用户数据可以立即传送到计算中心进行处理,并在很短的时间内对用户操作快速响应、给出处理结果,也称为实时系统(Real time System)。OLTP是由前台、应用、数据库共同完成的,处理快慢以及处理程度取决于数据库引擎、服务器、应用引擎;支持大量并发用户增、删、查、改数据,实时反映企业指标变化的状态。
联机分析处理OLAP(On-Line Analytical Processing)是一种软件数据处理技术,它使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的,是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。列式数据库适合OLAP,有共享多维信息的快速分析特征,具有处理数据量大,实时性要求不高,支持动态查询,通过多维度数据提供决策支持等特点。
企业数据的本质是以数据形式呈现的知识,在时空上具有很强的通用性和连续性,企业数字化带来的好处是获得知识的成本低、范围广、质量高,可以实现人机对话、信息共享,提升了数据价值,互联网的推动让数据的价值倍增。通常来说,在企业数据使用时效性的维度来看,企业的数据可以分为三类:热数据、冷数据和温数据。热数据(在线数据)是指实时产生的、场景化明显的数据,它能够进行快速业务交易数据处理。冷数据(离线数据)是存储较长时间的、不需要实时访问的状态数据,适合应用在统计分析的维度或大数据的维度。温数据(针对某类业务维度的数据组合)是业务实时交互数据、交易数据和非即时的状态行为数据的组合,它是以某种业务特征分类维度上的结构化数据组合。
大数据需要将大的特征进行分类,才能让大数据体现更大的价值,不同规模的数据以及非结构化数据的增多需要不同的数据库架构,产生不同级别的数字化和智能化;数据处理同样也需要专门设计高效率和高效能的计算架构,与企业的系统应用和业务场景进行紧密结合。
从业务交互、业务分析和数据状态的角度来看, OLTP在业务系统交互过程中提供高频、多并发的数据交易处理,主要应用在众多的企业业务信息系统和边缘计算等场景,在这个数据库应用的序列里,常用的商用关系型数据库产品有微软的SQL Sever、甲骨文的Oracle、IBM的DB2、SAP的HANA等;有自主开发使用的开源关系型数据库框架MySQL 和PostgreSQL。这些数据库具有业务流程为导向的索引结构,同时与商用软件集成性强、实时查询快、快速的业务交易数据处理,因此比较适用于业务交互组件类产品和系统开发,也可以适用于数据量不大的数据仓库分析类产品。
数据仓库是解决大规模数据集合多重数据种类应用的难题,为企业进行决策分析提供所有类型数据支持的战略集合,为需要业务智能的企业提供指导业务流程改进、监视时间、成本、质量以及控制。主要功能是将大量由OLTP形成的数据进行分析整理,帮助构建商业智能(BI)和决策支持。常用的有四类:一是键值存储数据库,如VMware和Pivotal支持的Redis是一个开源的、高性能的键值数据库,支持主从同步;二是列存储数据库,如Apache的HAdoop,HBASE通常用来应对分布式存储的海量数据;三是文档型数据库,如 MongoDb,可以看作是键值数据库的升级版,查询效率更高,但安全性和稳定性还有待观察;四是图形数据库,如InfoGrid是使用灵活的图形模型,并且能够扩展到多个服务器上。总之,数据仓库在以下的这几种情况下比较适用:数据模型设计比较简单;要求较高的数据库性能;信息系统需要更强的灵活性;数据不需要高度的一致性;通过给定的键(KEY),比较容易映射复杂值的环境。
针对常用的商用键值类和列式类数据库有SAP的HANA,它是一款行列式内存数据库,既可以执行通常需在行式数据库中执行的事务,又可以执行列式数据库所擅长的分析功能。针对常用的开源键值类和列式类数据库Redis和Apache的HAdoop,由于本身就以Key Value数据库和列式大宽表为框架、单一索引,以大量数据的分析为主,在实时业务交互数据处理方面效率和性能不高、主要是大量的以历史数据存储为主的结构化和非结构化数据处理,适合应用在业务统计分析的维度和大数据的维度。一般基于高可用和高性能的架构会单独使用Redis分布式架构或者以Redis为缓存数据层构架于HAdoop集群上。
所以得出一个值得肯定的结论:站在数据仓库维度的数据库整合或者大数据维度的多个数据仓库整合,使用HAdoop和Redis架构可以为企业打造一个通用的、延展性强的大数据平台;但站在业务应用的角度除非是自开发的开源系统,还是最好选用配套商用标准的对应数据库组件。