江西應用工程職業(yè)學院 江國文
隨著互聯(lián)網(wǎng)技術的快速發(fā)展,人們頻繁的訪問數(shù)據(jù)庫,向后臺發(fā)送數(shù)據(jù)處理請求。因此需要操作系統(tǒng)擁有較快的處理速度,來滿足人們的訪問需求。與此同時,隨著大規(guī)模系統(tǒng)的出現(xiàn),MySQL技術也有了較快的發(fā)展,充分發(fā)揮出運行速度快、使用成本低的優(yōu)勢,有效提高了數(shù)據(jù)處理的質(zhì)量與效率。而且使用基于MySQL的數(shù)據(jù)庫架構,既可以按需使用數(shù)據(jù)資源,還可以提高數(shù)據(jù)安全性。因此,本文討論如何在大數(shù)據(jù)環(huán)境下,設計與實現(xiàn)基于MySQL的數(shù)據(jù)庫架構,就顯得極為重要。
大數(shù)據(jù)是指無法在可承受的時間范圍內(nèi)用常規(guī)軟件進行捕捉、管理和處理的數(shù)據(jù)集合。現(xiàn)階段,大數(shù)據(jù)的定義已經(jīng)不再單純局限于數(shù)據(jù)的規(guī)模大小,它代表著傳統(tǒng)的計算機技術已經(jīng)難以有效處理龐大的數(shù)據(jù)信息,同時也代表著大數(shù)據(jù)處理的新技術和新方法,將會帶來更大的發(fā)展。通常來說,大數(shù)據(jù)具有四個特征。一是數(shù)據(jù)體量巨大。二是數(shù)據(jù)種類多樣,主要可以分為結構化數(shù)據(jù)和非結構化數(shù)據(jù)兩種。三是指價值密度較低,這與數(shù)據(jù)總量的大小互為反比。四是指處理數(shù)據(jù)的速度較快,這是大數(shù)據(jù)最為突出的優(yōu)勢。隨著互聯(lián)網(wǎng)技術的飛速發(fā)展,大數(shù)據(jù)技術也在各個領域中得到了廣泛應用,其基本內(nèi)涵逐漸呈現(xiàn)多元化特點,需要從理論、技術與實踐三個角度深入解析。就理論角度而言,大數(shù)據(jù)理論是大數(shù)據(jù)技術發(fā)展的必然需求,其也是相關領域應用的基礎。大數(shù)據(jù)的理論基礎可以理解為相關行業(yè)對大數(shù)據(jù)技術的定性描述,進而探討大數(shù)據(jù)對行業(yè)的作用。就大數(shù)據(jù)技術角度而言,大數(shù)據(jù)技術是大數(shù)據(jù)發(fā)展的重要基石。大數(shù)據(jù)技術在發(fā)展過程中,結合互聯(lián)網(wǎng)、云計算、信息存儲、分布式與感知技術,通過對大量的數(shù)據(jù)進行采集、分類與存儲,最終規(guī)整形成統(tǒng)一的大數(shù)據(jù)技術。就大數(shù)據(jù)實踐角度而言,大數(shù)據(jù)實踐是大數(shù)據(jù)相關技術的最終體現(xiàn),也是大數(shù)據(jù)技術的根本價值,各行各業(yè)利用大數(shù)據(jù)技術進行相關實踐,共同描繪了大數(shù)據(jù)技術宏偉藍圖。
MySQL概念與特點:
在大數(shù)據(jù)背景下,MySQL作為一個關系型數(shù)據(jù)庫,廣泛應用于WEB方面。且隨著信息技術的迅猛發(fā)展,MySQL逐漸成為關系型數(shù)據(jù)庫應用最廣泛的軟件之一。在實際應用過程中,該軟件會使用不同的表格來存儲數(shù)據(jù),有助于分類整理數(shù)據(jù)。同時,MySQL軟件還采用了雙授權政策,分為社區(qū)版和商業(yè)版?zhèn)z種。最大的優(yōu)點是開放源碼,除此之外,還有運行速度快、使用成本低等優(yōu)點。就其特性而言,首先,使用C和C++進行編寫,還進行了多種測試,確保可以進行源代碼的移植。其次,既可以當做一個單獨的程序,在客戶端服務器中使用,也可以作為一個庫,植入到其他的軟件中進行使用。此外,還支持大型的數(shù)據(jù)庫,可以及時處理上千萬條記錄,提高數(shù)據(jù)的處理速度與處理效率。
1.相關功能確定
MySQL關系型數(shù)據(jù)庫設計時,其創(chuàng)建功能與刪除功能主要包括于DBEntityTask中。在創(chuàng)建過程中主要采用多線程設計原則,每當設計一個MySQL關系型數(shù)據(jù)庫時,就需要多線程處理。具體設計如下:
2.數(shù)據(jù)表設計
MySQL關系型數(shù)據(jù)庫的創(chuàng)建過程主要包括db_entity_list、server_pool_list與ser_connection三張表。具體過程中,server_pool_list主要負責記錄大量數(shù)據(jù)、內(nèi)存等參數(shù)信息;iops主要負責數(shù)據(jù)的查詢,表db_entity_list與表srv_connection想關聯(lián),通過一系列算法操作。表server_pool_list中的vip字段是用來訪問實例的IP地址,訪問完之后將信息記錄在表db_entity_list中的VIP字段里。
3. MySQL關系型數(shù)據(jù)庫實現(xiàn)過程
在MySQL關系型數(shù)據(jù)庫創(chuàng)建過程中,相應的云服務平臺會對相關信息參數(shù)進行檢驗,校驗通過后,會對輸入的信息編碼,并傳給C++端進行處理。當C++端接收到相關信息編碼后,會依據(jù)系統(tǒng)規(guī)則,將相應指令錄入db_entity_list中。相關人員則通過查詢srv_connection表,可以獲得相應的參數(shù)。再次通過服務器調(diào)試,便可獲得server_po_lis在MySQL關系型數(shù)據(jù)庫中的地址。Python端收到消息后,將消息解碼,對所連接的存儲創(chuàng)建lvm,用于安裝數(shù)據(jù)實例;其次,在實例創(chuàng)建過程中,端口會隨機生成MySQL數(shù)據(jù)庫訪問密碼;最后,如果MySQL關系型數(shù)據(jù)庫創(chuàng)建失敗,則會將相關信息反饋于服務器中。服務器根據(jù)反饋信息,進行相應的處理,便直接完成MySQL關系型數(shù)據(jù)庫的更新。
1.功能設計
MySQL關系型數(shù)據(jù)庫還包括升級數(shù)據(jù)庫資料、修改對應參數(shù)與刷新信息狀態(tài)等實例?;趯嵗强捎脿顟B(tài),用戶才可對數(shù)據(jù)庫中的實例進行操作,具體操作步驟如下:
2.數(shù)據(jù)表設計
對實例可進行升級實例、刷新實例、更改參數(shù)的操作,其中參數(shù)修改操作涉及數(shù)據(jù)庫表 db_ entity_list、表db_para_list與all_parameter_list數(shù)據(jù)表。若用于有修改相應參數(shù)的需求時,首先需要在上述數(shù)據(jù)庫表中對相應的參數(shù)進行查詢;其次,再獲取表db_entity_list中記錄的實例ID,并根據(jù)獲取到的ID在表db_para_list中查找db-id字段,在表db_para_list中,記錄了每個參數(shù)的默認值和可修改范圍。
3.具體實現(xiàn)
當用戶要對某一個參數(shù)進行修改時,前臺會將信息以編碼形式傳遞給C++端,C++端收到消息后將信息解碼,根據(jù)數(shù)據(jù)信息去數(shù)據(jù)庫中查詢;如果查詢結果顯示是第一次修改數(shù)據(jù),系統(tǒng)就會將修改后的信息插入表db_para_list中,反之,系統(tǒng)將直接修改數(shù)據(jù)表中的信息。有些MySQL數(shù)據(jù)庫參數(shù)需要將實例運行停止后才可以變動;因而需要在all_parameter_list數(shù)據(jù)庫表中進行相應參數(shù)查詢,并確定是否進行實例查詢,如果不需要,則sql語句可以對參數(shù)直接修改,反之,就需要先關閉實例,再對實例中的配置文件進修改,修改結束后自動重啟相應的實例。最終,系統(tǒng)如果檢測到相關實例完成重啟后,變將相應的信息反饋到C++端,便會將數(shù)據(jù)庫狀態(tài)設置為可用狀態(tài)。
1.功能設計
實例備份分為立即備份和定時備份。DBEntityTask 類中包含的方法可對實例數(shù)據(jù)進行備份、刪除以及創(chuàng)建刪除臨時實例數(shù)據(jù)等操作。實現(xiàn)實例的備份和恢復的方法如下:
2.數(shù)據(jù)表設計
關于MySQL數(shù)據(jù)庫關于實力備份和恢復的表有backup_info_list和backup_stra_list,其中表backup_ stra_ list用于備份策略的設置,表backup_ info_ list用于記錄備份文件的信息,無論是手動備份還是自動備份,所有的備份信息都記錄在表backup info_ list中。
3.具體實現(xiàn)
MySQL數(shù)據(jù)庫實現(xiàn)備份有用戶手動備份和系統(tǒng)定時備份。定時器觸發(fā)定時備份設置,備份信息就會存儲到數(shù)據(jù)庫表backup_stra_list中,當出現(xiàn)備份時間時,定時器自動響應并發(fā)出請求。同時,前端的服務器應及時查看數(shù)據(jù)備份情況,如果不處于備份狀態(tài),則無法進行備份操作;反之,把信息以編碼的形式發(fā)送到C++端,C++端收到信息后進行解碼,并將相應的數(shù)據(jù)信息錄入backup_info_list數(shù)據(jù)表中。用戶可在WEB頁面查詢到所有備份記錄。
如今微博、網(wǎng)游等終端廣泛應用,頻繁向后臺發(fā)送數(shù)據(jù)處理請求,傳統(tǒng)單機數(shù)據(jù)庫系統(tǒng)正面臨著前所未有的PB級數(shù)據(jù)量的存儲和計算難題。而MySQL數(shù)據(jù)庫,是以GPL開源協(xié)議為基礎,進而開發(fā)出來的開源數(shù)據(jù)庫軟件,同時,MySQL數(shù)據(jù)庫自身性能及穩(wěn)定性卓越,帶給使用者很大的信心。因此,要實現(xiàn)大數(shù)據(jù)的快速發(fā)展,就要有數(shù)據(jù)庫技術的全力支持。結構化、非結構化、面向關系型、面向?qū)ο蟮缺姸鄶?shù)據(jù)庫概念,只有與現(xiàn)代化技術相互融合,才有可能促進雙方共同發(fā)展,進而實現(xiàn)多源異構的海量數(shù)據(jù)存儲以及信息資源的高效利用。
[1]劉艷.大數(shù)據(jù)環(huán)境下基NoSQL數(shù)據(jù)庫的存儲技術研究[J].信息通信,2016(9):108-109.
[2]劉陽娜.大數(shù)據(jù)下的MySQL數(shù)據(jù)庫的效率優(yōu)化[J].信息通信,2017(12):111-112.
[3]劉江霞.一種基于Hadoop的大數(shù)據(jù)倉庫技術研究[J].電腦編程技巧與維護,2017(16):65-67.
[4]王小霞.基于Hibernate框架的科研管理信息系統(tǒng)的設計與實現(xiàn)[J].信息技術與網(wǎng)絡安全,2017,36(23):104-106.
[5]趙永霞,李文杰.SQL Server中的數(shù)據(jù)導入MYSQL[J].通訊世界,2016(8):212-212.