梁紅穎 遼寧現代服務職業技術學院
前言:大數據時代的來臨,對現代人的生活方式產生了很大的影響。而NoSQL數據庫因其具有高性能、高可用、易擴展及數據模型靈活等優勢在眾多互聯網公司應用。而且NoSQL作為一種非關系型的數據庫存數在使用上已經超過了關系型的數據庫,因此基于NoSQL數據庫的大數據查詢技術引起了各界的關注。
NoSQL泛指非關系型數據庫,是“Not Only SQL”的縮寫。由于數據在數據庫中存儲的方式為非關系型,和傳統數據庫中所使用的結構化數據形式差異明顯。傳統數據庫中表與表間的關聯問題導致其性能受限,而NoSQL數據庫的不固定鍵值對結構突破了性能上的局限,有效降低了數據庫的存儲、計算及查詢等各項操作在時空上的開銷。因此,NoSQL與傳統數據庫最關鍵的不同就是,NoSQL以非關系為核心,而傳統數據庫則以關系為核心。
CAP是“Consistency Availability Partition tolerance”的縮寫。CAP理論簡單來說就是指分布式系統具有一致性、可用性和分區容錯性三個特性,但是任何分布式系統只能同時滿足以上兩點,不能兼顧三者。其中的一致性(C)即所有的數據變動都是同步進行的,數據一致更新,可用性(A)指分布式系統具有良好的響應性能,而分區容錯性(P)也可以稱為可靠性,如果分布式系統中有一個或幾個機器出現故障,而其他的機器還可以正常運行,因此具有良好的容錯性。
BASE思想主要強調基本的可用性,與ACID在單機環境中數據屬性不同,BASE是在分布式情況中數據的屬性。如果想要純粹的高性能,則須以一致性或是分區容錯性為犧牲。BASE思想的方案在性能上具有挖掘的潛力,主要實現有:按功能劃分數據庫和共享分片。
該類數據庫的數據模型為采用列的形式存儲,同一列的數據將會被存放在一起。主要應用于信息檢索系統和分布式的文件系統中。具有查找速度快、查詢效率高、可擴展性強、易于分布式擴展等優勢。不足之處就是在功能上存在一定的局限性,例如沒有SQL查詢語言、沒有二級索引。
此類數據庫所采用的數據結構主要是哈希表,哈希表由兩部分組成:指針和鍵值信息。鍵值保存的數據庫其數據模型為一系列的Key-Value鍵值對存儲,可以實現內容緩存,適用于混合工作負載且需要擴展的數據集,可以進行快速查詢。不足之處在于存儲的數據缺少結構化。
圖形數據庫通過使用靈活的數據模型,比較關注數據之間的關系。主要應用于社交網絡、推薦系統中。圖形數據的建模、查詢都十分簡單。優勢在于能夠利用圖形結構的相關算法。不足之處是必須對整個圖做計算才可以得出結果,不易進行分布式的集群。
文檔型數據庫的數據模板為形式化的文檔,對于半結構和非結構文檔則要以具體的形式進行保存。數據模型為一系列鍵值對,主要應用于Web。此類數據庫具有豐富的查詢語言與索引機制,因此查詢性能較強。對于數據的結構沒有嚴格的要求,不需要定義表結構。不足之處在于此類數據庫不支持JOIN查詢與事物處理。
NoSQL框架的數據查詢技術與傳統關系型數據庫查詢技術相比,具有其獨特的特點,這是由適用于NoSQL框架的數據特點所決定的,主要包括以下幾個特點:(1)分布式的備份特點。NoSQL將高擴展性與高可用性作為目標,如果想要達成這個目標則需通過分布式的備份來實現。分布式能夠體現高擴展性,而備份則實現了高可用性。因此在整體上顯著提高了系統的容錯性能。(2)數據的海量性特點。隨著社交網絡的不斷發展與擴大,推動了傳感技術與移動設備的普及與應用,尤其是現代化智能手機的興起,方便了人與人之間的交流與溝通,有關娛樂方面的信息呈現出爆炸式的增長態勢,例如微信、微博、手機游戲等的數據量已達TB、PB,甚至更高水平。(3)數據類型多元化特點。當前多數的WEB應用都需處理半結構化或是非結構化的數據,例如視頻、圖像、音頻等數據,而此類數據不適于存儲在像MySQL這類的關系型數據庫中,但是對于此類數據的查詢與儲量在非關系數據庫中往往能表現出較好的性能。
在數據庫發展過程中,從縱向到橫向的拓展變化推動了NoSQL的發展與應用。NoSQL數據庫作為一種分布式橫向擴展技術,通過使用分布式節點集提供高度彈性拓展功能,用戶只要添加節點就可以進行對負載的動態處理。與縱向擴展做法相比,分布式橫向擴展的做法更加經濟實惠。而且NoSQL數據庫多是開源技術,根據運行的服務器集群進行收費,在價格上更加便宜。
NoSQL數據庫數據為非關系型,不需依賴表與表之間的關系,就可以進行信息的存儲與組織。如采用文檔型數據庫獲取想要存儲的數據,以JSON的格式整合到文檔中。每個JSON文檔都能被應用程序視為一個對象,而且JSON文檔能夠實現提取跨越多個表的數據,并將數據匯集到一個文檔中,雖然聚合這些數據信息會存在信息重復的現象,但由于不用考慮存儲問題。因其數據模型靈活、發布產生的文檔簡便,而且讀取與寫入的性能高,所以應用廣泛
現階段,通過第三方,就可以訪問和捕捉數據。包括用戶個人信息、用戶生產的內容、地理位置數據、及其記錄數據等。企業通過大數據來推動關鍵任務型應用程序,因為NoSQL數據庫適合現代的新型數據類型,所以很多企業正轉向該數據庫。大多數新型數據都是半結構化或非結構化,通過靈活的數據庫,很容易適應新的數據類型,即便第三方數據供應商的內容結構發生變化,也不會受到影響。
以我國的鐵路網路售票系統為應用對象,在對其進行系統設計和技術架構環節時,從數據層、服務層、應用層及展現層都可以體現大數據的優勢與特點。數據層主要體現為當購票者信息數據訪問系統時,可以通過Java的設計模式快速調度其實名制信息,結合Kettle對購票者的個人信息數據進行快速的調取與轉換,為應用層的出票提供了有力的保障。服務層的重點在于工作流程可以對所有任何數據層快速調用,從而為應用層提供如分析、統計、查詢等功能上的支持,為系統對售票信息的判斷、管理與推送提供便捷。展現層更多的是關注用戶的體驗。不僅能夠為用戶提供全面、準確的快速訪問導航,還可以滿足系統自身的發展需要。即使在鐵路售票的高峰期,出現海量的訪問需求,也可以為用戶提供良好的購票體驗,有效避免了網站堵塞或崩潰現象的發生。與此同時,還實現了在升級與改造成本上的控制,通過充分利用大數據查詢技術優勢對系統進行升級與改造,能夠避免過多使用高成本、高性能設備,降低了投入成本。
總結:綜上所述,當前基于NoSQL數據庫的大數據查詢技術在眾多領域被廣泛應用,為數據庫的發展和應用提供了有力的技術保障。其在互聯網數據訪問需求方面具有明顯的優勢,提高了數據的擴展能力與查詢速率。