中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

SQL or NoSQL——云計算環(huán)境中該選擇誰?

2019-02-26    來源:多智時代

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

中國IDC圈7月19日報道:NoSQL和SQL之間真正的差異是什么?實質(zhì)上,是因為不同的訪問模式導致了NoSQL和SQL可擴展性和性能上的不同。

NoSQL只允許數(shù)據(jù)在受限的預定義模式訪問。例如DHT (Distributed Hash Table)通過hashtable API訪問。其他NoSQL數(shù)據(jù)服務(wù)訪問模式同樣受限。因此可擴展性和性能結(jié)構(gòu)是可預測和可靠的。

而在SQL中,訪問模式預先是不知道的,SQL是一種通用語言,允許數(shù)據(jù)以各種方式訪問,程序員也對SQL語句的執(zhí)行能力控制有限。

換句話說,在SQL中,數(shù)據(jù)模型不執(zhí)行特定的工作方式與數(shù)據(jù)。強調(diào)建立數(shù)據(jù)完整性、簡潔性、標準化和抽象化。這對于所有大型復雜的應(yīng)用極為重要。

為什么是NoSQL

NoSQL提供的方法對于SQL數(shù)據(jù)庫來說有巨大的優(yōu)勢。因為它允許應(yīng)用程序擴展的新的水平。新的數(shù)據(jù)服務(wù)基于真正可擴展的結(jié)構(gòu)和體系構(gòu)建云、構(gòu)建分布式。這對于應(yīng)用開發(fā)來說是非常有吸引力的。無需DBA,無需復雜的SQL查詢。

這是不小的問題,一個好程序員自由選擇一個數(shù)據(jù)模型,使用熟悉的工具寫應(yīng)用程序,減少對他人的依賴于,并測試和優(yōu)化的代碼,而不做猜測或一個黑盒(DB)的計數(shù)。

這些都是NoSQL運動的所有主要優(yōu)勢,但NoSQL也非萬能,具體而言,數(shù)據(jù)模型的選擇、接口規(guī)范以及當前面臨的新業(yè)務(wù)比如移動業(yè)務(wù)數(shù)據(jù)的處理問題,都是NoSQL無法回避的。

NoSQL絕非萬能

數(shù)據(jù)模型

如果沒有一個統(tǒng)一的、定義良好的數(shù)據(jù)模型,無論采用何種技術(shù)都有缺陷。

SQL的數(shù)據(jù)模型定義了高度結(jié)構(gòu)化的數(shù)據(jù)結(jié)構(gòu),以及對這些結(jié)構(gòu)之間關(guān)系的嚴格定義。在這樣的數(shù)據(jù)模型上執(zhí)行的查詢操作會比較局限,而且可能會導致復雜的數(shù)據(jù)遍歷操作。但是數(shù)據(jù)結(jié)構(gòu)的復雜性及查詢的復雜性,會導致系統(tǒng)產(chǎn)生如下的一些限制:比如當數(shù)據(jù)量增長到一臺機器已經(jīng)不能容納,我們需要將不同的數(shù)據(jù)表分布到不同的機器;如果你的結(jié)構(gòu)化數(shù)據(jù)并沒有那么強,或者對每一行數(shù)據(jù)的要求比較靈活,那可能關(guān)系型的數(shù)據(jù)模型就太過嚴格了;再有,使用簡單的查詢語言可能會導致應(yīng)用層的邏輯更復雜,但是這樣可以將存儲系統(tǒng)的工作簡單化,讓它只需要響應(yīng)一些簡單的請求。

此外,NoSQL數(shù)據(jù)庫并非是唯一適合存儲大量數(shù)據(jù)或大型數(shù)據(jù),顯然,通過良好的分區(qū)設(shè)計,SQL數(shù)據(jù)庫也可以獲得極好的擴展性。

接口和互操作問題

不可否認,NoSQL的數(shù)據(jù)服務(wù)接口還有待規(guī)范。比如DHT,這是一個簡單的接口,但仍舊沒有標準的語義。每個DHT服務(wù)都使用其自己的一套接口。另一個大問題是不同的數(shù)據(jù)結(jié)構(gòu),如 DHT和binary tree,只是作為一個例子,共享數(shù)據(jù)對象。所有這些服務(wù)中,指針沒有內(nèi)在的語義。事實上,這些服務(wù)中,處理互操作性是開發(fā)者的職責,這一點很很重要,尤其是當需要數(shù)據(jù)被多個服務(wù)訪問時。一個簡單的例子:后臺工作由Java實現(xiàn),Web服務(wù)類工作由PHP實現(xiàn),數(shù)據(jù)可以被輕易地從兩個域訪問數(shù)據(jù)嗎?顯然,人們可以使用Web服務(wù)作為前端數(shù)據(jù)訪問層,但是,NoSQL有可能讓事情變得更復雜,并降低了業(yè)務(wù)敏捷性,靈活性和性能,同時增加了開發(fā)工作量。

