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 或關聯式
最適合:
  • 處理大型、不相關、不定或快速變化的資料。
  • 無從驗證結構描述的資料或由應用程式指定的結構描述。
  • 效能和可用性比強式一致性更重要的應用程式。
  • 服務世界各地使用者的 Always-on 應用程式。
  • 處理具有可事先發現之邏輯和特定需求的關聯式資料。
  • 必須維護並在應用程式與資料庫之間保持同步的結構描述。
  • 專為關聯式結構所建置的舊版系統。
  • 需要複雜查詢或多列交易的應用程式。
案例:
  • 行動應用程式。
  • 即時分析。
  • 內容管理。
  • 個人化。
  • IoT 應用程式。
  • 資料庫移轉。
  • 會計、財務和銀行系統。
  • 庫存管理系統。
  • 交易管理系統。
調整:
  • 透過跨伺服器分區來水平調整資料。
  • 透過增加伺服器負載來垂直調整資料。
資料模型:
  • 資料庫類型:索引鍵/值、文件、單欄式和圖形資料庫。
  • 根據資料庫類型儲存資料。
  • 資料庫類型:由資料列組成的資料表,並依關聯分組。
  • 使用結構化查詢語言 (SQL)。
  • 將資料儲存為資料表中的資料列;相關資料會個別儲存並聯結以進行複雜查詢。
無法使用 深入了解非關聯式資料模型 深入了解關聯式資料模型

如何評估 NoSQL DB?

選擇資料模型

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

深入了解程式設計模型和 API

權衡一致性取捨

大多數 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 在可大規模調整的全域分散式多模型資料庫服務的原生支援。

深入了解適用於 NoSQL 的 Azure Cosmos DB 資料

深入了解