数据库的上下五千年

数据库的上下五千年


谈到数据库,首先让我们来了解一下数据管理的概念,根据百度百科的定义,所谓数据管理就是利用计算机硬件和软件技术对数据进行有效的收集、存储、处理和应用的过程。其目的在于充分有效地发挥数据的作用。实现数据有效管理的关键是数据组织。




数据管理发展的三个重要阶段


纵观数据管理发展过程,有如下三个重要阶段:

  1. 人工管理阶段。20世纪50年代中期之前,计算机主要用于科学计算。外部存储器只有磁带、卡片和纸带等,还没有磁盘等直接存取存储设备。程序员在做实验的时候暂存实验数据,做完实验就把数据结果打在纸带上或者磁带上带走,所以一般不需要将数据长期保存。当时的数据并不是由专门的应用软件来管理,而是由使用数据的应用程序来管理。作为程序员,在编写软件时既要设计程序逻辑结构,又要设计物理结构以及数据的存取方式。所以在人工管理阶段,数据既不能共享也不具备独立性。
  2. 文件系统阶段。到了20世纪50年代后期到60年代中期,计算机开始应用于数据管理方面。此时,计算机的存储设备也不再是磁带和卡片了,硬件方面已经有了磁盘、磁鼓等可以直接存取的存储设备了。软件方面,操作系统中已经有了专门的数据管理软件,也就是我们最熟悉的文件系统。文件系统阶段也是数据库发展的初级阶段,使用文件系统存储、管理数据让数据可以长期保存并且有了简单的数据管理功能。
  3. 数据库系统阶段。虽然文件系统的出现,使得数据可以长期保存,但还是有着共享能力差,数据不具独立性等缺点。20世纪60年代后期以来,随着计算机管理的对象规模越来越大,应用范围又越来越广泛,数据量急剧增长,同时多种应用、多种语言互相覆盖地共享数据集合的要求越来越强烈,数据库技术便应运而生,出现了统一管理数据的专门软件系统——数据库管理系统。



数据库的发展


在最近的几十年里,数据库的发展更是突飞猛进,并衍生出了各种各样不同类型,适用于不同业务场景的数据库系统,例如:关系统型数据库、图形数据库、对象数据库、文档数据库等等,其中关系型数据库(RDBMS)是数据库管理系统中发展历史最久,应用最为广泛的数据库系统。从早期的Foxbase、Visual FoxPro、Sybase到如今在业界耳熟能详的大型数据库MS SQL Server、Oracle、DB2和Teradata等,关系型数据库几乎成为日常事务处理,业务交易处理和传统数据存储管理所必不可少的重要组成部分。其中On-Line Transaction Processing联机事务处理过程(OLTP)也是传统关系型数据库最重要的功能之一。


在数据集中存储和管理的同时,数据库也为早期的业务分析和决策提供了最基本的支持。然而随着业务指数级的增长,数据量陡增,从最初粗放的数据分析逐步演化为角色和场景都非常精细化的集群分析。这类非常具体,且能够对公司决策起到关键性作用的数据,很难从业务数据库中调取出来。因此,数据仓库的概念也就应运而生了,其概念最早由数据仓库之父比尔·恩门(Bill Inmon)于1990年提出。数据仓库中的数据在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到,主要供企业决策分析之用。这个数据抽取、清理和加工的过程就称之为ETL。常见的ETL工具有Informatica, Microsoft SQL Server Integration Services等等。与此同时,随着数据库性能的不断提升,主流的大型数库也成为了部署数据仓库的首选。例如老牌的大型数据库Oracle、 DB2、SQL Server,另外近几年massive parallel processing(MPP)技术的崛起,也出现了很多基于MPP架构的数据库作为企业的数据仓库,比如:Teradata、 Exasol、Greenplum等。


由于数据仓库的主要应用是决策分析,相应的On-Line Analytical Processing联机分析处理(OLAP)这个概念也被提了出来。它通过多维的方式对数据进行分析、查询和报表。维是人们观察数据的特定角度。例如,一个企业在考虑产品的销售情况时,通常从时间、地区和产品的不同角度来深入观察产品的销售情况。这里的时间、地区和产品就是维。



OLTP和OLAP的主要区别


数据库的上下五千年


现在主流的数据库也都提供了丰富的OLAP functions,例如:RANK、DENSERANK、FIRST、LAST等等。



数据仓库的部署

数据仓库的安装和部署一直是企业数据管理和应用中的一个痛点。随着数据仓库规模越来越庞大,数据仓库需要不断的升级和扩容,每一次数据仓库的升级都是对DBA的一次巨大挑战,这也导致了运维成本的不断升高。因此,越来越多的企业开始考虑将数据仓库部署到云端。现在主流的数据库厂商例如:Oracle、Teradata、微软都纷纷推出了旗下数据库的云端解决方案Database as a service (DBaas),让用户可以将本地数据库无缝地移植到云端。这里不得不提一下Amazon RDS——托管关系数据库服务,可为您提供多种常见的数据库引擎选项包括Amazon Aurora、MySQL、MariaDB、Oracle、Microsoft SQL Server和PostgreSQL等。这种基于云端的数据库引擎大大减轻了数据库管理的负担并且提供了很高的扩展性和可用性。




托管式数据仓库

基于云端的完全托管式,大规模数据仓库在近些年异军突起,成为了数据仓库应用的新宠。其中最具代表性的应属Amazon Redshift、Azure Synapse Analytics和Snowflake。这些托管式数据仓库大多都是将数据存储和计算引擎拆分成两个相互独立的组件,在数据存储上采用了列式存储结构,可以对接各种不同种类的数据源,并且导入数据,实现数据湖。在计算引擎的设计上,MPP的架构兼顾了高性能和高可扩展性,同时内置的多种优化机制保证了在PB级别数据查询的快速响应。


纵观数据库的发展历史,从单一的数据库到数据仓库,再到数据湖,数据库系统不再只是提供单纯的数据存储和查询,在数据分析和决策当中扮演了越来越重要的角色。


MicroStrategy 2020作为BI领域中的企业级分析决策工具,拥有最为全面的数据源链接,不仅支持传统的主流关系型数据库的最新版本,例如Microsoft SQL Server 2019,Oracle 19c,DB2 11.x,还进一步增强了对于云数据库服务和Amazon Redshift,Snowflake等托管式数据仓库的支持,并且能够将OLAP function尽量地下推到数据库端,更好地利用数据库的性能优势为用户提供快速准确的商业决策支持。


我们会每周推送商业智能、数据分析资讯、技术干货和程序员日常生活,欢迎关注我们的头条&知乎公众号“微策略中国”或微信公众号“微策略 商业智能"。


分享到:


相關文章: