Para agentes de IA: um Ă­ndice de documentação estĂĄ disponĂ­vel em https://www.mongodb.com/pt-br/docs/llms.txt — as versĂ”es de markdown de todas as pĂĄginas estĂŁo disponĂ­veis anexando .md a qualquer caminho de URL.
Menu Docs

Comandos do Esquema do Atlas Data Federation

No Atlas Data Federation, vocĂȘ gerencia o esquema que a interface SQL utiliza por meio de trĂȘs comandos: sqlGenerateSchema, sqlGetSchema e sqlSetSchema. VocĂȘ executa estes comandos do mongosh em uma instĂąncia do banco de dados federado ou executa as açÔes equivalentes na UI do Atlas . Esta pĂĄgina documenta esses comandos e seus equivalentes em UI.

O Atlas Data Federation coleta amostras de documentos de suas coleçÔes para gerar o esquema inicial. Para obter informaçÔes båsicas sobre o gerenciamento de esquemas e os outros tipos de sistema suportados, consulte Gerenciamento de esquemas.

Observação

Os sqlGenerateSchema sqlGetSchema sqlSetSchema comandos, e e seus equivalentes da UI do Atlas se aplicam somente ao tipo de sistema Atlas Data Federation . Eles nĂŁo se aplicam a sistemas Enterprise Advanced (EA) autogerenciados, que usam o CLI do MongoDB SQL Schema Builder, ou a queries em um Atlas cluster padrĂŁo que nĂŁo usa o Atlas Data Federation.

O comando sqlGenerateSchema gera um esquema de interface SQL para as collections ou visualizaçÔes especificadas. O Atlas Data Federation coleta amostras de documentos de cada namespace para derivar o esquema.

Ao usar o parĂąmetro sampleNamespaces , vocĂȘ deve executar o comando no banco de dados admin .

use admin
db.runCommand({
sqlGenerateSchema: 1,
sampleNamespaces: [<namespace>],
sampleSize: <int>,
setSchemas: true|false
})
ParĂąmetro
Tipo
Descrição
necessidade

sampleNamespaces

array de strings

Especifica a lista separada por vírgula de namespaces para os quais gerar esquemas. Um namespace inclui o nome do banco de dados , um separador de ponto (). e a coleção ou nome de visualização (isto<database>.<collection>|<view> é,). Para gerar esquemas para todas as coleçÔes em um banco de dados, especifique * da coleção ou nome de visualização (isto<database>.* é,). Se omitido, o Atlas Data Federation gera esquemas para todas as coleçÔes e visualizaçÔes no banco de dados atual.

Opcional

sampleSize

inteiro

Especifica o nĂșmero de documentos a serem usados como amostra para criar o esquema. Se omitido, o padrĂŁo Ă© 1000.

Opcional

setSchemas

booleano

Especifica se deseja armazenar o esquema gerado para a coleção ou visualização. O valor pode ser um dos seguintes:

  • true para armazenar o esquema. Se um esquema jĂĄ existir para a coleção ou visualização, o Atlas Data Federation substituirĂĄ o esquema existente.

  • false para nĂŁo armazenar o esquema.

Se omitido, o padrĂŁo Ă© false.

Opcional

O comando retornarĂĄ a seguinte saĂ­da se for bem-sucedido:

{
"ok" : 1,
"schemas" : [
{
"databaseName" : "<database-name>",
"namespaces" : [
{
"name" : "<collection-name>",
"schema" : {
"version" : NumberLong(1),
"jsonSchema" : { ... }
}
}
]
},
...
]
}

O objeto schemas contém os seguintes campos.

ParĂąmetro
Tipo
Descrição

databaseName

string

Nome do banco de dados.

namespaces

Array de objetos

Nome e esquema gerado de cada coleção ou visualização.

namespaces.name

string

Nome da coleção ou visualização.

namespaces[n].schema

documento

Esquema da coleção ou visualização.

namespaces[n].schema.version

inteiro

Formatar versĂŁo do esquema. O valor Ă© sempre 1.

namespaces[n].schema.jsonSchema

documento

Esquema JSON da coleção ou visualização. O esquema JSON pode conter os seguintes campos:

  • bsonType

  • properties

  • items

  • additionalProperties

  • required

Para saber mais sobre esses campos, consulte Palavras-chave do JSON schema.

Se vocĂȘ definir o esquema da coleção ou visualização com a opção setSchemas, poderĂĄ verificar se o comando foi bem-sucedido executando o comando sqlGetSchema. O campo sqlGetSchema comando metadata.description contĂ©m o seguinte valor:

"set using sqlGenerateSchema with setSchemas = true"

O comando retorna o seguinte erro se falhar:

"failedNamespaces": [
{
"namespace" : "<db.ns>",
"error" : "no documents found in sample namespace"
}
]

O Atlas Data Federation retorna esse erro se os namespaces especificados não existirem na configuração de armazenamento ou estiverem vazios. O Atlas Data Federation também retorna esse erro se não puder definir o esquema para um determinado namespace.

O comando sqlGetSchema recupera o esquema armazenado para a coleção ou visualização especificada.

db.getSiblingDB("<dbName>").runCommand({
sqlGetSchema: "<collection-name>|<view-name>"
})
ParĂąmetro
Tipo
Descrição
necessidade

<collection-name>

string

Nome da coleção para a qual recuperar o esquema. Forneça o nome da collection ou o nome da visualização.

Condicional

<view-name>

string

Nome da visualização para a qual recuperar o esquema. Forneça o nome da visualização ou o nome da collection.

Condicional

O comando retorna a seguinte saída se a coleção ou visualização não tiver um esquema:

{ "ok" : 1, "metadata" : { }, "schema" : { } }

O comando retornarå uma saída semelhante à seguinte se a collection ou visualização tiver um esquema:

{
"ok": 1,
"metadata": {
"description": "<description>"
},
"schema": {
"version": NumberLong(1),
"jsonSchema": { ... }
}
}

O campo metadata.description descreve como o esquema foi definido para a coleção. O valor pode ser um dos seguintes:

generated automatically by Atlas Data Federation

Indica que o esquema foi gerado automaticamente pelo Atlas Data Federation.

set using sqlGenerateSchema with setSchemas = true

Indica que o esquema foi definido pelo comando sqlGenerateSchema porque a setSchema opção foi definida true como.

set using sqlSetSchema

Indica que o esquema foi definido usando o comando sqlSetSchema.

O documento schema contém os seguintes campos:

ParĂąmetro
Tipo
Descrição

schema.version

inteiro

Formatar versĂŁo do esquema. O valor Ă© sempre 1.

schema.jsonSchema

documento

Esquema JSON da coleção ou visualização. O esquema JSON pode conter os seguintes campos:

  • bsonType

  • properties

  • items

Para saber mais sobre esses campos, consulte Palavras-chave do JSON schema.

O comando sqlSetSchema define ou remove o esquema de uma coleção ou visualização. O comando aplica o esquema fornecido diretamente. O comando não valida o esquema fornecido em relação aos dados da coleção.

db.getSiblingDB("<dbName>").runCommand({
sqlSetSchema: "<collection-name>|<view-name>",
schema: {
"version": 1,
"jsonSchema": <jsonSchema>
}
})
db.getSiblingDB("<dbName>").runCommand({
sqlSetSchema: "<collection-name>|<view-name>",
schema: {}
})
ParĂąmetro
Tipo
Descrição
necessidade

<collection-name>

string

Nome da collection para a qual definir o esquema. Forneça um nome de collection ou um nome de visualização.

Condicional

<view-name>

string

Nome da visualização para a qual definir o esquema. Forneça um nome de visualização ou um nome de collection.

Condicional

schema

documento

A versĂŁo do formato do esquema e:

  • o JSON schema para a collection ou visualização

  • um documento vazio para remover o esquema da coleção ou visualização

VocĂȘ pode fornecer um Ășnico documento ou uma array de documentos no campo items . Ao recuperar o esquema, items mostra o formulĂĄrio que vocĂȘ usou para definir o esquema.

ObrigatĂłrio

O comando retornarĂĄ a seguinte saĂ­da se for bem-sucedido:

{ "ok" : 1 }

VocĂȘ pode verificar se o comando foi bem-sucedido executando o comando sqlGetSchema . O campo metadata.description na resposta contĂ©m o seguinte valor:

"set using sqlSetSchema"

Considere uma coleção denominada egData em um banco de dados denominada sampleDB com os seguintes documentos:

{"a": {"b": {"c": [1, 2, 3]}}, "s": 1}
{"a": {"b": {"c": [4, 5, 6]}}, "s": 2}
{"a": {"b": [7, 8, 9]}, "s": 3}
{"a": {"b": {"c": []}}, "s": 4}
{"a": {"b": {"c": "hello"}}, "s": 5}
{"a": {"b": {"c": {"d": 1}}}, "s": 6}
{"a": {"b": {"c": null}}}
{"s": 7}

Os exemplos seguintes utilizam os comandos de esquema do Atlas Data Federation para gerar, recuperar, configurar e remover o esquema para a coleção anterior.

