Trace Id is missing
跳至主要內容

NoSQL 資料庫 - 什麼是 NoSQL?

入門概觀

什麼是 NoSQL 資料庫?

NoSQL 資料庫也稱為「非關聯式」、「NoSQL DB」或「非 SQL」,以強調它們能夠以不同於關聯式 (SQL) 資料庫 (利用資料列和資料表) 的方式,來處理大量快速變化的非結構化資料。

NoSQL 技術大約從 1960 年代開始就已存在,但由於資料環境變化,開發人員必須做出調整才能處理雲端、行動裝置、社交媒體和巨量資料所產生數量龐大且種類繁多的資料,因此突然大受歡迎。

從熱門名人推文到電子病歷中的救生資訊,迅速就能產生新的資料和資料類型。NoSQL 資料庫已發展成可協助開發人員快速建立資料庫系統,以儲存新的資訊,並讓該項資訊立即可供搜尋、彙總和分析。

NoSQL 資料庫 (NoSQL DB) 的優點

NoSQL 資料庫可協助 IT 專業人員和開發人員管理越來越多樣化的資料類型和模型,因應新的挑戰,而且這通常具有極快的查詢速度,在處理無法預期的資料方面非常有效。這些資料庫也提供順暢的資料庫移轉,讓現有的 NoSQL 工作負載能夠順暢地移轉到雲端。

敏捷開發

NoSQL DB 能夠應對計劃以外的情況,因此滿足頻繁的軟體發行週期,並適合更快速和敏捷的應用程式開發。

彈性處理資料

NoSQL 可讓開發人員更自由、快速且彈性地變更結構描述和查詢,以配合資料需求。儲存為彙總的資訊可更輕鬆快速地反覆改善,而不需要事先設計結構描述。

以任何規模運作

NoSQL DB 能夠水平「向外」延展,且無需升級即可新增較便宜的伺服器,藉此提供卓越的作業優勢,並讓您省下開銷。其可以調整規模來處理更多資料,也能在具有高度散發性的伺服器叢集內運作單一大型資料庫。

NoSQL 資料庫的資料模型類型

大多數非關聯式高效能資料庫 (有時稱為「不只是 SQL」) 也可以處理高結構化資料,而不像關聯式 (SQL) 資料庫僅限於固定資料模型。

 

NoSQL 資料庫最常見的四種類型如下:

索引鍵/值

索引鍵/值使用雜湊表來儲存索引鍵/值組。當索引鍵為已知但與索引鍵相關聯的值為未知時,最適合使用索引鍵/值類型。

文件

文件資料庫透過將整份文件分成稱為集合的群組,來延伸索引鍵/值資料庫的概念。它們支援巢狀索引鍵/值組,並允許查詢文件內的任何屬性。

單欄式

單欄式、寬資料行或資料行系列資料庫可以有效率地儲存資料,並在多列疏鬆資料間查詢,而且有利於在資料庫的特定資料行間查詢。

圖表

圖形資料庫使用以節點和邊緣來表示互連資料的模型 (例如社交網路中人與人之間的關係),並提供簡化的儲存體及瀏覽複雜關聯性的功能。

如何在關聯式 (SQL) 資料庫與非關聯式 (NoSQL) 資料庫之間進行選擇

NoSQL 或非關聯式 SQL 或關聯式

最適合:

  • 處理大型、不相關、不定或快速變化的資料。
  • 無從驗證結構描述的資料或由應用程式指定的結構描述。
  • 效能和可用性比強式一致性更重要的應用程式。
  • 服務世界各地使用者的常駐型應用程式。
  • 處理具有可事先發現之邏輯和特定需求的關聯式資料。
  • 必須維護並在應用程式與資料庫之間保持同步的結構描述。
  • 專為關聯式結構所建置的舊版系統。
  • 需要複雜查詢或多列交易的應用程式。

案例:

  • 行動裝置應用程式。
  • 即時分析。
  • 內容管理。
  • 個人化。
  • IoT 應用程式。
  • 資料庫移轉。
  • 會計、財務和銀行系統。
  • 庫存管理系統。
  • 交易管理系統。

調整:

  • 透過跨伺服器分區來水平調整資料。
  • 透過增加伺服器負載來垂直調整資料。

資料模型:

  • 資料庫類型:索引鍵/值、文件、單欄式和圖形資料庫。
  • 根據資料庫類型儲存資料。
  • 資料庫類型:由資料列組成的資料表,並依關聯分組。
  • 使用結構化查詢語言 (SQL)。
  • 將資料儲存為資料表中的資料列;相關資料會個別儲存並聯結以進行複雜查詢。

