Observação
Você só pode utilizar novos Arquivos Online como fonte de dados no Atlas Data Federation. Leia a publicação do MongoDB Blog Novo Online Archive com Melhorias de Desempenho e Métricas Aprimoradas para obter mais informações.
O Atlas Data Federation oferece suportea arquivos online do Atlas como armazenamentos de instância do banco de dados federado . Você deve definir mapeamentos em sua configuração de armazenamento de instância do banco de dados federado para seu arquivo online para executar consultas em relação aos seus dados.
Importante
As informações na sua configuração de armazenamento são visíveis internamente no MongoDB e armazenadas como dados operacionais para monitorar e melhorar o desempenho do Atlas Data Federation. Portanto, recomendamos que você não use PII em suas configurações.
Exemplo de Configuração para Armazenamento de Dados do Atlas Online Archive
Exemplo
Considere um Atlas Online Archive suportado pela Amazon Web Services com o seguinte ID:
v1$atlas$archive$V3metrics$hardware$69437250-b9da-4ae9-a1cd-8811462c38a4$64679f7c09f07374b4dcc914
O arquivo online contém os dados arquivados do metrics.hardware em um Atlas cluster. A configuração a seguir:
Especifica o Atlas Online Archive na região
us-east-1da Amazon Web Services como um armazenamento de instância do banco de dados federado.Mapeia documento do Atlas Online Archive para a collection
dataCenter.inventoryna configuração de armazenamento.
{ "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" } ] } ] } ] }
Observação
Como a Amazon Web Services faz o backup do Atlas Online Archive, o provider é configurado para dls:aws no exemplo. Se o Azure apoiasse o arquivo online, o provider seria dls:azure.
O Atlas Data Federation mapeia todos os documento no Atlas Online Archive para a collection dataCenter.inventory na configuração de armazenamento.
Os usuários conectados à instância do reconhecimento de data center federado podem usar a query de MongoDB e agregações compatíveis para analisar dados no cluster do Atlas por meio da collection dataCenter.inventory .
Formato de configuração
A configuração da instância do banco de dados federado para um Atlas Online Archive tem o seguinte formato:
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 ]
storesArray de objetos em que cada objeto representa um armazenamento de dados a ser associado à instância do banco de dados federado. O armazenamento de instância do banco de dados federado faz referência a arquivos em um bucket S3 , documentos em um Atlas cluster, arquivos armazenados em URLs acessíveis publicamente ou Atlas Online Archives. O Atlas Data Federation só pode acessar armazenamentos de dados definidos no objeto
stores.
stores.[n].nameNome de armazenamento da instância do banco de dados federado . O campo
databases.[n].collections.[n].dataSources.[n].storeNamereferencia este valor como parte da configuração de mapeamento.
stores.[n].providerfornecedor de nuvem onde os dados do snapshot são armazenados. O valor deve ser
dls:<subtype>para um snapshot. O Atlas Data Federation aceita os seguintes subtipos:aws, para o qual o valor deve serdls:aws
stores.[n].regionNome da região do seu arquivo on-line. Cada armazenamento está associado a uma única região, onde os dados arquivados são armazenados. Se você tiver vários arquivos online em diferentes regiões, você deverá adicionar um armazenamento para cada região para mapear dados nessa região para bancos de dados virtuais e coleção na instância do banco de dados federado.
Para saber mais sobre as regiões suportadas para Amazon Web Services, consulte Regiões do 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 ]
databasesArray de objetos que definem o mapeamento entre cada instância do banco de dados federado definido no
storese arquivos online. Cada objeto representa um banco de dados, suas collections e, opcionalmente, quaisquer visualizações das collections. Cada banco de dados de dados pode ter vários objetoscollectionseviews.
databases.[n].nameNome do banco de dados para o qual o Atlas Data Federation mapeia os dados contidos no armazém de dados.
databases.[n].collectionsArray de objetos em que cada objeto representa uma coleção e fontes de dados que mapeiam para um armazenamento de instância de banco de dados federado
stores.
databases.[n].collections.[n].nameNome da coleção para a qual o Atlas Data Federation mapeia os dados contidos em cada
databases.[n].collections.[n].dataSources.[n].storeName. Cada objeto na array representa o mapeamento entre a coleção e um objeto na arraystores.Você pode gerar nomes de collection dinamicamente, especificando
*para o nome da collection. Para gerar nomes de collection dinamicamente, você também deve especificar o seguinte:Para coleções curinga, o Atlas Data Federation mapeia um nome de conjunto de dados para um nome de coleção primeiro dividindo o namespace em uma lista de campos no delimitador
$e, em seguida, cortando vários campos da esquerda da lista e, finalmente, combinando os campos restantes usando_.
databases.[n].collections.[n].dataSourcesArray de objetos em que cada objeto representa um armazenamento de instância do banco de dados federado na array
storespara mapear com a collection. Você pode especificar váriosdataSourcespara uma coleção de curingas somente se todos osdataSourcesda coleção mapearem para o arquivo on-linestores.
databases.[n].collections.[n].dataSources.[n].storeNameNome de um armazém de instância do banco de dados federado para mapear para o
<collection>. Deve corresponder aonamede um objeto na arraystores.
databases.[n].collections.[n].dataSources.[n].datasetNameNome do conjunto de dados do arquivo on-line para mapear com a coleção. O
datasetNameestá no seguinte formato:<version>$<type>$<subtype>$<clusterName>$<dbName>$<collectionName>$<archiveId> Exemplo
Considere o seguinte nome de arquivo on-line.
v1$atlas$archive$clusterName$dbName$collections$archiveId Aqui:
v1é a versãoatlasé o tipo de conjunto de dadosarchiveé o subtipoclusterNameé o nome do cluster do AtlasdbNameé o nome do reconhecimento de data center no cluster do Atlascollectionsão as coleções no banco de banco de dadosarchiveIdé o identificador exclusivo dos dados arquivados
Observação
Para uma collection não curinga, você não pode especificar essa opção se especificar a opção
databases.[n].collections.[n].dataSources.[n].datasetPrefixporque o Atlas Data Federation gera automaticamente as collections para o conjunto de dados mais recente usando o nome especificado na opçãodatabases.[n].collections.[n].dataSources.[n].datasetPrefix.
databases.[n].collections.[n].dataSources.[n].datasetPrefixNecessário para collection de curingas.
Prefixo do nome do conjunto de dados para corresponder ao nome do conjunto de dados do arquivo on-line. Quando você define isso para coleções curinga, o Atlas Data Federation mapeia as coleções apenas para os nomes de conjuntos de dados de arquivamento online cujo prefixo corresponda ao valor especificado aqui.
Se você especificar essa configuração para uma coleção não curinga, o Atlas Data Federation mapeará somente o conjunto de dados mais recente (para o snapshot capturado mais recentemente) para a coleção. Você também não pode especificar o
databases.[n].collections.[n].dataSources.[n].datasetNamese especificar essa opção para uma collection não curinga.Exemplo
{ ..., "name": "myFederatedDbCollection", "dataSources": [ { "storeName": "aws-dl-store", "datasetPrefix": "v1$atlas$archive$MyCluster$MyDB$MyArchiveId" } ] }
databases.[n].collections.[n].dataSources.[n].trimLevelInteiro não assinado que especifica quantos campo do nome do conjunto de dados devem ser cortados da esquerda do nome do conjunto de dados antes de mapear os campo restantes para um nome de collection curinga. O valor deve ser maior que
0e menor que7. Você pode definir essa configuração apenas para collection de curingas.Você não pode definir esta configuração utilizando o Editor Visual na UI do Atlas. Portanto, essa configuração tem como padrão o nível de ajuste
5para configurações usando o Editor Visual.
databases.[n].collections.[n].dataSources.[n].provenanceFieldNameNome do campo que inclui a procedência dos documentos nos resultados. Se você especificar esta configuração na configuração de armazenamento, o Atlas Data Federation retornará os seguintes campos para cada documento no resultado:
Nome do campoDescriçãoproviderProvedor (
stores.[n].provider) na configuração de armazenamento da instância do banco de dados federadoclusterNameNome do cluster do Atlas
databaseNameNome do reconhecimento de data center no cluster do Atlas
collectionNameNome da collection
snapshotIDString exclusiva de 24 caracteres hexadecimais que identifica o snapshot
dataSetNameNome do conjunto de dados do arquivo online
databases.[n].collections.[n].dataSources.[n].datasetName()Você não pode definir esta configuração utilizando o Editor Visual na UI do Atlas.
databases.[n].collections.[n].dataSources.[n].maxDatasetsInteiro não assinado que especifica o número máximo de conjuntos de dados a partir dos quais gerar collection dinamicamente para o conjunto de dados. Você deve fornecer um valor maior que
0. Você pode definir essa configuração apenas para collection de curingas. O Atlas Data Federation retorna conjuntos de dados em ordem lexicográfica inversa.Observação
Você não pode definir esta configuração utilizando o Editor Visual na UI do Atlas. Portanto, a configuração do Atlas Data Federation não inclui um limite no número de conjuntos de dados para configurações utilizando o Editor Visual.