本文提供數個 Azure Cosmos DB 常見使用案例概觀。 本文中的建議可作為使用 Azure Cosmos DB 開發應用程式時的起點。
閱讀完本文後,您將可以回答下列問題:
- Azure Cosmos DB 的常見使用案例是什麼?
- 將 Azure Cosmos DB 用於零售應用程式有哪些優點?
- 使用 Azure Cosmos DB 作為物聯網 (IoT) 系統的資料存放區有哪些優點?
- 將 Azure Cosmos DB 用於 Web 與行動應用程式有哪些優點?
簡介
Azure Cosmos DB 是快速 NoSQL 資料庫的 Azure 解決方案,支援任何規模的開放式 API。 此服務的設計目的,是要讓客戶在任意數目的地理區域中,有彈性地 (且獨立地) 調整輸送量和儲存體空間。 Azure Cosmos DB 是現今市場中第一個全域分散式資料庫服務,提供涵蓋輸送量、延遲、可用性及一致性的全方位服務等級協定。
Azure Cosmos DB 是一種全域分散式、多模型的資料庫,廣泛用於各種應用程式和使用案例。 對於任何需要低毫秒回應時間且需要快速且全域調整的 無伺服器 應用程式而言,這是不錯的選擇。 它以原生方式和可延伸的方式支援多個資料模型 (索引鍵值、文件、圖形及分欄格式) 和許多資料存取的 Azure Cosmos DB API,包括適用於 MongoDB 的 API 、適用於 NoSQL 的 API 、適用於 Gremlin 的 API 和適用於資料表的 API。
以下是 Azure Cosmos DB 的一些特性,使其非常適合用於有全域發展企圖的高效能應用程式。
- Azure Cosmos DB 會以原生方式分割您的資料,以達到高可用性和可擴縮性。 Azure Cosmos DB 為所有單一區域帳戶和具有寬鬆一致性的所有多重區域帳戶提供 99.99% 保證的可用性、輸送量、低延遲和一致性,並為所有多重區域資料庫帳戶提供 99.999% 保證的讀取可用性。
- Azure Cosmos DB 具有 SSD 支援的儲存體,其具有低延遲毫秒級回應時間。
- Azure Cosmos DB 支援一致性層級,例如最終、一致的前綴、工作階段和限定過期,可提供完整的彈性和低成本效益比。 沒有其他資料庫服務可在一致性層級上,能提供像 Azure Cosmos DB 一樣多的彈性。
- Azure Cosmos DB 具有彈性的資料友善定價模型,可獨立計量儲存體和輸送量。
- Azure Cosmos DB 的保留輸送量模型讓您可以考慮讀取/寫入數目,而不是基礎硬體的 CPU/記憶體/IOP。
- Azure Cosmos DB 的設計讓您可以按照每天數兆個要求的順序來擴展以因應大量要求。
對於需要低回應時間,且必須處理大量讀取和寫入的 Web 應用程式、行動應用程式、遊戲應用程式和 IoT 應用程式來說,這些特性很有助益。
IoT 與車載資訊系統
IoT 使用案例通常會在擷取、處理及儲存資料的方式中,共用一些模式。 首先,這些系統需要從各種地區設定的裝置感應器擷取暴增的資料量。 接下來,這些系統會處理和分析串流資料,以派生即時深入解析。 接著會將資料封存到冷儲存體,以進行批次分析。 Microsoft Azure 提供適用於 IoT 使用案例的豐富服務,包括 Azure Cosmos DB、Azure 事件中樞、Azure 串流分析、Azure 通知中樞、Azure Machine Learning、Azure HDInsight 與 Power BI。
Azure 事件中樞可以擷取暴增的資料量,因為其提供低延遲的高輸送量資料擷取。 需要處理以進行即時深入解析的資料擷取,可以彙集到 Azure 串流分析以進行即時分析。 數據可以載入 Azure Cosmos DB 以進行臨機作查詢。 將資料載入到 Azure Cosmos DB 之後,資料便已準備好進行查詢。 此外,您可以在變更摘要上讀取新資料和現有資料的變更。 變更摘要是永久性的僅限附加記錄,會以循序方式儲存 Azure Cosmos DB 容器的變更。 然後,Azure Cosmos DB 中的全部資料或僅資料變更可作為即時分析中的參考資料使用。 此外,您可以將 Azure Cosmos DB 資料連線至 HDInsight for Pig、Hive 或 Map/Reduce 工作,以進一步精簡和處理資料。 然後,精簡的資料會載入回 Azure Cosmos DB 以進行報告。
如需使用 Azure Cosmos DB、事件中樞和 Apache Storm 的範例 IoT 解決方案,請參閱 GitHub 上的 hdinsight-storm-examples 存放庫。
有關適用於 IoT 的 Azure 供應項目的詳細資訊,請參閱 建立您的物聯網。
零售與行銷
Azure Cosmos DB 廣泛用於 Microsoft 自己的電子商務平台,這些平台執行 Windows Store 和 XBox Live。 其也會使用於零售產業,以供儲存目錄資料以及在訂單處理管線中進行事件溯源。
目錄資料使用方式情境涉及儲存和查詢一組實體的屬性,例如人員、地點和產品。 目錄資料的一些範例包括使用者帳戶、產品目錄、IoT 裝置登錄,和材料表系統。 此數據的屬性可能會有所不同,而且可能會隨著時間而變更,以符合應用程式需求。
請思考汽車零件供應商產品目錄的範例。 除了所有元件共用的通用屬性之外,每個元件可能都有自己的屬性。 此外,特定零件的屬性可能會在明年發行新的模型時變更。 Azure Cosmos DB 支援彈性架構和階層式數據,因此非常適合用來儲存產品目錄數據。
Azure Cosmos DB 通常用於事件溯源,使用其變更摘要功能來推動事件導向型架構。 變更摘要讓下游微服務能夠確實且循序漸進地讀取插入和對 Azure Cosmos DB 進行的更新 (例如訂單事件)。 這項功能可用來提供持續事件存放區,以作為許多微服務 (能夠以無伺服器 Azure Functions 實作) 之間狀態變更事件和訂單處理工作流程的訊息代理。
此外,儲存在 Azure Cosmos DB 中的資料還可以與 HDInsight 整合,以透過 Apache Spark 工作進行巨量資料分析。 有關適用於 Azure Cosmos DB 的 Spark Connector 的詳細資訊,請參閱使用 Azure Cosmos DB 和 HDInsight 執行 Spark 作業。
遊戲
資料庫層是遊戲應用程式的重要元件。 現代遊戲在行動裝置/主機用戶端上進行圖形處理,但僅仰賴雲端來提供自訂和個人化的內容,例如遊戲內數據、社交媒體整合以及高分排行榜。 遊戲通常需要一毫秒的讀取和寫入延遲,以提供吸引人的遊戲體驗。 遊戲資料庫需要快速運行,且在新遊戲啟動和功能更新的期間要能夠處理要求率激增的情形。
Azure Cosmos DB 已獲 The Walking Dead: No Man's Land (由 Next Games 製作) 和 Halo 5: Guardians (由 343 Industries 製作) 等遊戲採用。 Azure Cosmos DB 可為遊戲開發人員提供下列優點︰
- Azure Cosmos DB 可彈性調高或調降效能。 這可讓遊戲藉由單一 API 呼叫就能處理十幾名到數百萬名同步玩家的更新設定檔和狀態。
- Azure Cosmos DB 支援毫秒讀取和寫入,可避免在進行遊戲時發生任何延遲。
- Azure Cosmos DB 的自動索引編製可針對多個不同的屬性進行即時篩選,例如依玩家的內部玩家識別碼、GameCenter、Facebook、Google 識別碼找出玩家,或根據玩家的公會成員資格進行查詢。 不用構建複雜的索引或分區化基礎結構就可做到這些事。
- 透過彈性的結構描述更容易實作包括遊戲中交談訊息、玩家的公會成員資格、已完成的挑戰、高分排行榜和社交關係圖在內的社交功能。
- 由於 Azure Cosmos DB 是作為一個受控平台即服務 (PaaS),因此只需最少的設定和管理工作,就能快速重覆作業,縮短上市時間。
Web 與行動應用程式
Azure Cosmos DB 通常是在 Web 和行動應用程式內使用,而且非常適合用於建立社交互動模型、與協力廠商服務整合,以及建立豐富的個人化體驗。 Azure Cosmos DB SDK 可用來使用 .NET 多平台應用程式 UI (.NET MAUI) 來建置豐富的 iOS 和 Android 應用程式。
社交應用程式
其中一個常見的 Azure Cosmos DB 使用案例,就是針對 web、行動裝置和社交媒體應用程式儲存和查詢使用者產生的內容 (UGC)。 一些 UGC 的範例包括聊天工作階段、推特貼文、部落格文章、評等和註解。 通常,社交媒體應用程式中的UGC混合了自由格式文字、屬性、標籤和關聯性,這些關聯性不受固定結構約束。 聊天、評論及貼文之類的內容可以儲存在 Azure Cosmos DB 中,無需轉換成關聯式對應層或複雜的物件。 開發人員在反覆查看應用程式的程式碼時,可以輕鬆新增或修改資料屬性以符合需求,進而加快開發的速度。
與第三方社交網路整合的應用程式必須回應這些網路不斷變更的結構描述。 在 Azure Cosmos DB 中預設會自動為資料編製索引,因此資料隨時可供查詢。 因此,這些應用程式可以根據其各自的需求,彈性擷取投射。
許多社交應用程式是以全域規模運作,且可能出現無法預期的使用模式。 縮放資料存放區的彈性十分重要,因為應用程式層會進行縮放以符合使用需求。 您可以透過在 Azure Cosmos DB 帳戶底下新增其他資料分割區來擴展。 此外,您也可以跨多個區域建立其他 Azure Cosmos DB 帳戶。 如需了解 Azure Cosmos DB 服務區域可用性,請參閱 Azure 區域。
個人化
今日,新式應用程式具備複雜的視圖和體驗。 這些通常是動態的,可根據使用者的偏好設定或心情和品牌需求來量身訂做。 因此,應用程式需要能夠有效擷取個人化設定,才能快速呈現 UI 元素和體驗。
JSON 是 Azure Cosmos DB 所支援的格式,是代表 UI 版面配置數據的有效格式,因為它不僅輕量型,而且可由 JavaScript 輕鬆解譯。 Azure Cosmos DB 提供可微調的一致性層級,允許快速讀取和低延遲寫入。 因此,將包括個人化設定在內的 UI 版面配置資料以 JSON 文件形式儲存在 Azure Cosmos DB 中,是跨不同線路取得此資料的有效方法。