Docs 主页 → 启动和管理 MongoDB → MongoDB Atlas
配置 Online Archive
重要
无服务器实例中的不可用功能
无服务器实例目前不支持此功能。要了解详情,请参阅无服务器实例限制。
概述
您可以通过指定存档规则来配置集合中要存档的数据。存档规则:
针对时间序列集合,它是用于确定何时存档数据的时间和表示 Atlas 集群存储数据的天数的数值的组合。
标准集合可以是下列其中一项:
用于确定何时存档数据的日期和表示 Atlas 集群存储数据的天数的数值的组合。
用于选择要存档的文档的自定义查询。
要配置 Atlas 集群以进行在线存档,请执行以下操作:
通过提供集合命名空间,以及用于选择要存档的集合数据的条件,来创建存档规则。
(可选)指定常用查询字段对存档数据进行分区。
在集群上配置 Online Archive 时,Atlas 会在您的集群上创建 2 个联合数据库实例,一个仅用于您的存档,一个用于您的集群和存档。
必需的访问权限
要创建 Online Archive,您必须拥有 Project Data Access Admin
或更高级别的项目访问权限。
要查看存档是否可用,您必须拥有 Project Read Only
或更高级别的访问权限。
通过 Atlas CLI 配置 Online Archive
注意
7 天后,在线存档不会存档大小低于 5 MiB 的数据。Atlas 创建存档后 7 天内,Atlas 会立即存档所有数据。7 天后,Atlas 仅当您的数据大小达到 5 MiB 时才会存档数据。
要使用 Atlas CLI 为集群创建在线存档,请运行以下命令:
atlas clusters onlineArchives create [options]
如需使用 Atlas CLI 观察特定在线存档是否可用,请运行以下命令:
atlas clusters onlineArchives watch <archiveId> [options]
要了解有关上述命令的语法和参数的更多信息,请参阅 atlas clusters onlineArchives create和atlas clusters onlineArchives watch 的 Atlas CLI 文档。
提示
请参阅:相关链接
通过 API 配置 Online Archive
注意
7 天后,在线存档不会存档大小低于 5 MiB 的数据。Atlas 创建存档后 7 天内,Atlas 会立即存档所有数据。7 天后,Atlas 仅当您的数据大小达到 5 MiB 时才会存档数据。
要从 API 配置在线存档,请向onlineArchives端点发送POST
请求。
注意
如果使用 DATE
标准,则必须指定分区键包含 date
字段。
如果集群已具有针对同一数据库和集合具有相同存档规则的Active
在线存档,则操作将失败。但是,如果现有在线存档处于Paused
或Deleted
状态,则会创建新的在线存档并将其状态设置为Active
。要了解有关语法和选项的更多信息,请参阅API。
通过用户界面配置 Online Archive
注意
7 天后,在线存档不会存档大小低于 5 MiB 的数据。Atlas 创建存档后 7 天内,Atlas 会立即存档所有数据。7 天后,Atlas 仅当您的数据大小达到 5 MiB 时才会存档数据。
要在 Atlas UI 中配置 Online Archive:
通过提供以下信息来创建Archiving Rule 。
在 Namespace 字段中指定集合命名空间,其中包括数据库名称、点 (
.
) 分隔符和集合名称(即<database>.<collection>
)。创建 Online Archive 后,您将无法修改命名空间。
选择您要存储存档数据的云提供商地区。
提示
我们建议您尽可能选择与集群相同的区域,因为如果选择不同的区域,可能会产生更高的数据传输成本。
Atlas 根据部署集群的云提供商显示云提供商地区。对于多云集群,Atlas 显示最高优先级提供商的云提供商地区。Atlas 会在与您的集群部署地区相近或完全匹配的地区旁边显示 。
注意
Atlas 创建在线存档后,您将无法修改存储区域。
为要存档的收藏类型指定选择要存档的文档所依据的标准。
注意
Atlas 运行索引充分性查询以确定存档过程的效率。如果扫描的文档数与返回的文档数之间的差值为 10 个或更多个,则查询结果会触发
Index Sufficiency Warning
(索引充分性警告)。此警告表明您的索引不足,无法实现有效的存档过程。对于基于日期的存档,您必须为日期字段创建索引。对于使用表达式的自定义条件,Atlas 可能会先转换一个值,然后再根据查询对其进行评估。
可选:指定您希望在 Online Archive 中存储数据的天数,以及您希望 Atlas 运行存档作业的时间窗口。
(可选)指定 Deletion Age Limit(删除期限限制)。
默认情况下,Atlas 不会删除存档数据。但是,如果您指定 Deletion Age Limit(删除期限限制),则可以在
7
到9125
天(25 年)的范围内指定存档数据保留期限。Atlas 会在您在指定的天数后删除存档数据。该数据过期规则在您设置 Deletion Age Limit(删除期限限制)的24
小时后生效。警告
Atlas 删除数据后,您将无法恢复数据。
(可选)指定 Schedule Archiving Window(删除期限限制)。
默认情况下,Atlas 会定期运行查询来存档数据。不过,您可以切换Schedule Archiving Window以明确安排您希望 Atlas 存档数据的时间窗口。您可以指定以下内容:
频率。您可以选择每天、一周中的特定日期或每月的特定日期运行作业。如果您希望将数据存档作业安排在每月 29 日、30 日或 31 日,则 Atlas 在没有这些日期的月份(例如二月)不会运行存档作业。
时间窗口,以小时为单位。选择您希望 Atlas 运行数据归档作业的时间段。您必须指定至少两个小时。如果正在运行的作业在时间窗口内未完成,Atlas 会继续运行作业直到完成。
指定集合中两个最常查询的字段,以在 Online Archive 中创建分区。
注意
存档必须至少有一个分区字段。
选择仅包含 AWS 支持的字符的字段。要详细了解应避免使用的字符,请参阅 创建对象键名称 。 Atlas 会跳过且不会存档包含不受支持的字符的文档。
选择不包含多态数据的字段。Atlas 从集合中抽取 10 个文档,以确定分区字段的数据类型。如果文档中指定的字段值与同一集合中其他文档中的值不匹配,则 Atlas 不会将文档存档。
选择您经常查询的字段,并从第一个位置查询次数最多的字段到最后一个位置查询次数最少的字段进行排序。 例如,如果您经常查询日期字段,则将日期字段保留在第一个位置。但如果您经常查询另一个字段,则该字段应该位于第一个位置。
注意
对于 6 月2023之前创建的在线存档,MongoDB 不建议具有较高关联基数的string
类型字段作为在线存档的查询字段。对于具有高关联基数的string
类型的字段,Atlas 会创建大量分区。这不适用于 6 月2023之后创建的在线存档。要了解更多信息,请阅读MongoDB 博文。
Atlas支持以下分区属性类型:
date
double
int
long
objectId
string
boolean
如需详细了解支持的分区属性类型,请参阅分区属性类型。
虽然分区可以提高查询性能,但不包含这些字段的查询需要对所有存档文档进行全面集合扫描,这将花费更长时间并增加成本。 要了解有关分区如何提高 Atlas Data Federation 查询性能的更多信息,请参阅 S3 中的数据结构。
(可选)在mongosh
中复制并运行显示的查询,以创建所需的索引。这可确保对数据进行索引以获得最佳性能。
验证并确认存档规则。
在 Confirm an online archive 标签页中单击 Begin Archiving。
单击 Begin Archiving(开始存档)窗口中的 Confirm(确认)。
注意
一旦您的文档进入存档队列,就无法再编辑该文档。要将存档数据移回实时 Atlas 集群,请参阅恢复存档数据。
限制
每个集群最多可以创建 50 个在线存档,每个集群中最多可以有 20 个在线存档处于活动状态。适用以下限制:
您可以在同一命名空间中配置多个 Online Archive,但在任何给定时间只能有一个处于活动状态。
您不能在同一集合的相同字段上创建多个在线存档。
在以下情况下,您无法访问在线存档:
集群的主要区域完全中断。
存储存档数据的 AWS S3 发生中断。
存档规则不能用于多个集合。
注意
如果您的目标是将多个集合中的数据存档,则必须为每个集合创建存档规则。
7 天后,您无法存档大小低于 5 MiB 的数据。Atlas 创建存档后 7 天内,Atlas 会存档所有数据。7 天后,仅当您的数据大小达到 5 MiB 时,Atlas 才会存档数据。