Docs 菜单

Docs 主页启动和管理 MongoDBMongoDB Atlas

管理在线存档

在此页面上

  • 必需的访问权限
  • 查看在线存档
  • 使用 Atlas CLI 检索在线存档
  • 使用 API 检索在线存档
  • 使用 API 检索集群的所有在线存档
  • 在用户界面中查看在线存档
  • 查看在线存档指标
  • 导航至项目的 Database Deployments 页面。
  • 选择左侧导航栏中 Services(服务)下的 Data Federation(数据联合)。
  • 编辑存档规则
  • 通过 Atlas CLI 编辑存档规则
  • 通过 API 编辑存档规则
  • 通过用户界面编辑存档规则
  • 编辑云对象存储上的分区
  • 查询在线存档
  • 连接字符串
  • 性能考虑因素
  • 查询价格
  • 删除在线存档
  • 通过 Atlas CLI 删除在线存档
  • 从用户界面删除在线存档
  • 通过 API 删除在线存档

重要

无服务器实例中的不可用功能

无服务器实例目前不支持此功能。要了解详情,请参阅无服务器实例限制

配置在线存档后,可以执行以下操作:

  • 查看在线存档

  • 编辑在线存档

  • 查询您的在线存档

  • 删除在线存档

要查看或查询在线存档,您必须具有该项目的 Project Read Only 或更高级别的访问权限。

要编辑或删除在线存档,您必须具有该项目的 Project Data Access Admin 或更高访问权限。

重要

无服务器实例中的不可用功能

无服务器实例目前不支持此功能。要了解详情,请参阅无服务器实例限制

可以通过 Atlas CLI、Atlas 用户界面和 API 查看集群的在线存档列表。

要使用 Atlas CLI 列出集群的所有在线存档,请运行以下命令:

atlas clusters onlineArchives list [options]

如需返回使用 Atlas CLI 指定的集群的详细信息,请运行以下命令:

atlas clusters onlineArchives describe <archiveId> [options]

要了解有关上述命令的语法和参数的更多信息,请参阅atlas clusters onlineArchives listatlas clusters onlineArchives describe 的 Atlas CLI 文档。

提示

要通过API检索在线存档,请向onlineArchives端点发送GET请求,并附带要检索的在线存档的唯一 ID。要了解有关API语法和选项的更多信息,请参阅API。

要使用API检索为集群配置的所有在线存档,请向集群的onlineArchives端点发送GET请求。要了解有关语法和选项的更多信息,请参阅API。

查看 Online Archive 列表:

1
  1. 如果尚未显示,请从导航栏的 Organizations 菜单中选择包含所需项目的组织。

  2. 如果尚未显示该页,请从导航栏的 Projects(项目)菜单中选择所需的项目。

  3. 如果 Database Deployments(数据库部署)页面尚未出现,请单击侧边栏中的 Database(数据库)。

2
  1. 单击集群的名称。

  2. 单击 Online Archive 标签页,查看集群的在线存档列表(如果有)。

该页面显示集群的在线存档。对于每个在线存档,可以看到以下信息:

注意

2023 年 6 月 7 日发布的新指标值显示在 Atlas 用户界面中,仅适用于发布后创建的在线存档。对于预先存在的在线存档,Atlas 显示 N/A 而不是指标值。

列名称
说明
Status

Online Archive(在线存档)的状态。值可以是以下之一:

待处理
指示文档已排队等待存档,但存档尚未开始。
存档
表示存档已开始。在此状态下,符合存档条件的文档正在存档。
空闲
指示在线存档正在等待下一个存档作业开始。
暂停
指示已请求暂停存档。在此状态下,Atlas 正在完成正在运行的存档操作,因此,Atlas 尚未暂停存档。当正在运行的存档操作完成时,在线存档将转换为 Paused 状态。
已暂停
指示存档已暂时停止。在此状态下,之前已存档的文档仍可在云对象存储上进行查询,但活动集群上的指定存档操作将被暂停,并且不会存档其他文档。可以随时恢复已暂停存档的存档操作。
孤立
指示与活动或暂停的在线存档关联的集合已被删除。Atlas 不会自动删除存档数据。必须手动删除与已删除集合关联的在线存档。
Deleted
表示在线存档已删除。当您删除在线存档时,关联的存档文档将从云对象存储中删除。
Actions
您可以在 Online Archive 上执行的操作。
Archive Field
基于存档文档的日期字段。
Custom Criteria
自定义 JSON 筛选器。您可以在此代码组件中滚动。点击该图标展开视图以查看完整的自定义条件。
Age Limit
用于确定文档存档资格的天数。
Deletion Age Limit
删除存档中的数据之前的保留天数。
Total Data Archived
存储在存档中的未压缩数据大小。将鼠标悬停可查看存档中的文档数量。指标仅适用于 Atlas 数据湖上的新在线存档。
Last Archived Run
上次运行存档的开始日期和时间戳。将鼠标悬停以查看最近五个作业。每个作业都会列出其开始日期、开始时间、存档持续时间、文档数量和大小。
Partition Fields
其他常用查询字段用于对云对象存储上的数据进行分区。
Schedule
存档窗口节奏。值包括:- Monthy on <Day_Number> - Weekly on <Day_Name> - Daily 悬停鼠标以查看下一个存档窗口。
Min Date Field
存档中所有文档的最小日期值。指标仅适用于 Atlas Data Lake 上的新在线存档。
Max Date Field
存档中所有文档的最大日期值。指标仅适用于 Atlas 数据湖上的新在线存档。

