顏清 苗壯 賴鑫生 蔣昌猛
摘?要:關系型數據庫應用技術作為大數據時代信息領域支撐基礎和軟件學科的重要分支,仍然是計算機領域中最為廣泛的應用技術。互聯網的爆發誕生了大數據,也成就了MySQL。作為關系數據庫的MySQL為WEB方面分布集群數據庫系統的應用研究得到重視,MySQL的不斷創新將滿足可擴展性、可靠性和可用性等大數據要求,已經展現出關系數據庫處理大數據的曙光。
關鍵詞:大數據;數據庫技術;MySQL;應用
中圖分類號:TP311.13文獻標識碼:A
1 大數據時代數據庫技術面臨的新問題
1.1 大數據與云計算
隨著大數據時代的到來,獲取數據的設備不再只是傳統計算機,智能手機、GPS定位儀等感測裝置成為新的產生數據的來源,從這些設備搜集到的數據都與以往有很大的差異。大數據具有體量巨大、種類繁多、價值密度低、處理速度快等特征,面對大數據時代海量的數據增長與非結構化特點,傳統的關系型數據庫的處理能力捉襟見肘,沒有優勢。大數據不僅包括關系模型的結構化數據,還包括如日志文件、XML文檔、JSON文檔、Email等半結構化數據和各種格式的圖片、視頻等非結構化數據,大數據難以用常規軟件進行捕捉、管理和處理,是超出傳統數據庫軟件工具能力范圍的數據集合。單臺計算機無法處理大數據,實時的大數據分析,即采用分布式架構向數十、數百或甚至數千的電腦分配工作,依托云計算對海量數據進行分布式數據挖掘,通過“加工”實現數據“增值”。大數據處理的特色就是它的分布式處理、分布式數據庫和云存儲、虛擬化技術,大數據、云計算代表了大數據時代數據處理的新技術和新方法[1]。
1.2 NoSQL的發展狀況
非關系型數據庫NoSQL已經在非結構化和不可預知數據方面顯示出明顯的優勢而嶄露頭角。NoSQL如MongoDb、redis、HBase等,無須經過SQL層的解析,可以存儲自定義的數據格式,分布式并發存儲讀寫性能很高,可以解決傳統關系數據庫做不到的事情,NoSQL數據管理技術的應用越來越受到人們的青睞[2]。但NoSQL存儲系統沒有系列化,使用鍵值對存儲數據,數據沒有耦合性,容易擴展,其key,value形式、文檔形式、圖片形式等格式是一種數據結構化存儲方法的集合,keyvalue數據庫產品卻缺乏通用性,應用受到局限。NoSQL數據庫除HBase有較完善的安全特性外其他均沒有提供內建的安全機制,很多產品都不夠完善,并缺乏強有力的理論、技術支持[3]。NoSQL無事務處理,不提供SQL支持,不支持附加功能BI和報表,學習和使用成本較高。NoSQL種類繁多,其共同的特點是無關系型特性,超越了普通數據庫的概念,且嚴格意義上不是一種數據庫,要取代關系型數據庫十分困難。
1.3 關系型數據庫的劣勢與轉型
大數據和關系型數據的不同之處在于它沒有固定的字段、格式、結構,其中絕大多數是非結構化數據,但大數據也包含了少量結構化數據。傳統的關系型數據庫不能很好擴展,難以處理海量數據,支撐不了大數據的應用,在實現大數據分析的需求中力不從心。由于大部分分布式數據庫都是用SQL作為標準查詢語言,其數據的處理能力也僅局限于結構化數據,對于無法使用SQL進行解析的非結構化數據更是無能為力。NoSQL異軍突起近乎占據了互聯網分布式數據庫的半壁江山,近幾年分布式的關系型數據庫也有所轉型,紛紛開始支持JSON格式,向混合型數據庫發展。關系模型相對于網狀、層次等模型更容易理解,關系型數據庫SQLite、Oracle、MySQL等使用通用的SQL語言操作,對于復雜的查詢非常方便。為順應大數據時代的發展,關系型數據庫MySQL的分庫與分表、業務拆分、主從復制等性能擴展,讀寫性能的提高在大數據應用中發揮了極大的作用,逐漸成為應用于WEB方面最為廣泛的軟件之一[4]。
1.4 關系數據庫的性能瓶頸
面對大數據時代爆發式增長的海量數據,諸如圖像、音頻、視頻等非結構化數據為主的大數據面前,傳統數據庫不僅缺少有效分析的工具和方法,也難以滿足高并發的讀寫需求和海量數據的高效率讀寫。關系型數據庫的實體完整性、參照完整性和用戶定義的完整性形成了關系模型的事務一致性特點,降低了數據冗余。關系數據庫缺乏靈活性,為穩定、固定的表結構及其事務的一致性付出了讀寫性能差的巨大代價。一直處于市場的壟斷地位的關系數據庫,隨著存儲、處理和分析的數據量指數倍的快速增長,關系模型設計架構及復雜的調優參數決定了傳統SQL數據庫很難進行擴展,加之專用場景下并不最優的通用標準,關系數據庫并不適合存儲過大的數據,高并發情況下,關系數據庫在性能、數據安全、資源使用等多方面達到平衡調優成本巨大等劣勢明顯,面臨的這一難題將極有可能淪落為性能瓶頸。
2 大數據時代關系數據庫技術的難題
2.1 關系型數據庫技術的發展趨勢
數十年來,關系數據庫中積累大量的應用數據已經成了社會的寶貴財富。從你的銀行存款,到你的每一筆網上交易都在關系型數據庫中保存著,關系型數據庫每時每刻都在影響人們的生活。傳統的數據庫都是用SQL作為標準查詢語言,其數據處理能力局限于結構化數據。例如IBM DB2,Oracle,Microsoft SQL Server,Sybase等等,版本也不斷更新,在數據庫管理系統中發揮了巨大的作用。如今,大數據時代的互聯網帶來了空前的信息大爆炸,深深影響著人類社會的生產與生活。關系型數據庫有完善的安全機制,數據和用戶的強制分類,不同類別用戶訪問的數據類別也不同,用戶依據賬戶的權限操作數據庫。關系型數據庫需建立字段后存儲數據,建好的數據庫要增刪字段極其麻煩。大數據技術改變了互聯網數據的應用模式,能快速從各種各樣類型的海量數據中獲取有價值信息。在大數據時代,非結構化數據會自覺與不自覺地滲透到關系數據庫中,關系型數據庫技術突破若干缺陷之后,發展前景將十分廣闊。
2.2 大數據時代的關系數據庫技術及其研究動態
2.2.1 分布式集群數據庫
分布式集群數據庫系統即數據庫服務系統,通過網絡連接組成一個完整的大型的關系型數據庫。數據庫服務系統可由網絡上不同地方的多臺計算機組成,保證了海量數據的存儲。數據庫服務系統中任意一臺計算機都保存著自己完整的數據庫,并具有一致性、完整性、安全性三個性質。分布式集群系統是一個邏輯整體的數據庫,互聯網將各個數據單元鏈接在一起,分布集群服務器通過外部鏈接技術進行遠程控制、管理、信息交換與數據共享,用戶對此系統單一的邏輯訪問請求自動分解變換成網絡請求,客戶機利用相應的數據庫結點完成非數據庫的處理操作。
2.2.2 關系型數據庫MySQL
關系模型的二維表結構相對網狀、層次等其他模型來說更容易理解,SQLite、Oracle、MySQL等是采用關系模型組織數據的關系型數據庫。MySQL服務器自帶三個數據庫:information_schema數據庫、mysql數據庫、test數據庫。information_schema數據庫保存了MySQL服務器所有數據庫的信息,比如數據庫的名、數據庫的表、訪問權限、數據庫表的數據類型、數據庫索引的信息等數據庫的點點滴滴信息都存儲在這個數據庫中。mysql數據庫是MySQL服務器中的所有的信息表。test數據庫是用于測試用的空的數據庫。在大數據背景下,MySQL軟件分為社區版和商業版兩種,采用了雙授權政策。通用的SQL語言易于復雜的查詢,操作非常方便。在MySQL服務器中,其實體完整性、參照完整性和用戶定義的完整性降低了數據冗余,形成了關系模型的事務一致性特點。MySQL軟件使用不同的表格來存儲數據,具有運行速度快、使用成本低、開放源碼等優點[5]。MySQL軟件使用C和C++進行編寫,進行了多種測試,確保源代碼的移植。MySQL軟件可當一個單獨程序在客戶端服務器中使用,也可以作為一個庫,植入到其他的軟件中進行使用。
2.2.3 MySQL的集群與主從同步機制
傳統的關系型數據庫(RDS)擴展性差,MySQL采用集群的方式移植到云中,MySQL集群是一個無共享的、分布式節點架構的存儲方案,提高了數據的容錯性和高可用性能。MySQL采用ShareNothing架構,總的數據表劃分成若干個小表,分別存儲在每個不同的數據庫服務器上。MySQL集群有節點回復、系統恢復、熱備份恢復、故障轉移、分區、聯機操作等功能,利用主庫對從庫采用同步機制進行數據復制,將主庫數據同步到其他從庫數據節點上,數據在多個數據節點保存,由于每臺服務器的獨立性,MySQL集群保證了數據庫的可擴展性,解決了傳統數據庫擴展性差的問題。
2.3 MySQL數據庫在大數據技術中的地位
MySQL以標準化為前提,可以進行Join等復雜查詢,事務處理能夠保證數據的一致性。MySQL主要應用定位于互聯網開發,其分表、分區、分庫的分布式數據庫架構等對數據庫進行拆分策略,提高數據的處理速度與處理效率,最大限度提高了讀取數據的速度和并發量,提高了數據庫的寫入能力。如今web2.0網站根據用戶個性化信息實時生成動態頁面和提供動態信息,基本上無法使用動態頁面靜態化技術,數據庫并發負載非常高,往往達每秒上萬次讀寫請求。互聯網的爆發誕生了大數據,也成就了MySQL。基于WEB的MySQL體積小、速度快、成本低,能夠及時處理上千萬條記錄,初步滿足和支持大型的數據庫高并發的讀寫和高效率讀寫等要求[6]。MySQL不斷擴大關系數據庫易于使用、易于維護、安全可靠、性能卓越等方面更勝一籌的優勢,將使關系數據庫經受住大數據時代的洗禮,也將在大數據應用領域中大行其道。
3 結語
數據庫技術及應用領域占整個計算機應用的70%以上,大數據時代的數據庫技術日新月異迅猛發展,大數據的興起也促使數據庫從單一的關系型數據庫向混合型數據庫發展[7]。作為關系數據庫的MySQL與時俱進、不斷創新,疊加了NoSQL的巨大影響,在大數據高并發讀寫和高效存儲功能方面走得非常扎實,不可否認MySQL將能夠滿足大數據應用所需要的可擴展性、可靠性和可用性等要求[8],成為面向大數據的數據庫主流技術。MySQL5.6正式版逐漸增加對NoSQL和Hadoop的支持,已經展現出關系數據庫處理大數據的曙光。
參考文獻:
[1]賈欽.分布式數據庫技術在大數據中的應用[J].電子技術與軟件工程,2019(08):162.
[2]龔暢.大數據下的NoSQL數據庫技術分析[J].信息記錄材料,2018,19(06):118119.
[3]卓鐵農.大數據下的分布式數據庫HBase[J].計算機產品與流通,2019(02):102.
[4]張偉龍,呂明,胡宏,杜寶珠,張捷.MySQL數據庫服務器監控系統設計與實現[J].工業控制計算機,2019,32(12):1820.
[5]胡強.MySQL數據庫常見問題分析與研究[J].電腦編程技巧與維護,2019(12):9192.
[6]江國文.大數據環境下基于MySQL的數據庫架構設計與實現[J].電子世界,2018(11):200201.
[7]王井樂.基于大數據下主題數據庫的研究現狀與展望[J].中國新通信,2018,20(09):98.
[8]劉陽娜.大數據下的MySQL數據庫的效率優化[J].信息通信,2017(12):111112.
基金項目:2018年江西省教育廳高校省級教改立項資助項目(JXJG181616)
作者簡介:顏清(1962—),女,湖南宜章人,教授,主要從事數據庫、數據挖掘、計算機應用與研究等。