Docs 菜单
Docs 主页
/
MongoDB Atlas
/ /

在线存档

在此页面上

  • Atlas Online Archive 数据存储的配置示例
  • 配置格式
  • stores
  • databases

注意

您只能使用的 Online Archive 作为Atlas Data Federation中的数据源。 有关更多信息,请阅读MongoDB Blog文 具有性能改进和增强指标的新在线存档

Atlas Data Federation支持Atlas 在线存档作为联合数据库实例存储。 您必须在联合数据库实例存储配置中定义到在线存档的映射,才能运行数据查询。

重要

存储配置中的信息在 MongoDB 内部可见,并存储为操作数据,以监控和提高 Atlas Data Federation 的性能。 因此,我们建议您不要在配置中使用 PII

例子

考虑由AWS支持的 Atlas 在线存档,其 ID 如下:

v1$atlas$archive$V3metrics$hardware$69437250-b9da-4ae9-a1cd-8811462c38a4$64679f7c09f07374b4dcc914

在线存档包含来自Atlas 集群中 metrics.hardware的存档数据。 配置如下:

  • 指定us-east-1 AWS区域中的 Atlas Online Archive 作为联合数据库实例存储。

  • 将文档从 Atlas Online ArchivedataCenter.inventory 映射到存储配置中的 collection。

{
"stores" : [
{
"name" : "atlasOnlineArchiveStore",
"provider" : "dls:aws",
"region" : "us-east-1"
}
],
"databases" : [
{
"name" : "dataCenter",
"collections" : [
{
"name" : "inventory",
"dataSources" : [
{
"storeName" : "atlasOnlineArchiveStore",
"datasetName" : "v1$atlas$archive$V3metrics$hardware$69437250-b9da-4ae9-a1cd-8811462c38a4$64679f7c09f07374b4dcc914",
"provider" : "dls:aws"
}
]
}
]
}
]
}

注意

由于Amazon Web Services支持Atlas Online Archive,因此示例中的provider设置为dls:aws 。如果Azure支持Atlas Online Archive,则provider将为dls:azure

Atlas Data Federation 将 Atlas Online Archive 中的所有文档映射到存储配置中的dataCenter.inventorycollection。

连接到联合数据库实例的用户可以使用 MongoDB 查询语言和支持的聚合,通过dataCenter.inventory集合分析 Atlas 集群中的数据。

Atlas Online Archive的联合数据库实例配置采用以下格式:

1{
2 "stores" : [
3 {
4 "name" : "<string>",
5 "provider": "<string>",
6 "region": "<string>"
7 }
8 ],
9 "databases" : [
10 {
11 "name" : "<string>",
12 "collections" : [
13 {
14 "name" : "<string>",
15 "dataSources" : [
16 {
17 "storeName" : "<string>",
18 "datasetName" : "<string>",
19 "datasetPrefix": "<string>",
20 "trimLevel": <int>,
21 "provenanceFieldName": "<string>",
22 "maxDatasets": <int>
23 }
24 ]
25 }
26 ],
27 "views" : [
28 {
29 "name" : "<string>",
30 "source" : "<string>",
31 "pipeline" : "<string>"
32 }
33 ]
34 }
35 ]
36}
37
1"stores" : [
2 {
3 "name" : "<string>",
4 "provider": "<string>",
5 "region": "<string>"
6 }
7]
stores

对象数组,其中每个对象代表一个与联合数据库实例关联的数据存储。 联合数据库实例存储引用S 3存储桶中的文件、 Atlas 集群中的文档、存储在可公开访问的URL中的文件或Atlas在线存档。 Atlas Data Federation只能访问权限stores对象中定义的数据存储。

stores.[n].name

联合数据库实例存储的名称。 databases.[n].collections.[n].dataSources.[n].storeName字段引用此值作为映射配置的一部分。

stores.[n].provider

存储快照数据的云提供商。 对于快照,值必须为dls:<subtype> 。Atlas Data Federation 支持以下子类型:

  • aws,其值必须是 dls:aws

stores.[n].region

在线存档的地区名称。 每个存储都与一个存储存档数据的地区相关联。 如果您在不同区域有多个在线存档,则必须为每个地区添加一个存储,以将该地区中的数据映射到联合数据库实例中的虚拟数据库和集合。

要了解有关AWS支持区域的更多信息,请参阅Atlas Data Federation 区域。

1"databases" : [
2 {
3 "name" : "<string>",
4 "collections" : [
5 {
6 "name" : "<string>",
7 "dataSources" : [
8 {
9 "storeName" : "<string>",
10 "datasetName" : "<string>",
11 "datasetPrefix": "<string>",
12 "trimLevel": <int>,
13 "provenanceFieldName": "<string>",
14 "maxDatasets": <int>
15 }
16 ]
17 }
18 ],
19 "views" : [
20 {
21 "name" : "<string>",
22 "source" : "<string>",
23 "pipeline" : "<string>"
24 }
25 ]
26 }
27]
databases