如何評估 NoSQL DB?

選擇資料模型

許多 NoSQL 資料庫是以彙總為導向,這是您可以當做一個單位互動的資料集合。這讓它們更加適用於新式物件導向程式設計語言。選擇 NoSQL DB 時,建議您一開始選擇資料模型,然後評估支援該模型的 NoSQL 資料庫,以及每個資料庫支援的程式設計語言和 SDK。

權衡一致性取捨

大多數 NoSQL DB 可讓您從一致性範圍的任一端選擇,從強式一致性 (可供您取得最新資料,但可能需要等候),乃至於最終一致性 (可供您取得快速回應,但資料可能已過時)。還有許多支援其他一致性層級的 NoSQL 資料庫,通常比較落在這些極端值的中間。請根據您的需求,選擇在一致性模型方面可提供最大彈性和控制性的 NoSQL DB。

考量雲端和資料庫移轉

由於其分散性和水平延展性,NoSQL DB 最適用於雲端運算,但您也可以找到許多專為在內部部署或混合式案例中執行所設計的 NoSQL 資料庫系統。

評估雲端選項時,請考量下列因素:

  • 支援的資料模型。 雲端提供者支援您可能想要使用的所有資料模型嗎?
  • 部署和作業。 您可以多輕鬆地視需要部署資料庫,並將它複寫到其他區域?
  • 地理分布情況。 雲端提供者的資料中心位於何處? 是否可以將資料放在所需位置? 如何遵循全球資料隱私權法規,例如歐盟的 GDPR?
  • 輕鬆複寫。 如何將您的資料庫複寫到不同的地理區域?
  • 延展性。 NoSQL 資料庫資源可讓您確保適當的效能,並依成長量調整嗎? 您能夠擴大、縮小或水平調整嗎?
  • 高可用性。 若發生非預期性失敗會如何? 此服務提供內建高可用性和災害復原嗎?
  • 服務等級。 提供哪種等級的可用性或延遲保證?
  • 生態系統。 資料庫是否與雲端平台的其餘部分緊密整合,又是否可以快速結合來建立新的解決方案?

NoSQL 資料庫系統的用途

如果公司想要建置需要彈性、可調整規模、高效能且高機能資料庫的行動、Web、物聯網 (IoT) 和遊戲應用程式,以提供絕佳的使用者體驗 (不論是遊戲、電子商務、巨量資料分析或即時 Web 應用程式及其他體驗),則很適合使用以 NoSQL 為基礎的資料模型。

將您的應用程式散發到世界各地

透過高可用性和災害復原改善應用程式效能,以增加更多來自世界各地的使用者。

提供即時客戶體驗

使用 NoSQL DB 提供個人化、即時建議和改善的使用者體驗。

容納各式各樣的 IoT 工作負載

即時且彈性地調整,以便處理持續的大量寫入資料擷取,並改善 IoT 應用程式的查詢效能。

增強您的電子商務應用程式

NoSQL 具有彈性的結構描述和階層式資料,因此很適合用來儲存產品目錄資料 (其中各式各樣的產品有不同的屬性)。

利用新內容與玩家互動

利用遊戲中的統計資料、社交媒體整合及排行榜等內容,提供個人化體驗。低延遲和彈性延展性可支援遊戲啟動和比賽期間的流量暴增情況。

建置無伺服器應用程式

透過立即可用性、自動編製索引、穩定的擷取率和查詢效能,順暢地調整資料擷取、輸送量和資料量。

從巨量資料取得更佳的深入解析

在快速變更的大量資料之間大規模地實作機器學習服務,並從您的分析取得更多資訊。

將現有的 NoSQL 工作負載移轉到雲端

透過移轉到雲端,花更少時間管理內部部署資料庫,同時仍可使用您現有的工具、驅動程式、程式庫和 SDK。

開始使用 NoSQL 並將資料庫移轉到雲端

了解如何利用新的靈活度、彈性和延展性來開發您的應用程式,包括管理您的資料庫系統和各式各樣的資料類型,以及為現有的 NoSQL 工作負載進行雲端資料庫移轉。 取得適用於開發人員的 Azure Cosmos DB 技術概觀 ,並深入了解 NoSQL 在可大規模調整的全域分散式多模型資料庫服務的原生支援。

深入了解 Azure Cosmos DB for NoSQL 資料  
深入了解