Menu Docs
Página inicial do Docs
/
MongoDB Atlas
/ /

Cluster do Atlas

Nesta página

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

O Atlas Data Federation suporta cluster do Atlas como instância do banco de dados federado armazenamentos. Você deve definir mapeamentos na instância do reconhecimento de data center para o cluster do Atlas 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 cluster do Atlas M10 ou superior denominado myDataCenter contendo dados na collection metrics.hardware . A collection metrics.hardware contém documento JSON com métricas derivadas do hardware em um centro de dados. A configuração a seguir:

  • Especifica o cluster do Atlas denominado myDataCenter no projeto especificado como um armazenamento de instância do reconhecimento de data center federado.

  • Mapeia documento da collection metrics.hardware no cluster do Atlas para a collection dataCenter.inventory na configuração de armazenamento.

{
"stores" : [
{
"name" : "atlasClusterStore",
"provider" : "atlas",
"clusterName" : "myDataCenter",
"projectId" : "5e2211c17a3e5a48f5497de3"
}
],
"databases" : [
{
"name" : "dataCenter",
"collections" : [
{
"name" : "inventory",
"dataSources" : [
{
"storeName" : "atlasClusterStore",
"database" : "metrics",
"collection" : "hardware"
}
]
}
]
}
]
}

O Atlas Data Federation mapeia todos os documentos na collection metrics.hardware para a collection dataCenter.inventory na configuração de armazenamento.

Os usuários conectados à instância do banco de dados federado podem usar a Linguagem de Query MongoDB e as aggregations permitidas para analisar dados no Atlas cluster por meio da collection dataCenter.inventory . Quando você executa queries, a query primeiro vai para Atlas Data Federation. Portanto, se você executar queries de agregação que são suportadas pelo seu Atlas cluster, mas não pelo Atlas Data Federation, as queries falharão. Para saber mais sobre os comandos com e sem suporte no Data Federation, consulte Comandos do MongoDB com suporte.

Dica

Veja também:

A configuração da instância do banco de dados federado tem o seguinte formato:

1{
2 "stores" : [
3 {
4 "name" : "<string>",
5 "provider": "<string>",
6 "clusterName": "<string>",
7 "projectId": "<string>",
8 "readPreference": {
9 "mode": "<string>",
10 "tagSets": [
11 [{"name": "<string>", "value": "<string>"},...],
12 ...
13 ],
14 "maxStalenessSeconds": <int>
15 }
16 }
17 ],
18 "databases" : [
19 {
20 "name" : "<string>",
21 "collections" : [
22 {
23 "name" : "<string>",
24 "dataSources" : [
25 {
26 "storeName" : "<string>",
27 "database" : "<string>",
28 "databaseRegex": "<string>",
29 "collection" : "<string>",
30 "collectionRegex" : "<string>",
31 "provenanceFieldName": "<string>"
32 }
33 ]
34 }
35 ],
36 "views" : [
37 {
38 "name" : "<string>",
39 "source" : "<string>",
40 "pipeline" : "<string>"
41 }
42 ]
43 }
44 ]
45}
stores
O objeto stores define cada armazenamento de dados associado à instância do banco de dados federado. O armazenamento de instâncias do banco de dados federado captura arquivos em documentos no Atlas cluster. a instância do banco de dados federado só pode acessar armazenamentos de dados definidos no objeto stores .
databases
O objeto databases define o mapeamento entre cada instância do banco de dados federado definido em stores e nas collections MongoDB nos bancos de dados.
1"stores" : [
2 {
3 "name" : "<string>",
4 "provider" : "<string>",
5 "clusterName" : "<string>",
6 "projectId": "<string>"
7 "readPreference": {
8 "mode": "<string>",
9 "tagSets": [
10 [{"name": "<string>", "value": "<string>"},...],
11 ...
12 ],
13 "maxStalenessSeconds": <int>
14 },
15 "readConcern": {
16 "level": "<string>"
17 }
18 }
19]
stores

Array 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âncias de banco de dados federado captura arquivos em um bucket S3, documentos no Atlas cluster ou arquivos armazenados em URLs acessíveis publicamente. 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

Define onde os dados são armazenados. O valor deve ser atlas para uma collection em um cluster do Atlas.

stores.[n].clusterName

Nome do cluster do Atlas no qual a loja é baseada. O cluster deve existir no mesmo projeto que sua instância do banco de dados federado. O campo source no modelo de dados é o nome do cluster do Atlas.

stores.[n].projectId

Identificador único do projeto que contém o cluster do Atlas no qual a loja é baseada.

stores.[n].readPreference

Opcional. preferência de leitura de cluster , que descreve como rotear solicitações de leitura para o cluster.

Exemplo

