查看部署选项
您可以使用不同的部署类型、云提供商和集群层来构建 Atlas 集群,以满足预生产或生产环境的需求。 使用这些建议来选择部署类型、云提供商和区域以及用于执行向量Atlas Search的集群和Atlas Search层。
environment | 部署类型 | 集群层 | 云提供商地区 | 节点架构 |
---|---|---|---|---|
测试查询 | Shared or dedicated cluster Local deployment | M0 , M2 , M5 , or higher tierN/A | All N/A | MongoDB和Atlas Search进程在同一节点上运行 |
应用程序原型设计 | 专用集群 | M10 、 M20 或更高层 | 所有 | MongoDB和Atlas Search进程在同一节点上运行 |
生产 | 具有独立搜索节点的专用集群 | M10 或更高集群层以及S30 或更高搜索层 | 某些地区使用AWS ,或所有地区使用 Google Cloud 和Azure | MongoDB和Atlas Search进程在不同节点上运行 |
要了解有关这些部署模型的更多信息,请查看以下部分:
测试和原型环境
为了测试向量搜索查询和构建应用程序原型,我们建议使用以下配置。
部署类型
要测试 Atlas Vector Search 查询,您可以部署共享或专用集群或本地 Atlas 部署。
如果您希望在本地测试 Atlas Vector Search 查询,则可以使用 Atlas CLI 部署在本地计算机上托管的单节点副本集。要开始使用,请完成Atlas Vector Search 快速入门,然后选择用于本地部署的标签页。
当您的应用程序准备好投入生产时,使用实时迁移将本地 Atlas 部署迁移到生产环境。本地部署受到本地计算机的 CPU、内存和存储资源的限制。
节点架构
在此部署模型中,搜索mongot
进程与 Atlas 集群中的每个节点上的mongod
一起运行。 mongod
进程将查询路由到同一节点上的mongot
,并且它们共享相同的资源。
默认情况下,当您创建第一个 Atlas Vector Search 索引时,Atlas 在运行mongod
进程的同一节点上启用搜索mongot
进程。 mongot
进程执行关于mongot
进程中描述的操作。
限制
您可能会遇到数据库mongod
和搜索mongot
进程之间的资源争用。这可能会对索引性能和查询延迟产生负面影响。我们建议仅将这种部署模型用于测试和原型设计环境。对于生产就绪的应用程序和相关搜索工作负载,我们建议迁移到专用搜索节点。
生产环境
对于生产就绪的应用程序,我们建议使用以下集群配置。
部署类型
对于生产就绪的应用程序,您需要专用的集群。
集群层
专用集群包括M10
和更高层级。 M10
和M20
层适用于开发和生产环境。但是,较高的层级可以处理大型数据集和生产工作负载。我们建议您还为搜索工作负载部署专用搜索节点。这样,您就可以独立、适当地扩展搜索部署。
云提供商和地区
您选择的云提供商和区域会影响可用于集群的配置选项和搜索层以及运行集群的成本。
所有集群层在所有受支持的云提供商区域均可用,某些AWS区域除外。对于AWS上托管的集群,您必须选择可用于部署的云提供商。
节点架构
在此部署模型中, mongot
进程在搜索节点上运行,这些节点与运行mongod
进程的集群节点是分开的。 Atlas 为每个集群或集群上的每个分片部署搜索节点。
例如,如果您为具有三个分片的集群部署两个搜索节点,则 Atlas 会部署六个搜索节点,每个分片两个。您还可以配置搜索节点的数量以及为每个搜索节点预配的资源量。
当您部署单独的搜索节点时,Atlas 会自动为每个mongod
分配一个mongot
以便编制索引。mongot
与mongod
通信,侦听并同步其存储的索引的索引更改。 Atlas Vector Search 对查询进行索引和处理的方式与mongod
和mongot
进程在同一节点上运行时类似。要了解更多信息,请参阅 如何为向量搜索的字段编制索引 和 运行向量搜索查询 。要了解有关单独部署搜索节点的更多信息,请参阅 用于隔离工作负载的搜索节点。
当您迁移到搜索节点时,Atlas 会部署搜索节点,但在这些节点上成功构建集群上的所有索引之前,不会在这些节点上提供查询服务。当 Atlas 在新节点上构建索引时,它会继续使用集群节点上的索引来提供查询服务。 Atlas 仅在成功在搜索节点上构建索引并删除集群节点上的索引后,才开始为来自搜索节点的查询提供服务。
如果删除集群上的所有搜索节点,则在处理搜索查询结果时会出现中断。要了解更多信息,请参阅修改集群。如果删除 Atlas 集群,Atlas 会暂停,然后删除所有关联的 Atlas Vector Search 部署( mongot
进程)。
收益分析
此部署模型具有以下优点:
高效利用资源,同时确保资源对Atlas Search工作负载具有高可用性。
Atlas Search部署的大小和扩展独立于数据库部署。
同时自动处理 Atlas Vector Search 查询,从而缩短响应时间,尤其是在处理大型数据集时。要了解更多信息,请参阅跨分段并行查询执行。
调整集群大小和扩展
Atlas Vector Search 将整个索引保存在内存中,因此您需要确保有足够的内存用于 Atlas Vector Search 索引和JVM 。 我们建议节点的 RAM 至少比 Atlas Vector Search 索引的总大小大10 %。 每个索引都是被索引向量和其他元数据的组合。 索引大小主要由要创建索引的向量的大小决定。 虽然索引大小可能会因元数据量而异,但额外的元数据所需的内存通常很小。
考虑单个向量的以下要求:
嵌入模型 | 向量维度 | 空间要求 |
---|---|---|
OpenAI text-embedding-ada-002 | 1536 | 6 kb |
谷歌 text-embedding-gecko | 768 | 3 kb |
所需空间与要建立索引的向量数量和向量维度呈线性增长。您还可以使用 Search Index Size指标来确定搜索节点上所需的空间和内存量。
部署专用搜索节点时,可以选择不同的搜索层级。每个搜索层都有默认的 RAM 容量、存储容量和 CPU。这样,您就可以独立于数据库部署来调整集群的大小和扩展。要单独扩展搜索部署,您可以随时对集群配置进行以下更改:
调整集群上的搜索节点数量。
通过更改 层来调整节点的 CPU、RAMAtlas Search 和存储。
注意
要了解有关搜索节点和搜索层成本的更多信息,请展开View all plan features并单击MongoDB 定价页面中的Atlas Vector Search 。
迁移到专用Atlas Search节点
专用搜索节点允许您独立于集群来调整和扩展搜索部署的大小。它还消除了在同一节点上运行数据库和搜索进程的集群上可能遇到的任何资源争用。
要迁移到专用搜索节点,请对部署进行以下更改:
如果您的部署当前使用的是共享层,请将集群升级到更高的层。仅
M10
及更高集群层支持专用搜索节点。要了解有关迁移到其他集群层的更多信息,请参阅修改Cluster Tier 。专用搜索节点在部分AWS区域以及所有支持的 Google Cloud 和Azure区域中可用。确保将集群部署在搜索节点也可用的区域。如果您的现有集群位于搜索节点不可用的地区,请将集群迁移到搜索节点可用的地区。要了解更多信息,请参阅云提供商区域。
启用Search Nodes for workload isolation并配置搜索节点。要了解更多信息,请参阅添加搜索节点。