要在 Atlas 用户界面中查看在线存档的指标,请执行以下操作:

1
  1. 如果尚未显示,请从导航栏的 Organizations 菜单中选择包含所需项目的组织。

  2. 如果尚未显示该页,请从导航栏的 Projects(项目)菜单中选择所需的项目。

  3. 如果 Database Deployments(数据库部署)页面尚未出现,请单击侧边栏中的 Database(数据库)。

2

该页面在 Online Archive Federated Database Instances(在线存档联合数据库实例)部分下显示每个联合数据库实例的以下指标:

每月执行的查询
当前日历月执行的查询数量(累计)。Atlas 每 5 分钟刷新一次该值。
Data Processed / Month(每月处理的数据)
在当前日历月中处理的数据量。Atlas 每 5 分钟刷新一次该值。
每月返回的数据
在当前日历月中返回的数据量。Atlas 每 5 分钟刷新一次该值。
Last Archive Run(存档上次运行时间)
Atlas 上次运行存档作业以存档数据的日期和时间。

重要

无服务器实例中的不可用功能

无服务器实例目前不支持此功能。要了解详情,请参阅无服务器实例限制

您可以修改在 Atlas 集群上保留数据的天数 (Age Limit) 或用于从 Atlas 用户界面和 API 选择要归档的文档的自定义 JSON 查询。您无法将存档条件从 Date Match 更改为 Custom Filter,反之亦然。

要使用 Atlas CLI 为集群更新在线存档,请运行以下命令:

atlas clusters onlineArchives update <archiveId> [options]

要了解有关命令语法和参数的更多信息,请参阅 Atlas 集群 OnlineArchives 更新的 Atlas CLI 文档。

提示

要通过API编辑在线存档,请向onlineArchives端点发送PATCH请求,其中包含要更新的在线存档的唯一 ID。要了解有关API语法和选项的更多信息,请参阅API。

要编辑在线存档,请在 Atlas 用户界面中:

1
  1. 如果尚未显示,请从导航栏的 Organizations 菜单中选择包含所需项目的组织。

  2. 如果尚未显示该页,请从导航栏的 Projects(项目)菜单中选择所需的项目。

  3. 如果 Database Deployments(数据库部署)页面尚未出现,请单击侧边栏中的 Database(数据库)。

2
  1. 单击集群的名称。

  2. 单击 Online Archive 标签页,查看集群的在线存档列表(如果有)。

3

您可以:

  • Pause Archiving (仅当状态为 Active(活动)时)

  • Edit Archive

  • Delete Archive

  • Resume Archiving (仅当状态为 Paused(活动)时)

4

可以更改存档条件和删除已存档数据前的保留天数。

  • 要编辑 Date Match(日期匹配)条件,请修改 Archival Age Limit(存档时长限制)部分中 Atlas 在活动 Atlas 集群上存储数据的天数。

  • 要编辑 Custom Criteria(自定义条件),请输入有效的 JSON 筛选器,以选择要存档的文档。

    注意

    Atlas 将指定的查询与db.collection.find(query)命令结合使用。自定义查询不支持 JavaScript 表达式。此外,不能传递空文档{}来返回所有文档。

  • 要修改 Atlas 删除已存档数据前的保留天数,请在 Deletion Age Limit(删除时长限制)部分输入或修改天数。可以指定 79125 天,或将该字段留空以禁用数据过期规则。此更改需要 24 小时才能生效。

  • 要修改数据存档作业的计划时间,请对以下任一内容进行更改:

    • 频率。您可以选择每天、一周中的特定日期或每月的特定日期运行作业。如果您希望在每月 29 日、30 日或 31 日进行存档,则 Atlas 在不包含这些日期的月份不会运行存档作业。

    • 时间窗口。选择希望 Atlas 运行数据存档作业的时间段。必须指定至少两个小时。

    还可以通过切换 Schedule Archive Window(计划存档窗口)来禁用计划。如果禁用计划,Atlas 将恢复默认计划并定期运行存档作业

    在您更改新的数据存档计划后,Atlas 会立即开始使用。但是,如果存档作业当前正在运行,Atlas 不会中断正在运行的作业,并且设置会在作业完成后生效。

5

注意

Deletion Age Limit(删除时长限制)的更改需要 24 小时才能生效。

