數據庫的上下五千年

數據庫的上下五千年


談到數據庫,首先讓我們來了解一下數據管理的概念,根據百度百科的定義,所謂數據管理就是利用計算機硬件和軟件技術對數據進行有效的收集、存儲、處理和應用的過程。其目的在於充分有效地發揮數據的作用。實現數據有效管理的關鍵是數據組織。




數據管理發展的三個重要階段


縱觀數據管理發展過程,有如下三個重要階段:

  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儘量地下推到數據庫端,更好地利用數據庫的性能優勢為用戶提供快速準確的商業決策支持。


我們會每週推送商業智能、數據分析資訊、技術乾貨和程序員日常生活,歡迎關注我們的頭條&知乎公眾號“微策略中國”或微信公眾號“微策略 商業智能"。


分享到:


相關文章: