在线存档
注意
您只能使用新的 Online Archive 作为Atlas Data Federation中的数据源。 有关更多信息,请阅读MongoDB Blog文 具有性能改进和增强指标的新在线存档。
Atlas Data Federation支持Atlas 在线存档作为联合数据库实例存储。 您必须在联合数据库实例存储配置中定义到在线存档的映射,才能运行数据查询。
重要
存储配置中的信息在 MongoDB 内部可见,并存储为操作数据,以监控和提高 Atlas Data Federation 的性能。 因此,我们建议您不要在配置中使用 PII 。
Atlas Online Archive 数据存储的配置示例
例子
考虑由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 Archive
dataCenter.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.inventory
collection。
连接到联合数据库实例的用户可以使用 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
stores
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 区域。
databases
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
中定义的每个联合数据库实例存储与在线存档之间的映射。 每个对象代表一个数据库、其集合以及可选的集合上的任何视图。 每个数据库可以有多个collections
和views
对象。
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].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 用户界面中的可视化编辑器来配置此设置。