您无法从 Atlas 用户界面或API修改分区字段或结构。但是,您可以使用mongodump手动从云对象存储迁移数据,删除在线存档,使用mongorestore在 Atlas 集群上恢复数据,然后为具有所需分区的集合创建新的在线存档字段和结构。

可以对已存档数据运行查询。

注意

Atlas Data Federation 使用不保留文档中字段顺序的列式存储。因此,Atlas Data Federation 不支持对存档数据执行字段顺序敏感的查询。

要运行查询,必须首先连接到在线存档。集群连接字符串仅允许查询 Atlas 集群中的数据。要查询在线存档,必须使用以下方法之一:

  • 连接到在线存档和集群 — 此只读连接字符串允许直接从实时集群读取数据。这会影响 IOPS 的可用资源以及在线存档中的可用资源。

  • 连接到在线存档 — 此只读连接字符串只允许从在线存档读取数据,不会影响集群资源。

一般来说,查询存档数据比查询 Atlas 集群上的数据要慢得多。当您通过联合连接字符串查询集群和 Online Archive 中的数据时:

  • 阻止查询(例如在返回结果之前消耗并处理发送至排序操作的所有输入文档的排序)具有与最慢存储(正在查询的存档)相关的性能特征。排序操作要求在返回结果之前对来源中的所有数据进行查询。

  • 流媒体查询,例如查找,具有与被查询的最高性能存储 Atlas cluster 相关的性能特征。Atlas 在结果可用后立即返回结果,这意味着从存档返回结果比从 Atlas 集群返回结果需要更长的时间。

对于联合查询和仅存档查询,您需要为以下项目支付费用。

在数据扫描期间,Atlas 会处理来自集群和存档的数据。Atlas 在集群上运行尽可能多的查询,以最大程度地减少需要扫描的数据量。例如,对于指定特定值的 match 查询,Atlas 仅从集群中检索具有指定值的文档。然后,Atlas 将检索到的文档与存档数据合并,然后返回。

对于需要访问底层集群中存储的所有数据的阻塞查询,Atlas 会检索所有数据。例如,对于 sort(没有 match),Atlas 会从集群和存档中检索所有数据进行排序。

MongoDB 对您在存档中查询的每个分区收取费用。如果您的查询需要查询特定分区,MongoDB 会下载分区,并且每个下载的分区对应于一次访问。

为了根据查询和查询字段查找分区,Atlas 对存档运行操作。Atlas 运行的每个此类操作最多可查找 1000 个分区。Atlas 运行最少数量的所需操作来查找满足查询所需的分区。例如,如果您的查询需要查询字段中涵盖的 100 个分区,则 Atlas 仅运行一项操作来满足查询。

传输到联合基础架构的数据会产生数据传输成本。

重要

无服务器实例中的不可用功能

无服务器实例目前不支持此功能。要了解详情,请参阅无服务器实例限制

您可以通过 Atlas 用户界面和 API 删除在线存档。删除在线存档时,Atlas 会在五天后删除在线存档存储上的所有文件和元数据。删除此数据后,将无法恢复。

如果删除配置为在线存档的数据库集合,则集合中的数据(如果已存档)将继续在云对象存储上可用。您需要支付云对象存储的存储费用。或者,如果您删除集群,Atlas 会删除为该集群配置的所有在线存档。此操作还会删除云对象存储中的所有存档数据。

如果删除所有在线存档,也会删除联合数据库实例,并在再次创建在线存档时创建新的联合数据库实例。

删除在线存档后,其状态将变为 Deleted。如果同一数据库、集合和字段中没有其他在线存档处于 Active 状态,则可以为与已删除的在线存档相同的数据库、集合和字段创建另一个在线存档。

要使用 Atlas CLI 为集群删除在线存档,请运行以下命令:

atlas clusters onlineArchives delete <archiveId> [options]

要了解有关命令语法和参数的更多信息,请参阅 Atlas clusters OnlineArchives delete 的 Atlas CLI 文档。

提示

要删除在线存档,请在 Atlas 用户界面中:

1
  1. 如果尚未显示,请从导航栏的 Organizations 菜单中选择包含所需项目的组织。

  2. 如果尚未显示该页,请从导航栏的 Projects(项目)菜单中选择所需的项目。

  3. 如果 Database Deployments(数据库部署)页面尚未出现,请单击侧边栏中的 Database(数据库)。

2
  1. 单击集群的名称。

  2. 单击 Online Archive 标签页,查看集群的在线存档列表(如果有)。

3

您可以:

  • Pause Archiving (仅当状态为 Active(活动)时)

  • Edit Archive

  • Delete Archive

  • Resume Archiving (仅当状态为 Paused(活动)时)

4
5

要通过API删除在线存档,请向onlineArchives端点发送DELETE请求,并附带要删除的在线存档的唯一 ID。要了解有关语法和选项的更多信息,请参阅API。

← 连接到在线存档