移動業(yè)務(wù)

在移動業(yè)務(wù)領(lǐng)域,需要一套工具,這套工具不僅要有可擴展性,而且還易于管理并且穩(wěn)定,并在云上有一個固定的設(shè)置服務(wù)器。當系統(tǒng)出現(xiàn)問題的時候,可以不需要通過判斷整個系統(tǒng)或開發(fā)平臺來診斷問題,而是通過遠程訪問——這正是運維經(jīng)理們所要面對的問題,但是在目前NoSQL所能提供的服務(wù)功能來看,很難實現(xiàn),即便是Amazon的托管環(huán)境。

SQL和NoSQL如何結(jié)合?

總而言之,在NoSQL和SQL的選擇上,需要了解到以下內(nèi)容:

數(shù)據(jù)模型及操作模型:你的應(yīng)用層數(shù)據(jù)模型是行、對象還是文檔型的呢?這個系統(tǒng)是否能支持你進行一些統(tǒng)計工作呢?

可靠性:當你更新數(shù)據(jù)時,新的數(shù)據(jù)是否立刻寫到持久化存儲中去了?新的數(shù)據(jù)是否同步到多臺機器上了?

擴展性:你的數(shù)據(jù)量有多大,單機是否能容下?你的讀寫量求單機是否能支持?

分區(qū)策略:考慮到你對擴展性,可用性或者持久性的要求,你是否需要一份數(shù)據(jù)被存在多臺機器上?你是否需要知道數(shù)據(jù)在哪臺機器上,以及你能否知道。

一致性:你的數(shù)據(jù)是否被復制到了多臺機器上,這些分布在不同點的數(shù)據(jù)如何保證一致性?

事務(wù)機制:你的業(yè)務(wù)是否需要ACID的事務(wù)機制?

單機性能:如果你打算持久化的將數(shù)據(jù)存在磁盤上,哪種數(shù)據(jù)結(jié)構(gòu)能滿足你的需求(你的需求是讀多還是寫多)?寫操作是否會成為磁盤瓶頸?

負載可評估:對于一個讀多寫少的應(yīng)用,諸如響應(yīng)用戶請求的web應(yīng)用,我們總會花很多精力來負載情況。你可能需要進行數(shù)據(jù)規(guī)模的監(jiān)控,對多個用戶的數(shù)據(jù)進行匯總統(tǒng)計。你的應(yīng)用場景是否需要這樣的功能呢?

使用NoSQL架構(gòu)實現(xiàn)SQL數(shù)據(jù)庫?

使用NoSQL的基礎(chǔ)架構(gòu)實現(xiàn)SQL數(shù)據(jù)庫是一個很好的解決方案。一個SQL數(shù)據(jù)庫是可擴展、易管理,云就緒、高度可用的,完全建立在NoSQL的基礎(chǔ)結(jié)構(gòu)(分布式)上,但仍然提供SQL數(shù)據(jù)庫的所有優(yōu)勢,如互操作性,定義良好的語義以及更多。

這種混合結(jié)構(gòu)也許不如純粹的NoSQL的服務(wù),但足以滿足需要更穩(wěn)定系統(tǒng)、可擴展性和云服務(wù)的80%的市場需求。

這種解決辦法還允許很容易地遷移現(xiàn)有的應(yīng)用到云環(huán)境,從而保護相關(guān)組織在這些應(yīng)用上所付出的巨大的投資。

在我看來,構(gòu)建于NoSQL基礎(chǔ)之上的SQL數(shù)據(jù)庫,可以為那些在其成長期間期望靈活、高效的客戶提供最高的價值。

在不久的將來,云計算一定會徹底走入我們的生活,有興趣入行未來前沿產(chǎn)業(yè)的朋友,可以收藏云計算,及時獲取人工智能、大數(shù)據(jù)、云計算和物聯(lián)網(wǎng)的前沿資訊和基礎(chǔ)知識,讓我們一起攜手,引領(lǐng)人工智能的未來!

標簽: idc 大數(shù)據(jù) 代碼 服務(wù)器 開發(fā)者 數(shù)據(jù)庫 云服務(wù) 云計算

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:如何降低你的云存儲成本

下一篇:優(yōu)惠券