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 或關聯式 | |
---|---|---|
最適合: |
|
|
案例: |
|
|
調整: |
|
|
資料模型: |
|
|
|
如何評估 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 在可大規模調整的全域分散式多模型資料庫服務的原生支援。