一般 Azure Cosmos DB 使用案例
適用於:NoSQL MongoDB Cassandra Gremlin 桌子
本文提供數個常見的 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 以進行資料存取,包括 API for MongoDB、API for NoSQL、API for Gremlin 和 API for Table。
以下是 Azure Cosmos DB 的一些特性,可讓 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、EventHubs 和 Apache Storm 的範例 IoT 解決方案,請參閱 GitHub 上的 hdinsight-storm-examples 存放庫 (英文)。
如需有關適用於 IoT 的 Azure 供應項目詳細資訊,請參閱 建立您的物聯網。
零售和行銷
Azure Cosmos DB 廣泛用於 Microsoft 自己的電子商務平台,這些平台執行了 Windows 市集和 XBox Live。 Azure Cosmos DB 也在零售業用於儲存目錄資料,並用於訂單處理管線中事件來源。
目錄資料使用方式案例涉及儲存和查詢一組實體屬性,例如人員、地點和產品。 目錄資料的一些範例包括使用者帳戶、產品目錄、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 ID 找出玩家,或根據玩家的公會成員資格進行查詢。 不用建置複雜的索引或分區化基礎結構就可做到這些事。
- 透過彈性的結構描述更加輕易地實作社交功能,包括遊戲中的交談訊息、玩家的公會成員資格、已完成的挑戰、得分排行榜和社交關係圖。
- 由於 Azure Cosmos DB 是作為一個受控平台即服務 (PaaS),因此只需最基本的設定和管理工作,就能快速重覆作業而能縮短上市時間。
Web 與行動應用程式
Azure Cosmos DB 通常是在 Web 和行動應用程式內使用,而且非常適合用於建立社交互動模型、與協力廠商服務整合,以及建立豐富的個人化體驗。 Azure Cosmos DB SDK 可用來建置使用熱門 Xamarin 架構的豐富 iOS 和 Android 應用程式。
社交應用程式
其中一個常見的 Azure Cosmos DB 使用案例,就是針對網路、行動和社交媒體應用程式儲存和查詢使用者產生的內容 (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 中,是跨不同線路取得這項資料的有效方法。