A seguinte configuração readPreference especifica o modo secondary e ANALYTICS nodeType.

{
...
"stores": [
{
"provider": "atlas",
"clusterName": <CLUSTER_NAME>,
"name": <STORE_NAME>,
"projectId": <PROJECT_ID>,
"readPreference": {
"mode": "secondary",
"tagSets": [
[
{
"name": "nodeType",
"value": "ANALYTICS"
}
],
...
]
}
}
]
}
stores.[n].readPreference.mode

Opcional. modo de preferência de leitura que especifica para qual membro do conjunto de réplicas as solicitações de leitura devem ser roteadas. O valor pode ser um dos seguintes:

  • primary - para rotear todas as solicitações de leitura para o conjunto de réplicas primário

  • primaryPreferred - para rotear todas as solicitações de leitura do conjunto de réplicas primário e para membros secundários somente se primary não estiver disponível

  • secondary - para rotear todas as solicitações de leitura para os membros secundários do conjunto de réplicas

  • secondaryPreferred - para rotear todas as solicitações de leitura para os membros secundários do conjunto de réplicas e o primary em clusters fragmentados somente se os membros secondary não estiverem disponíveis

  • nearest - para rotear todas as solicitações de leitura para um membro aleatório qualificado do conjunto de réplicas, independentemente de esse membro ser primário ou secundário

Se omitido, o padrão é local.

stores.[n].readPreference.tagSets

Opcional. Arrays de conjuntos de tags ou documentos de especificação de tags que contêm pares de nome e valor para o membro do conjunto de réplicas. Se especificado, o Atlas Data Federation roteia solicitações de leitura para membros ou membros do conjunto de réplicas associados às tags especificadas. Para saber mais, Leia Conjuntos de tags de preferência.

Observação

O Atlas Data Federation não suporta tagSets para clusters fragmentados.

stores.[n].readPreference.maxStalenessSeconds

Opcional. Atraso máximo de atraso de replicação, ou "obsoleto", para leituras de secundários . Para saber mais sobre maxStalenessSeconds, consulte Preferência de leitura maxStalenessSeconds.

stores.[n].readConcern

Opcional. Propriedades de consistência e isolamento dos dados lidos de um Atlas cluster. Para saber mais, consulte Read concern. O valor para o nível de consistência e disponibilidade pode ser um dos seguintes:

  • local - para retornar dados de uma instância sem garantia de que os dados tenham sido gravados na maioria dos membros do conjunto de réplicas. Para saber mais, consulte Read concern "local".

  • available - para retornar dados de uma instância sem garantia de que os dados tenham sido gravados na maioria dos membros do conjunto de réplicas. Isso pode retornar documentos órfãos ao ler de uma coleção fragmentada. Para saber mais, consulte Read Concern "available".

  • majority - para retornar dados que foram confirmados pela maioria dos nós no Atlas cluster. Para saber mais, consulte Read Concern "maioria".

  • linearizable - para retornar dados que reflitam todas as gravações bem-sucedidas reconhecidas pela maioria que foram concluídas antes do início da operação de leitura. Para saber mais, consulte Read concern "linearizável".

  • snapshot - para retornar dados comprometidos pela maioria como eles aparecem nos fragmentos a partir de um único ponto específico no passado recente. Para saber mais, consulte Read Concern "snapshot".

1"databases" : [
2 {
3 "name" : "<string>",
4 "collections" : [
5 {
6 "name" : "<string>",
7 "dataSources" : [
8 {
9 "storeName" : "<string>",
10 "database" : "<string>",
11 "databaseRegex": "<string>",
12 "collection" : "<string>",
13 "collectionRegex" : "<string>",
14 "provenanceFieldName": "<string>"
15 }
16 ]
17 }
18 ]
19 }
20]
databases

Array de objetos onde cada objeto representa um banco de dados, suas coleções e, opcionalmente, quaisquer visualizações nas coleções. Cada banco de dados pode ter vários objetos collections e views.

databases.[n].name

Nome do reconhecimento de data center para o qual o Atlas Data Federation mapeia os dados contidos no armazém de dados. Você pode gerar reconhecimento de data center dinamicamente especificando * para o nome do reconhecimento de data center. Bancos de dados gerados dinamicamente:

  • Pode existir ao lado de reconhecimento de data center explicitamente definidos. No entanto, o Atlas Data Federation não gerará dinamicamente reconhecimento de data center com nomes que entrem em conflito com reconhecimento de data center explicitamente definidos na configuração de armazenamento.

  • Só pode ser de um único cluster do Atlas. O Atlas Data Federation não gerará dinamicamente reconhecimento de data center a partir de vários cluster do Atlas ou outros armazenamentos 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 do banco de dados federado stores . Para bancos de dados gerados dinamicamente, você pode definir apenas um objeto de coleção curinga (*) na configuração de armazenamento.

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

