什麼是NoSQL?| 非關聯式資料庫 - AWS
文章推薦指數: 80 %
文件和文件資料庫的靈活、半結構化和分層化特性允許它們隨應用程式的需求而演變。
文件模型適用於目錄、使用者設定檔和內容管理系統,其中每個文件都是唯一的並且隨著時間的 ...
什麼是NoSQL?
具備彈性資料模型的高效能非關聯式資料庫
開始使用DynamoDB
什麼是NoSQL資料庫?
NoSQL資料庫是為特定資料模型而建立,並且具有構建新型應用程式的彈性結構描述。
NoSQL資料庫在開發的容易性、功能性和大規模效能方面廣受肯定。
本頁提供的資源內容,可協助您更瞭解並開始使用NoSQL資料庫。
AWS上的資料庫:針對適合任務的合適工具
NoSQL(非關聯式)資料庫如何運作?
NoSQL資料庫使用多種資料模型來存取及管理資料。
這些類型的資料庫透過放寬傳統關聯式資料庫的一些資料一致性限制,特別針對需要大量資料、低延遲和彈性資料模型的應用程式進行優化。
請參考模塑簡易書籍資料庫結構描述的範例:
在關聯式資料庫中,通常會隱藏(或「正規化」)書籍記錄,並將記錄存放於個別表格中,同時以主鍵和外鍵限制來定義關係。
在此範例中,書籍表格有ISBN、書名和版本編號欄,作者表格有AuthorID和作者名稱欄,最後Author-ISBN表格有AuthorID和ISBN欄。
關聯式模型的設計是使資料庫強化資料庫表格間的參考完整性,並經過正規化以減少重複,而且針對儲存加以整體優化。
在NoSQL資料庫中,書籍資料通常儲存為JSON文件。
就每一本書,將項目、ISBN、書名、版本編號、作者名稱和AuthorID存成單一文件中的屬性。
在此模型中,資料針對直覺開發和橫向擴充進行優化。
為何您應該使用NoSQL資料庫?
NoSQL資料庫非常適合行動、Web、遊戲等需要彈性、可擴展性、高效能和高功能資料庫的新型應用程式,以利打造絕佳的使用者體驗。
彈性:NoSQL資料庫整體而言提供促進更快速及更能反覆開發的彈性結構描述。
具彈性的資料模型讓NoSQL資料庫成為半結構和非結構式資料的理想資料庫。
可擴展性:NoSQL資料庫一般的設計都能透過硬體的分散式叢集來向外擴展,而不必藉由增加昂貴和重量級的伺服器來進行垂直擴展。
有些雲端供應商背後將這些操作處理成全受管服務。
高效能:NoSQL資料庫針對特定資料模型加以優化,並且存取比使用關聯式資料庫達到相同功能的更高效能模式。
高功能性:NoSQL資料庫提供專為各別資料模型而建造的高功能API和資料。
NoSQL資料庫的類型
鍵值:鍵值資料庫具備高度可分割性,允許其他類型資料庫無法達到的大規模橫向擴展。
遊戲、廣告科技和IoT等使用案例特別適合採用鍵值資料模型。
AmazonDynamoDB專門針對任何工作負載規模,保持提供個位數的毫秒延遲。
如此一致的效能表現是Snapchat限時動態功能(包括Snapchat最大的儲存寫入工作負載)轉移到DynamoDB的一大部分原因。
文件:在應用程式程式碼中,資料通常表示為物件或類似JSON的文件,因為它對於開發人員而言是高效且直覺式的資料模型。
文件資料庫讓開發人員可以使用他們在應用程式程式碼中使用的相同文件模型格式,更輕鬆地儲存和查詢資料庫中的資料。
文件和文件資料庫的靈活、半結構化和分層化特性允許它們隨應用程式的需求而演變。
文件模型適用於目錄、使用者設定檔和內容管理系統,其中每個文件都是唯一的並且隨著時間的推移而演變。
AmazonDocumentDB(與MongoDB相容)和MongoDB為彈性的反覆開發提供強大且直覺式的API,是廣受歡迎的文件資料庫。
圖形:圖形資料庫的目的在於方便建造與執行作用在高度連結資料集的應用程式。
圖形資料庫常見的使用案例包括社群聯網、推薦引擎、詐欺偵測和知識結構圖。
AmazonNeptune是一種全受管圖形資料庫服務。
Neptune同時支援屬性圖模型和資源描述框架(RDF),提供兩種圖形API選擇:TinkerPop和RDF/SPARQL。
受歡迎的圖形資料庫包括Neo4j和Giraph。
內存:遊戲和廣告科技應用程式有分數排行榜、期間存儲和即時分析等需要微秒回應時間,且流量中隨時可能出現大型峰值的使用案例。
AmazonMemoryDBforRedis 是一種與Redis相容的持久性記憶體內資料庫服務,可提供微秒級讀取延遲、不到十毫秒的寫入延遲和多可用區域耐久性。
MemoryDB專為提供超快效能和耐久性而建置,因此,您可以將其用作現代微型服務應用程式的主要資料庫。
AmazonElastiCache 是一種全受管記憶體內快取服務,與Redis和Memcached相容,用於服務低延遲、高輸送工作負載。
Tinder等客戶需要對其應用程式即時回應,依賴於記憶體內資料儲存,而不是以磁碟為基礎的資料存放區。
AmazonDynamoDBAccelerator(DAX) 是專門性資料儲存的另一個範例。
DAX使DynamoDB能更快讀取數量級。
搜尋:許多應用程式會產出記錄,幫助開發人員解決疑難問題。
AmazonElasticsearchService(AmazonES)專門用於提供將近即時視覺化,並且透過索引、合計與搜尋半結構記錄和指標,提供機器產生性資料的分析。
AmazonES也是針對全文搜尋使用案例的強大高效能搜尋引擎。
Expedia採用超過150個AmazonES網域、30TB資料和300億份文件進行各種關鍵性任務的使用案例,包括營運監控、疑難排解、分散式應用程式堆疊追蹤和定價優化。
SQL(關聯式)與NoSQL(非關聯式)資料庫的比較
幾十年來,用於開發應用程式的主要資料模型,均是諸如Oracle、DB2、SQLServer、MySQL和PostgreSQL等關聯式資料庫所採用的關聯式資料模型。
一直到2000年中後期,其他資料模型才開始廣受採納和運用。
為了區分和歸類這些新類型的資料庫和資料模組,因此創造了「NoSQL」這個名詞。
「NoSQL」這個名詞常常與「非關聯式」互換使用。
雖然NoSQL資料類型多樣且功能各異,但您可從以下表格瞭解SQL和NoSQL資料庫的一些差異性。
NoSQL入門
關聯式資料庫
NoSQL資料庫
最佳工作負載
關聯式資料庫專門用於交易性以及高度一致性的線上交易處理(OLTP)應用程式,並且非常適合於線上分析處理(OLAP)使用。
NoSQL資料庫專門用於包含低延遲應用程式的多樣資料存取模式。
NoSQL搜尋資料庫專門用於進行半結構資料的分析。
資料模型
關聯式模型將資料標準化,成為由列和欄組成的表格。
結構描述嚴格定義表格、列、欄、索引、表格之間的關係,以及其他資料庫元素。
此類資料庫強化資料庫表格間的參考完整性。
NoSQL資料庫提供鍵值、文件和圖形等多種資料模型,具有最佳化的效能與規模。
ACID屬性
關聯式資料庫則提供單元性、一致性、隔離性和耐用性(ACID)的屬性:
單元性要求交易完整執行或完全不執行。
一致性要求進行交易時資料就必須符合資料庫結構描述。
隔離性要求並行的交易必須分開執行。
耐用性要求從意外的系統故障或停電狀況還原成上個已知狀態的能力。
NoSQL資料庫通常透過鬆綁部分關聯式資料庫的ACID屬性來取捨,以達到能夠橫向擴展的更彈性化資料模型。
這使得NoSQL資料庫成為橫向擴展超過單執行個體上限的高吞吐量、低延遲使用案例的最佳選擇。
效能
一般而言,效能取決於磁碟子系統。
若要達到頂級效能,通常必須針對查詢、索引及表格結構進行優化。
效能通常會受到基礎硬體叢集大小、網路延遲,以及呼叫應用程式的影響。
擴展
關聯式資料庫通常透過增加硬體運算能力向上擴展,或以新增唯讀工作負載複本的方式向外擴展。
NoSQL資料庫通常可分割,因為存取模式可透過使用分散式架構來向外擴展,以近乎無限規模的方式提供一致效能來增加資料吞吐量。
API
存放和擷取資料的請求是透過符合結構式查詢語言(SQL)的查詢進行通訊。
這些查詢是由關聯式資料庫剖析和執行。
以物件為基礎的API讓應用程式開發人員可輕鬆存放和擷取資料結構。
應用程式可透過分區索引鍵查詢鍵值組、欄集,或包含序列化應用程式物件與屬性的半結構化文件。
SQL與NoSQL術語的比較
以下表格比較特定NoSQL資料庫與SQL資料庫所用的術語。
SQL
MongoDB
DynamoDB
Cassandra
Couchbase
表
集合
表
表
資料儲存貯體
列
文件
項目
列
文件
欄
欄位
屬性
欄
欄位
主索引鍵
物件ID
主索引鍵
主索引鍵
文件ID
索引
索引
次要索引
索引
索引
檢視
檢視
全域次要索引
具體化檢視
檢視
巢狀表格或物件
內嵌文件
對應
對應
對應
陣列
陣列
清單
清單
清單
清單
清單
主索引鍵
開始使用DynamoDB
開始使用DynamoDB非常簡單。
參考我們的DynamoDB入門網頁,只需按幾下滑鼠就可以建立您的第一個表。
您也可以下載AWS白皮書,瞭解從關聯式資料庫管理系統(RDBMS)轉移到DynamoDB的最佳實務。
開始使用AmazonDynamoDB
什麼是AmazonDynamoDB?
更多資源
開始使用AmazonElastiCache
開始使用AmazonNeptune
開始使用AmazonElasticsearch
準備好開始建立?
AWS入門
有問題?
聯絡我們
結束對InternetExplorer的支援
知道了
AWS對InternetExplorer的支援將於07/31/2022結束。
支援的瀏覽器包括Chrome、Firefox、Edge和Safari。
進一步了解»
知道了
延伸文章資訊
- 1結構化資料vs. 非結構化資料
NoSQL 資料庫沒有固定模式或表格化的架構,它僅只是將資料收集並分類群組。 使用整合式高速檔案暨高速物件儲存(UFFO) 解決方案來儲存非結構化資料. 綜合以上內容,雖然非 ...
- 2結構化與非結構化資料| Seagate 台灣
非結構化資料是保持原始格式的資訊,通常位在收集到該資料的原始位置或鄰近位置,或位在資料湖內— 相對上未多加區別的資料集區。所有類型的原始資料,即使尚未經過任何分類 ...
- 3什麼是NoSQL?| 非關聯式資料庫 - AWS
文件和文件資料庫的靈活、半結構化和分層化特性允許它們隨應用程式的需求而演變。文件模型適用於目錄、使用者設定檔和內容管理系統,其中每個文件都是唯一的並且隨著時間的 ...
- 4[瞭解資料特徵]Part1-結構化與非結構化資料
非結構化資料:形式自由且不遵循標準的格式規範,一團沒有組織的數據。非結構化數據的示例包括圖像,音頻,視頻,電子郵件,電子表格和文字處理文檔,實質上是存儲為文件 ...
- 5什麼是非結構化資料?
非結構化資料是缺乏可識別的結構或架構的資料,這意味著它不符合預先定義的資料模型,因此不適合用於主流關聯式資料庫,因為沒有易於識別的結構會使電腦程式難以讀取。