O seguinte comando gera um esquema para a coleção denominada sampleDB.egData na configuração de armazenamento. O comando utiliza dois documentos selecionados aleatoriamente da coleção para criar o esquema, pois o sampleSize é 2. O comando não define o esquema para a coleção porque a opção setSchemas não é especificada e o padrão é false.

use admin
db.runCommand({
sqlGenerateSchema: 1,
sampleNamespaces: ["sampleDB.egData"],
sampleSize: 2
})

O comando anterior retorna a seguinte saĂ­da. Para saber mais sobre os campos na saĂ­da, consulte SaĂ­da.

{
"ok" : 1,
"schemas" : [
{
"databaseName" : "sampleDB",
"namespaces" : [
{
"name" : "egData",
"schema" : {
"version" : NumberLong(1),
"jsonSchema" : {
"bsonType" : [ "object" ],
"properties" : {
"a" : {
"bsonType" : [ "object" ],
"properties" : {
"b" : {
"bsonType" : [ "object" ],
"properties" : {
"c" : {
"bsonType" : [ "array" ],
"items" : {
"bsonType" : [ "int" ]
}
}
}
}
}
},
"s" : {
"bsonType" : [ "int" ]
}
}
}
}
}
]
}
]
}

O seguinte comando gera um esquema para a coleção denominada sampleDB.egData na configuração de armazenamento. O comando utiliza até 1000 documentos na coleção para criar o esquema, pois a opção sampleSize não é especificada e padrão para 1000. O comando define o esquema gerado como o esquema a ser usado para a coleção porque setSchemas é true.

use admin
db.runCommand({
sqlGenerateSchema: 1,
sampleNamespaces: ["sampleDB.egData"],
setSchemas: true
})

O comando a seguir recupera o esquema armazenado para a coleção egData:

db.getSiblingDB("sampleDB").runCommand({
sqlGetSchema: "egData"
})

O comando anterior retorna a seguinte saĂ­da. Para saber mais sobre os campos na saĂ­da, consulte SaĂ­da.

{
"ok" : 1,
"metadata" : {
"description" : "set using sqlGenerateSchema with setSchemas = true"
},
"schema" : {
"version" : NumberLong(1),
"jsonSchema" : {
"bsonType" : [ "object" ],
"properties" : {
"a" : {
"bsonType" : [ "object" ],
"properties" : {
"b" : {
"bsonType" : [ "object", "array" ],
"properties" : {
"c" : {
"bsonType" : [ "array", "string", "object", "null" ],
"properties" : {
"d" : {
"bsonType" : [ "int" ]
}
},
"items" : {
"bsonType" : [ "int" ]
}
}
},
"items" : {
"bsonType" : [ "int" ]
}
}
}
},
"s" : {
"bsonType" : [ "int", "object" ]
}
}
}
}
}

O seguinte comando do sqlSetSchema define o esquema para a coleção egData:

db.getSiblingDB("sampleDB").runCommand({
sqlSetSchema : "egData",
"schema" : {
"version" : NumberLong(1),
"jsonSchema" : {
"bsonType" : [ "object" ],
"properties" : {
"a" : {
"bsonType" : [ "object" ],
"properties" : {
"b" : {
"bsonType" : [ "object", "array" ],
"properties" : {
"c" : {
"bsonType" : [ "array", "string", "object", "null" ],
"properties" : {
"d" : {
"bsonType" : [ "int" ]
}
},
"items" : {
"bsonType" : [ "int" ]
}
}
},
"items" : {
"bsonType" : [ "int" ]
}
}
}
},
"s" : {
"bsonType" : [ "int", "object" ]
}
}
}
}
})

O comando anterior retorna a seguinte saĂ­da:

{ "ok" : 1 }

O comando sqlSetSchema a seguir remove o esquema da collection egData passando um documento schema vazio:

db.getSiblingDB("sampleDB").runCommand({
sqlSetSchema: "egData",
schema: {}
})

O comando anterior retorna a seguinte saĂ­da:

{ "ok" : 1 }

VocĂȘ pode executar as mesmas açÔes de esquema na UI do Atlas a partir da pĂĄgina Manage SQL Schemas. Os documentos de amostras da UI para gerar esquemas, os mesmos do comando sqlGenerateSchema.

Quando vocĂȘ cria uma conexĂŁo de inĂ­cio rĂĄpido, o Atlas Data Federation gera o esquema automaticamente. Para criar um esquema manualmente, use o procedimento a seguir.