Nome 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 array stores.

Você pode gerar nomes de coleções dinamicamente, especificando * para o nome da coleção e omitindo o campo collection . Para gerar dinamicamente coleções curinga (*) para bancos de dados curinga gerados dinamicamente (*), especifique a opção databases.[n].collections.[n].dataSources.[n].storeName e omita a opção databases.[n].collections.[n].dataSources.[n].database . Observe que, para bancos de dados gerados dinamicamente, você pode definir apenas um objeto de coleção curinga (*) na configuração do armazenamento.

Para coleção curinga (*), você também pode definir padrões regex usando o campo databases.[n].collections.[n].dataSources.[n].collectionRegex para filtrar apenas as coleção.

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

Array de objetos em que cada objeto representa um armazenamento de instância do banco de dados federado stores para mapear com a coleção.

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].database

Nome do reconhecimento de data center no cluster do Atlas que contém a collection. Você deve omitir essa configuração para:

  • Crie uma collection curinga (*) para um reconhecimento de data center curinga (*).

  • Glob vários reconhecimento de data center.

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

Opcional. Padrão regex a ser usado para reconhecimento de data center globalizados para combinar várias collection. Se você especificar esta opção, a instância do banco de dados federado conterá um único reconhecimento de data center com collection de vários reconhecimento de data center. Para globalizar bancos de dados, você deve fazer o seguinte:

Exemplo

Suponha que você tenha 2 bancos de dados chamados foo e bar , cada um com uma collection chamada Sales . Você pode combinar a coleção Sales de foo e bar usando a opção databaseRegex na configuração de armazenamento:

{
"databases": [
{
"name": "Transactions",
"collections": [
{
"name": "AllSales",
"dataSources": [
{
"storeName": "atlasStore",
"databaseRegex": ".*",
"collection": "Sales"
}
]
}
]
}
]
}

Para o objeto databases anterior, o Atlas Data Federation gera o seguinte em sua instância do banco de dados federado:

  • Um reconhecimento de data center virtual chamado Transactions.

  • Uma collection virtual denominada AllSales que contém dados da collection denominada Sales em todos os reconhecimento de data center cujo nome corresponde ao padrão regex especificado na opção databaseRegex .

Se você especificar esta opção, deverá especificar o nome da collection. Não é possível especificar essa opção para collection de curingas.

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

Nome da collection no cluster do Atlas no qual o armazenamento de instância do banco de dados federado é baseado. Você deve omitir essa configuração para:

  • Criando uma collection curinga (*).

  • Criando nomes de coleções curingas que correspondem a padrões regex.

  • Combinar várias collection em um reconhecimento de data center usando padrões regex.

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

Condicional: opcional para collection curinga, necessário para combinar collection em um reconhecimento de data center.

Padrão regex a ser usado para criar a collection curinga (*) ou para combinar várias collection em um reconhecimento de data center.

Para usar padrões regex para nomes de collection curinga (''*''), você deve fazer o seguinte:

Se você especificar esse campo para gerar collection curinga, a instância de instância do reconhecimento de data center conterá somente collection com nomes que correspondam à expressão regular especificada. As collection na configuração de armazenamento da instância do reconhecimento de data center federado usam seus nomes originais no cluster do Atlas.

Para usar padrões regex para combinar várias coleções em um database, você deve fazer o seguinte:

Se você especificar este campo para combinar múltiplas coleções, a coleção na instância do banco de dados federado conterá dados de todas as coleções do Atlas com nomes que correspondem à expressão regular especificada. A collection na configuração de armazenamento da instância do banco de dados federado usa o nome que você especifica como valor para databases.[n].collections.[n].name.

Para saber mais sobre a sintaxe regex, consulte Linguagem de programação Go.

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 Atlas clusterstores.[n].clusterName()

databaseName

Nome do banco de dados (databases.[n].collections.[n].dataSources.[n].database) no Atlas cluster

collectionName

Você não pode definir esta configuração utilizando o Editor Visual na UI do Atlas.

databases.[n].views

Array de objetos onde cada objeto representa um pipeline de agregação em uma coleção. Para saber mais sobre visualizações, consulte Visualizações.

databases.[n].views.[n].name

Nome da visualização.

databases.[n].views.[n].source

Nome da coleção de origem da visualização. Se quiser criar uma visualização com um estágio $sql , você deverá omitir este campo , pois a instrução SQL especificará a collection de origem.

databases.[n].views.[n].pipeline

Estágio(s) de pipeline de agregação a serem aplicados à coleção source . Você também pode criar visualizações usando o estágio $sql .

Voltar

Distribuir