Menu Docs

Página inicial do DocsIniciar e gerenciar o MongoDBMongoDB Atlas

Conjunto de dados do Data Lake ou Atlas Online Archive

Nesta página

  • Exemplo de Configuração para Armazenamento de Dados do ingestão de dados Atlas
  • Exemplo de Configuração para Armazenamento de Dados do Atlas Online Archive
  • Formato de configuração
  • stores
  • databases

Observação

Você só pode utilizar novos Arquivos Online como fonte de dados no Atlas Data Federation. Leia a publicação no blog do MongoDB Novo arquivo on-line com melhorias de desempenho e métricas aprimoradas para obter mais informações.

O Atlas Data Federation oferece suporte a conjuntos de dados do ingestão de dados e arquivos online do Atlas como armazenamentos de instância do banco de dados federado. Você deve definir mapeamentos na configuração de armazenamento da instância do reconhecimento de data center para o conjunto de dados de ingestão de dados ou Atlas Online Archive para executar query nos 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

Considere um pipeline do Atlas Data Lake denominado myDataCenter contendo dados de snapshot da collection metrics.hardware . A collection metrics.hardware contém documento JSON com métricas derivadas do hardware em um datacenter. A configuração a seguir:

  • Especifica o fornecedor de cloud dls:aws e a região do fornecedor us-east-1 como um reconhecimento de data center de instância do banco de dados federado.

  • Mapeia documento dos snapshots da collection metrics.hardware no cluster do Atlas dlsTest para a collection dataCenter.inventory na configuração de armazenamento. Por exemplo, quando o pipeline do Atlas Data Lake é executado em 5 de maio de 2022 às 02:00:10 UTC, o Atlas Data Lake cria um conjunto de dados com o nome do conjunto de dados v1$atlas$snapshot$dlsTest$metrics$hardware$20220510T020010Z.

{
"stores": [
{
"name": "adlStore",
"provider": "dls:aws",
"region": "us-east-1"
}
],
"databases": [
{
"name": "dataCenter",
"collections": [
{
"name": "inventory",
"dataSources": [
{
"storeName": "adlStore",
"datasetName": "v1$atlas$snapshot$dlsTest$metrics$hardware$20220510T020010Z"
}
]
}
],
"views": []
}
]
}

O Atlas Data Federation mapeia todos os documento nos snapshots para a collection dataCenter.inventory na configuração de armazenamento.

Os usuários conectados à instância do banco de dados federado podem usar a MongoDB Query Language e agregações compatíveis para consultar dados históricos no snapshot por meio da collection dataCenter.inventory . Quando você executa queries, a query primeiro vai para o Atlas Data Federation. Portanto, se você executar query de agregação que são suportadas pelo seu cluster do Atlas, mas não pelo Atlas Data Federation, a query falharão. Para saber mais sobre comandos com e sem suporte no Data Federation, consulte Comandos do MongoDB com suporte.

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 Atlas Online Archive contém os dados arquivados do metrics.hardware em um cluster do Atlas. A configuração a seguir:

  • Especifica o Atlas Online Archive na região us-east-1 da Amazon Web Services como um armazenamento de instância do banco de dados federado.

  • Mapeia documento do Atlas Online Archive para a collection dataCenter.inventory na 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 .

A configuração da instância do banco de dados federado para um conjunto de dados do Data Lake ou 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
1"stores" : [
2 {
3 "name" : "<string>",
4 "provider": "<string>",
5 "region": "<string>"
6 }
7]
stores

Matriz de objeto em que cada objeto representa um reconhecimento de data center a ser associado à instância do banco de dados federado. O armazenamento de instâncias da instância do banco de dados federado referencia arquivos em um bucket S3, documento em um cluster do Atlas, arquivos armazenados em URLs acessíveis publicamente, conjuntos de dados do ingestão de dados ou arquivos online do Atlas. O Atlas Data Federation só pode acessar armazenamentos de dados definidos no objeto stores .

stores.[n].name

Nome de armazenamento da instância do banco de dados federado. O campo databases.[n].collections.[n].dataSources.[n].storeName referencia este valor como parte da configuração de mapeamento.

stores.[n].provider

fornecedor 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 ser dls:aws

stores.[n].region

Nome da região do seu ingestão de dados ou Atlas Online Archive. Cada armazenamento está associado a uma única região, onde os metadados e os dados de snapshot são armazenados. Se você tiver vários conjuntos de dados ou arquivos online em regiões diferentes, deverá adicionar um armazenamento para cada região para mapear os dados dessa região para reconhecimento de data center virtuais e collection 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.

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

Array de objetos que definem o mapeamento entre cada instância do banco de dados federado definido em stores e conjuntos de dados ou arquivos online do Atlas Data Lake. Cada objeto representa um banco de dados, suas coleções e, opcionalmente, quaisquer visualizações das coleções. Cada banco de dados pode ter vários objetos collections e views .

databases.[n].name

Nome do banco de dados para o qual o Atlas Data Federation mapeia os dados contidos no armazém de dados.

databases.[n].collections

Array 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].name

Nome da collection para a qual a 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 collection e um objeto na matriz stores .

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 $ , depois cortando vários campos da esquerda da lista e, finalmente, combinando os campos restantes usando _.

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

Array de objetos em que cada objeto representa um armazenamento de instância do banco de dados federado na array stores para mapear com a collection. Você pode especificar vários dataSources para uma coleção curinga somente se todos os dataSources para a coleção mapearem para o conjunto de dados stores do Atlas Data Lake .

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

Nome de um armazém de instância do banco de dados federado para mapear para o <collection>. Deve corresponder ao name de um objeto na array stores .

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

Nome do conjunto de dados do Atlas ou conjunto de dados do Atlas Online Archive para mapear com a collection. O Atlas ingestão de dados datasetName está no seguinte formato:

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

Exemplo

Considere o seguinte nome de conjunto de dados do Atlas ingestão de dados.

v1$atlas$snapshot$clusterName$dbName$collectionName$snapshotId

Aqui:

  • v1 é a versão

  • atlas é o tipo de conjunto de dados

  • snapshot é o subtipo

  • clusterName é o nome do cluster do Atlas

  • dbName é o nome do reconhecimento de data center no cluster do Atlas

  • collectionName é a collection no reconhecimento de data center

  • snapshotId é o identificador exclusivo do snapshot dos dados na collection

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].datasetPrefix porque o Atlas Data Federation gera automaticamente as collections para o conjunto de dados mais recente usando o nome especificado na opção databases.[n].collections.[n].dataSources.[n].datasetPrefix .

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

Necessário para collection de curingas.

Prefixo do nome do conjunto de dados para corresponder ao nome do conjunto de dados do Atlas ingestão de dados ou ao nome do conjunto de dados do Atlas Online Archive. Quando você define isso para collection curinga, o Atlas Data Federation mapeia as collection para apenas os nomes de conjuntos de dados do Data Lake ou nomes de conjuntos de dados do Atlas Online Archive cujo prefixo corresponda ao valor especificado aqui.

Exemplo

{
...,
"name": "*",
"dataSources": [
{
"storeName": "aws-dl-store",
"datasetPrefix":
"v1$atlas$snapshot$MyCluster$MyDB$MyCollection",
"trimLevel": 3
}
]
}

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].datasetName se especificar essa opção para uma collection não curinga.

Exemplo

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

Inteiro 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 0 e menor que 7. Você pode definir essa configuração apenas para collection de curingas.

Exemplo

Considere o seguinte nome de conjunto de dados do Atlas Data Lake:

v1$atlas$snapshot$MyCluster$MyDB$MyCollection$snapshotDate

O Atlas Data Federation gera dinamicamente os seguintes collection para diferentes níveis de limpeza:

Nível de caimento
Nome da collection
5
MyCollection_snapshotDate
4
MyDB_MyCollection_snapshotDate
3
MyCluster_MyDB_MyCollection_snapshotDate
2
snapshot_MyCluster_MyDB_MyCollection_snapshotDate
1
atlas_snapshot_atlas_MyCluster_MyDB_MyCollection_snapshotDate
0
v1_atlas_snapshot_atlas_MyCluster_MyDB_MyCollection_snapshotDate

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 5 para configurações usando o Editor Visual.

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

Nome 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 campo
Descrição
provider
Provedor (stores.[n].provider) na configuração de armazenamento da instância do banco de dados federado
clusterName
Nome do cluster do Atlas
databaseName
Nome do reconhecimento de data center no cluster do Atlas
collectionName
Nome da collection
snapshotID
String exclusiva de 24 caracteres hexadecimais que identifica o snapshot
dataSetName
Nome do conjunto de dados do Data Lake ou conjunto de dados do Online Archive (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].maxDatasets

Inteiro 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.

← Distribua uma instância de banco de dados federado