什么时候应该使用 Azure Cosmos DB for NoSQL

已完成

Azure Cosmos DB for NoSQL 是一个完全托管的 NoSQL 数据库服务,用于新式应用开发和 AI 应用开发。 它能保证毫秒级的响应时间和 99.999% 的可用性和矢量数据库功能,由 SLA 支持,具有自动且即时的可伸缩性。

对于企业方案,Azure Cosmos DB for NoSQL 具有一套全面的、经济上支持的服务级别协议 (SLA),该协议涵盖吞吐量、一致性、可用性和延迟。

Azure Cosmos DB for NoSQL 的常见用例

作为具有灵活 API 和矢量索引和搜索功能的快速 NoSQL 数据库,Azure Cosmos DB for NoSQL 非常适合许多类型和大小的应用程序。 从规模很小,到具有全球雄心壮志的高性能应用程序。 速度和灵活性使得 Azure Cosmos DB for NoSQL 非常适合 生成式 AI、Web、零售、IoT、游戏和移动应用程序。 Azure Cosmos DB for NoSQL 非常适合需要灵活性、低成本、快速响应时间的应用程序,并且能够扩展到大量或速度。

生成式 AI

生成式 AI 应用程序可能多样化且不可预知。 这些工作负载需要一个经济高效、响应迅速且可缩放的数据库平台。 用户可以将矢量直接存储在文档中,使用传统的无架构数据和高维矢量作为其他属性。 这种数据和矢量的并置可以实现高效的索引和搜索,因为矢量与它们所代表的数据存储在同一个逻辑单元中。 将矢量和数据放在一起简化了数据管理、AI 应用程序体系结构以及基于矢量的操作效率。

生成式 AI 工作负载的体系结构图,其中显示了面向最终用户的多租户 AI 代理应用程序。使用更改源引入新的或更新的数据,进行矢量化和存储。用户通过执行矢量搜索的 AI 代理进行交互,并使用 Azure Cosmos DB 中存储的聊天历史记录生成响应。

在此示例中,客户采用事务数据和操作数据,并将其矢量化为供多个 AI 代理服务客户的矢量搜索。 Azure Cosmos DB 的更改源用于处理新数据或更新数据的引入和矢量化,使其几乎实时可供用户使用。 与这些代理交互的客户会生成提示和完成,这些提示和完成也作为聊天历史记录存储在 Azure Comsos DB 中,并用于提供语义缓存以提高成本和性能。

零售/营销

Azure Cosmos DB for NoSQL 非常适合零售和营销工作负载,这些工作负载的使用情况在一年中的任意时间点都可能会经历巨大且意外的波动。 Azure Cosmos DB for NoSQL 的弹性缩放可确保数据库平台能在高峰使用期处理请求,并在非高峰期节省资金。

零售工作负载的体系结构示意图,其中显示用户浏览器连接到 Azure 应用服务上的网站,由包含静态站点数据的 Azure Blob 存储帐户支持。在后台,Azure Cosmos DB for NoSQL 帐户带有用于存储库存数据的容器以及用于存储购物车数据的容器,此帐户由应用服务 Web 应用以及 Azure 搜索实例使用,该实例通过为带有库存数据的 Azure Cosmos DB for NoSQL 帐户编制索引来生成可搜索目录。

在此示例中,一个基于 Azure Blob 存储中存储的内容构建的 JavaScript Web 应用程序将 Azure Cosmos DB for NoSQL 用作自己的后备数据库。 有多个帐户用于管理解决方案的不同方面,例如购物车、库存或目录。 然后,该解决方案使用 Azure 搜索为 Azure Cosmos DB for NoSQL 数据编制索引,为最终用户提供丰富的搜索体验。

Web/移动

许多现代社交应用程序会产生大量用户生成的内容,这些内容的数量、形态和体积各不相同。 Azure Cosmos DB for NoSQL 非常适用于此工作负载,因为此 API 可以存储不同架构的数据。 请考虑使用 NoSQL API 来处理那些随着公司计划扩展到新领域而改变或发展架构的数据。

Web 工作负载的体系结构示意图,其中显示用户浏览器连接到一个已连接到 Azure 流量管理器的 URL,从而确定正确的重定向目标。然后,三个 Azure 区域(北欧、美国西部和美国东部)中的三个 Azure 应用服务实例连接到一个全球分布式 Azure Cosmos DB for NoSQL 帐户。

此示例中,用户使用 URL 访问其浏览器中的网站。 URL 指向 Azure 流量管理器,然后 Azure 流量管理器使用内置算法来确定将用户重定向到哪个 Azure 应用服务终结点。 由于Azure Cosmos DB for NoSQL 能进行全球分发,因此只需要一个跨多个区域复制的帐户。

模块方案

请考虑本模块开头的场景:

假设你是一家零售公司的开发主管。 你的团队正在构建你的在线店面,以支持 AI 代理为用户提供丰富的体验。 你正在设计新的店面,使其可以通过各种设备(包括移动设备)访问。 团队预计在店面发布时以及各种“盛大开业”销售活动开始时,需求会出现激增。

商店成功的关键因素是公司要能通知用户发货更新信息,无论他们下单时使用的是什么设备或当前使用的是什么设备。 你的团队一直致力于处理复杂的系统,目的是管理详细的订单状态跟踪。 借助 Azure Cosmos DB 与其他 Azure 服务的紧密集成,可以考虑构建使用 Azure Cosmos DB for NoSQL 中的订单数据的解决方案,以向用户的移动设备发送通知。 当包裹发货或发出以进行交付时,通知会提醒他们。

零售工作负载的体系结构示意图,显示越来越多的用户订购产品,以及处理来自店面实例的请求的计算资源集合。在计算资源之后,Azure Cosmos DB 存储着购买数据。然后由 Azure Synapse Link 将 Azure Cosmos DB 连接至 Azure Synapse Analytics,以进行更深入的分析。最后由 Azure Functions 触发更改源,处理数据事件,然后触发 Azure 逻辑应用工作流来执行业务操作,例如在移动设备上通知用户新事件。

此示例类似于本模块简介中的示例。 要基于第一个示例进行构建,你的团队已决定采用 Azure Cosmos DB for NoSQL,选择它作为数据库。 现在你的团队可以使用 Azure Synapse Link 来准备和聚合数据,以使用 Azure Synapse Analytics 进行更深入的分析。 团队还可使用 Azure Functions 等服务对 Azure Cosmos DB 数据事件做出反应,然后触发 Azure 逻辑应用工作流,该工作流会向移动设备发送通知。