对象数组,用于定义stores中定义的每个联合数据库实例存储与在线存档之间的映射。 每个对象代表一个数据库、其集合以及可选的集合上的任何视图。 每个数据库可以有多个collectionsviews对象。

databases.[n].name

Atlas Data Federation 将数据存储中包含的数据映射到数据库的数据库名称。

databases.[n].collections

对象数组,其中每个对象代表一个集合和映射到 stores 联合数据库实例存储的数据源。

databases.[n].collections.[n].name

Atlas Data Federation 将每个 databases.[n].collections.[n].dataSources.[n].storeName 中包含的数据映射到的集合的名称。数组中的每个对象代表集合与 stores 数组中对象之间的映射。

您可以通过为集合名称指定*来动态生成集合名称。 要动态生成collection名称,还必须指定以下内容:

对于通配符集合, Atlas Data Federation首先将命名空间拆分为$分隔符上的字段列表,然后从列表左侧修剪一些字段,最后将使用_处理剩余字段。

databases.[n].collections.[n].dataSources

对象数组,其中每个对象代表stores大量中要与集合映射的联合数据库实例存储。 dataSources仅当集合的所有dataSources 映射到在线存档 时,才能为通配符集合指定多个stores

databases.[n].collections.[n].dataSources.[n].storeName

要映射到 <collection> 的联合数据库实例存储的名称。必须与 stores 数组中对象的 name 相匹配。

databases.[n].collections.[n].dataSources.[n].datasetName

要与集合映射的在线存档数据集的名称。 datasetName的格式如下:

<version>$<type>$<subtype>$<clusterName>$<dbName>$<collectionName>$<archiveId>

例子

考虑以下在线存档名称。

v1$atlas$archive$clusterName$dbName$collections$archiveId

此处:

  • v1 是版本

  • atlas 是数据源的类型

  • archive 是子类型

  • clusterName 是 Atlas 集群的名称

  • dbName 是 Atlas 集群上数据库的名称

  • collection 是数据库中的集合

  • archiveId 是存档数据的唯一标识符

注意

对于非通配符集合,如果指定databases.[n].collections.[n].dataSources.[n].datasetPrefix选项,则无法指定此选项,因为Atlas Data Federation使用通过databases.[n].collections.[n].dataSources.[n].datasetPrefix选项指定的名称自动为最新数据集生成集合。

databases.[n].collections.[n].dataSources.[n].datasetPrefix

通配符集合为必填项。

用于与在线存档数据集名称匹配的数据集名称前缀。 当您为通配符集合设立此项时, Atlas Data Federation只会将集合映射到其前缀与此处指定的值匹配的在线存档数据集名称。

如果您为非通配符集合指定此设置,Atlas Data Federation 仅将最新数据集(针对最近捕获的快照)映射到该集合。 如果为非通配符集合指定此选项,则无法同时指定databases.[n].collections.[n].dataSources.[n].datasetName

例子

{
...,
"name": "myFederatedDbCollection",
"dataSources": [
{
"storeName": "aws-dl-store",
"datasetPrefix": "v1$atlas$archive$MyCluster$MyDB$MyArchiveId"
}
]
}
databases.[n].collections.[n].dataSources.[n].trimLevel

无符号整数,指定在将剩余字段映射到通配符collection名称之前,要从数据集名称左侧修剪多少个数据集名称字段。值必须大于0且小于7 。 只能为通配符集合进行此设置。

您无法使用 Atlas 用户界面中的可视化编辑器配置此设置。 因此,对于使用可视化编辑器的配置,此设置默认为修剪级别5

databases.[n].collections.[n].dataSources.[n].provenanceFieldName

包含结果中文档来源的字段的名称。如果在存储配置中指定了此设置,Atlas Data Federation 则会为结果中的每个文档返回以下字段:

字段名称
说明
provider
联合数据库实例存储配置中的提供者 (stores.[n].provider)
clusterName
Atlas 集群的名称
databaseName
Atlas 集群上数据库的名称
collectionName
集合名称
snapshotID
唯一的 24 位十六进制字符串,用于标识快照
dataSetName

您无法使用 Atlas 用户界面中的可视化编辑器来配置此设置。

databases.[n].collections.[n].dataSources.[n].maxDatasets

无符号整数,指定为数据源动态生成collection的最大数据集数。您提供的值必须大于0 。 只能为通配符collection进行此设置。Atlas Data Federation 按字典顺序倒序返回数据集。

注意

您无法使用 Atlas 用户界面中的可视化编辑器配置此设置。 因此,对于使用可视化编辑器的配置,Atlas Data Federation 配置不限制数据集数量。

后退

部署