1
  1. Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.

  2. Se ainda não estiver exibido, selecione seu projeto no menu Projects na barra de navegação.

  3. Na barra lateral, clique em Data Federation sob o tĂ­tulo Services.

A pĂĄgina Data Federation Ă© exibida.

2

Na seção Federated Database Instances , clique em ícone à direita do esquema e selecione Manage SQL Schemas no menu suspenso.

3

Em uma coleção que tem um esquema vazio:

  1. Clique em .

  2. Clique Generate new schema from sample ou forneça seu próprio JSON.

  3. Clique em Save.

Regenere um esquema sempre que a forma dos dados subjacentes for alterada, como ao adicionar campos ou alterar os tipos de campo , para que as queries SQL reflitam os dados atuais. Para manter os esquemas atualizados automaticamente, consulte Agendar atualizaçÔes de esquema.

1
  1. Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.

  2. Se ainda não estiver exibido, selecione seu projeto no menu Projects na barra de navegação.

  3. Na barra lateral, clique em Data Federation sob o tĂ­tulo Services.

A pĂĄgina Data Federation Ă© exibida.

2

Na seção Federated Database Instances , clique em ícone à direita do esquema e selecione Manage SQL Schemas no menu suspenso.

3

Em uma collection que jĂĄ possui um esquema:

  1. Clique em .

  2. Clique em Generate new schema from sample.

  3. Clique em Save.

1
  1. Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.

  2. Se ainda não estiver exibido, selecione seu projeto no menu Projects na barra de navegação.

  3. Na barra lateral, clique em Data Federation sob o tĂ­tulo Services.

A pĂĄgina Data Federation Ă© exibida.

2

Na seção Federated Database Instances , clique em ícone à direita do esquema e selecione Manage SQL Schemas no menu suspenso.

Nesta pĂĄgina, vocĂȘ pode visualizar todos os esquemas existentes. Para visualizar um esquema especĂ­fico no formato JSON, clique em.

1
  1. Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.

  2. Se ainda não estiver exibido, selecione seu projeto no menu Projects na barra de navegação.

  3. Na barra lateral, clique em Data Federation sob o tĂ­tulo Services.

A pĂĄgina Data Federation Ă© exibida.

2

Na seção Federated Database Instances , clique em ícone à direita do esquema e selecione Manage SQL Schemas no menu suspenso.

3
  1. Ao lado de um esquema, clique em .

  2. Edite o JSON.

  3. Clique em Save.

1
  1. Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.

  2. Se ainda não estiver exibido, selecione seu projeto no menu Projects na barra de navegação.

  3. Na barra lateral, clique em Data Federation sob o tĂ­tulo Services.

A pĂĄgina Data Federation Ă© exibida.

2

Na seção Federated Database Instances , clique em ícone à direita do esquema e selecione Manage SQL Schemas no menu suspenso.

Nesta pĂĄgina, vocĂȘ pode visualizar todos os esquemas existentes.

3
  1. Para o esquema que vocĂȘ deseja excluir, clique em.

  2. Clique em Clear....

  3. Clique em Clear schema para confirmar.

1
  1. Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.

  2. Se ainda não estiver exibido, selecione seu projeto no menu Projects na barra de navegação.

  3. Na barra lateral, clique em Data Federation sob o tĂ­tulo Services.

A pĂĄgina Data Federation Ă© exibida.

2

Na seção Federated Database Instances , clique em ícone à direita do esquema e selecione Manage SQL Schemas no menu suspenso.

Nesta pĂĄgina, vocĂȘ pode visualizar todos os esquemas existentes.

3
  1. Clique no Ă­cone no canto superior direito.

  2. Clique em Clear all schemas.

  3. Clique em Clear all schemas novamente para confirmar.

As atualizaçÔes de esquema programadas ajudam a manter a precisão do esquema ao longo do tempo. As atualizaçÔes de esquema agendadas amostram cada namespace e mesclam o novo esquema com o existente. Por exemplo, atualizaçÔes de esquema agendadas permitem que Atlas Data Federation escolha automaticamente novos campos adicionados a collections.

1
  1. Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.

  2. Se ainda não estiver exibido, selecione seu projeto no menu Projects na barra de navegação.

  3. Na barra lateral, clique em Data Federation sob o tĂ­tulo Services.

A pĂĄgina Data Federation Ă© exibida.

2

Na seção Federated Database Instances , clique em ícone à direita do esquema e selecione Manage SQL Schemas no menu suspenso.

3
  1. Clique em Configure schema update schedule.

  2. Selecione uma frequĂȘncia.

  3. Clique em Save.