create
O comando create
cria uma collection para stores
existente ou umavisualização em uma collection na configuração de armazenamento da instância do banco de dados federado .
O curinga "*"
pode ser utilizado com o comando create
de duas maneiras:
Como o nome da coleção para criar dinamicamente coleções que mapeiam para arquivos e pastas no armazenamento de instâncias do banco de dados federado
stores
especificado.No parâmetro
path
para criar uma collection que mapeia para vários arquivos e pastas no caminho de arquivo especificado no armazenamento de instância do instância do banco de dados federado dostores
.
Clique na guia para saber mais sobre como criar uma collection ou uma visualização.
Esta guia contém a sintaxe e os parâmetros para criar uma collection. Escolha a guia do armazenamento de instância do banco de dados federado para saber mais sobre a sintaxe e os parâmetros desse armazenamento de instância do banco de dados federado.
Esta guia contém a sintaxe e os parâmetros para criar uma coleção para o armazenamento de instância do banco de dados federado S3 .
Esta guia contém a sintaxe e os parâmetros para criar uma coleção para o armazenamento de instância do banco de dados federado do Azure .
Esta guia contém a sintaxe e os parâmetros para criar uma coleção para o armazenamento de instância do banco Google Cloud Platform de dados federado do Google Cloud Platform.
Esta aba contém a sintaxe e os parâmetros para criar uma collection para o armazenamento de instâncias do banco de dados federado.
Esta aba contém a sintaxe e os parâmetros para criar uma collection para um armazenamento de instância do banco de dados federado HTTP .
Esta aba contém a sintaxe e os parâmetros para criar uma collection para um armazenamento de instância do banco de dados federado do Online Archive.
Esta guia contém a sintaxe e os parâmetros para criar uma exibição para uma coleção ou coleção de origem que você especifica por meio de uma instrução SQL dentro do pipeline.
Esta aba descreve a sintaxe e os parâmetros para criar uma visualização padrão que executa um pipeline de agregação em outra collection.
Esta aba descreve a sintaxe e os parâmetros para criar uma visualização SQL utilizando o estágio $sql
.
Sintaxe
db.runCommand({ "create" : "<collection-name>|*", "dataSources" : [{ "storeName" : "<store-name>", "path" : "<path-to-files-or-folders>", "defaultFormat" : "<file-extension>", "omitAttributes": <boolean> }]})
db.runCommand({ "create" : "<collection-name>|*", "dataSources" : [{ "storeName" : "<store-name>", "path" : "<path-to-files-or-folders>", "defaultFormat" : "<file-extension>", "omitAttributes": <boolean> }]})
db.runCommand({ "create" : "<collection-name>|*", "dataSources" : [{ "storeName" : "<store-name>", "path" : "<path-to-files-or-folders>", "defaultFormat" : "<file-extension>", "omitAttributes": <boolean> }]})
db.runCommand({ "create" : "<collection-name>"|"*", "dataSources" : [{ "storeName" : "<store-name>", "database" : "<atlas-database-name>", "collection" : "<atlas-collection-name>" | "collectionRegex": "<regex-pattern>" }]})
db.runCommand({ "create" : "<collection-name>", "dataSources" : [{ "storeName" : "<store-name>", "allowInsecure" : true|false, "urls" : [ "<url>" ], "defaultFormat" : "<file-extension>" }]})
db.runCommand({ "create" : "<collection-name>|*", "dataSources" : [{ "storeName" : "<store-name>", "datasetName" : "<online-archive-dataset-name>", "datasetPrefix": "<prefix-name>", "trimLevel" : <trim-number>, "maxDatasets": <maximum-number-of-datasets> }]})
db.runCommand({ "create" : "<view-name>", "viewOn" :" <collection-name>", "pipeline" : ["<stage1>","<stage2>",...] })
db.runCommand({ "create" : "<view-name>", "pipeline" : ["$sql": {"statement": "<SQL-statement>", "excludeNamespaces": true | false ]} })
Parâmetros
Parâmetro | Tipo | Descrição | necessidade |
---|---|---|---|
| string | O nome da collection para a qual o Data Federation mapeia os dados contidos no reconhecimento de data center de instância do banco de dados federado ou o curinga Você pode gerar nomes de collection dinamicamente a partir de caminhos de arquivos, especificando | Obrigatório |
| objeto | Array de objeto em que cada objeto representa um reconhecimento de data center de instância do banco de dados federado na array | Obrigatório |
| string | Nome de um armazém de instância do banco de dados federado para mapear para a coleção. O valor deve corresponder a | Obrigatório |
| string | Caminho para os arquivos e pastas. Especifique | Obrigatório |
| string | Formate o padrão do Data Federation se encontrar um arquivo sem extensão ao consultar o reconhecimento de data center de instância do banco de dados federado. Os seguintes valores são válidos:
Se omitido, o Data Federation processa alguns bytes do arquivo para tentar detectar o tipo. | Opcional |
| booleano | Sinalizador que especifica se os atributos (pares de chave e valor) devem ser omitidos que o Atlas Data Federation adiciona à coleção. Você pode especificar um dos seguintes valores:
Se omitido, o padrão é | Opcional |
Parâmetro | Tipo | Descrição | necessidade |
---|---|---|---|
| string | O nome da collection para a qual o Data Federation mapeia os dados contidos no reconhecimento de data center de instância do banco de dados federado ou o curinga Você pode gerar nomes de collection dinamicamente a partir de caminhos de arquivos, especificando | Obrigatório |
| objeto | Array de objeto em que cada objeto representa um reconhecimento de data center de instância do banco de dados federado na array | Obrigatório |
| string | Nome de um armazém de instância do banco de dados federado para mapear para a coleção. O valor deve corresponder a | Obrigatório |
| string | Caminho para os arquivos e pastas. Especifique | Obrigatório |
| string | Formate o padrão do Data Federation se encontrar um arquivo sem extensão ao consultar o reconhecimento de data center de instância do banco de dados federado. Os seguintes valores são válidos:
Se omitido, o Data Federation processa alguns bytes do arquivo para tentar detectar o tipo. | Opcional |
| booleano | Sinalizador que especifica se os atributos (pares de chave e valor) devem ser omitidos que o Atlas Data Federation adiciona à coleção. Você pode especificar um dos seguintes valores:
Se omitido, o padrão é | Opcional |
Parâmetro | Tipo | Descrição | necessidade |
---|---|---|---|
| string | O nome da collection para a qual o Data Federation mapeia os dados contidos no reconhecimento de data center de instância do banco de dados federado ou o curinga Você pode gerar nomes de collection dinamicamente a partir de caminhos de arquivos, especificando | Obrigatório |
| objeto | Array de objeto em que cada objeto representa um reconhecimento de data center de instância do banco de dados federado na array | Obrigatório |
| string | Nome de um armazém de instância do banco de dados federado para mapear para a coleção. O valor deve corresponder a | Obrigatório |
| string | Caminho para os arquivos e pastas. Especifique | Obrigatório |
| string | Formate o padrão do Data Federation se encontrar um arquivo sem extensão ao consultar o reconhecimento de data center de instância do banco de dados federado. Os seguintes valores são válidos:
Se omitido, o Data Federation processa alguns bytes do arquivo para tentar detectar o tipo. | Opcional |
| booleano | Sinalizador que especifica se os atributos (pares de chave e valor) devem ser omitidos que o Atlas Data Federation adiciona à coleção. Você pode especificar um dos seguintes valores:
Se omitido, o padrão é | Opcional |
Parâmetro | Tipo | Descrição | necessidade |
---|---|---|---|
| string | O nome da collection para a qual o Data Federation mapeia os dados contidos no reconhecimento de data center de instância do banco de dados federado ou o curinga Você pode gerar nomes de coleção dinamicamente especificando Para bancos de dados gerados dinamicamente, você pode gerar coleções curinga especificando
Para coleções curinga ( | Obrigatório |
| objeto | Array de objeto em que cada objeto representa um reconhecimento de data center de instância do banco de dados federado na array | Obrigatório |
| string | Nome de um armazém de instância do banco de dados federado para mapear para a coleção. O valor deve corresponder a | Obrigatório |
| string | Nome do banco de banco de dados que contém a coleção no Atlas cluster. Você deve omitir este parâmetro para gerar coleções curingas ( | Condicional |
| string | Nome da coleção no banco de banco de dados do Atlas . Para criar uma collection de curinga ( | Condicional |
| string | Padrão regex a ser usado para criar a coleção curinga ( Para utilizar padrões regex para nomes de coleção curingas ( | Opcional |
Parâmetro | Tipo | Descrição | necessidade |
---|---|---|---|
| string | O nome da collection para a qual a Atlas Data Federation mapeia os dados contidos no armazenamento da instância do banco de dados federado . Você não pode gerar nomes de coleção dinamicamente especificando | Obrigatório |
| objeto | Array de objeto em que cada objeto representa um reconhecimento de data center de instância do banco de dados federado na array | Obrigatório |
| string | Nome de um armazém de instância do banco de dados federado para mapear para a coleção. O valor deve corresponder a | Obrigatório |
| booleano | Valida o esquema na s URLespecificada. O valor pode ser um dos seguintes:
Se verdadeiro, o Atlas Data Federation:
AVISO: se você definir isso como Se omitido, o padrão é | Opcional |
| array de strings ou array vazia | As URLs dos arquivos de dados acessíveis publicamente. Não é possível especificar URLs que exijam autenticação. O Atlas Data Federation cria uma partição para cada URL. Se vazio ou omitido, o Atlas Data Federation utiliza os URLs do armazenamento especificado no parâmetro | Obrigatório |
| string | Formate o padrão do Data Federation se encontrar um arquivo sem extensão ao consultar o reconhecimento de data center de instância do banco de dados federado. Os seguintes valores são válidos:
Se omitido, o Data Federation processa alguns bytes do arquivo para tentar detectar o tipo. Se incluído, o formato especificado se aplica somente aos URLs no | Opcional |
Parâmetro | Tipo | Descrição | necessidade | |
---|---|---|---|---|
| string | O nome da collection para a qual a Atlas Data Federation mapeia os dados contidos no armazenamento da instância do banco de dados federado . Para gerar nomes de coleções dinamicamente, você deve fazer o seguinte:
| Obrigatório | |
| objeto | Array de objeto em que cada objeto representa um reconhecimento de data center de instância do banco de dados federado na array Você pode especificar vários | Obrigatório | |
| string | Nome de um armazém de instância do banco de dados federado para mapear para a coleção. O valor deve corresponder a | Obrigatório | |
| string | Nome do conjunto de dados do arquivo on-line para mapear com a coleção. O arquivo on-line
Você não pode especificar o | Condicional | |
| string | Necessário apenas para collections de curingas. Opcional para collection não curinga. Prefixo do nome do conjunto de dados para correspondência com os nomes de conjuntos de dados do arquivo on-line. Se você especificar este parâmetro para coleções curinga, o Atlas Data Federation mapeará as coleções para somente os nomes de conjunto de dados cujo prefixo corresponder ao Se você especificar esse parâmetro para collections não curinga, o Atlas Data Federation mapeará o conjunto de dados mais recente (para o snapshot capturado mais recentemente) para a collection. Você deve omitir | Condicional | |
| int | Somente para collections de curinga. Número máximo de conjuntos de dados a partir dos quais gerar collections dinamicamente para a fonte de dados. O valor deve ser maior que | Opcional | |
| int | Somente para collections de curinga. Número de caracteres a serem cortados à esquerda do nome do conjunto de dados antes de mapear os campos restantes para um nome de coleção curinga. O valor deve ser maior que Você pode definir essa configuração apenas para collections de curingas. | Opcional |
Parâmetro | Tipo | Descrição | necessidade |
---|---|---|---|
| string | O nome da visualização. O nome de uma visualização deve ser exclusivo. Não pode ser igual ao nome de uma collection ou a qualquer outro nome de visualização no mesmo banco de dados de dados. | Obrigatório |
| string | O nome da coleção de origem na qual criar a visualização. | Obrigatório |
| série de estágios | A array de estágios do agregação pipeline a serem usados para criar a visualização. O pipeline de definição de visualização não pode incluir os estágios $out ou $merge , mesmo dentro de estágios de pipeline aninhados como $lookup ou $facet. | Obrigatório |
Parâmetro | Tipo | Descrição | necessidade |
---|---|---|---|
| string | O nome da visualização. O nome de uma visualização deve ser exclusivo. Não pode ser igual ao nome de uma collection ou a qualquer outro nome de visualização no mesmo banco de dados de dados. | Obrigatório |
| série de estágios | Os estágios do pipeline de agregação a serem aplicados à coleção. Para visualizações SQL, | Obrigatório |
Saída
O comando retornará a seguinte saída se for bem-sucedido. Você pode verificar os resultados executando os comandos em Verificar Coleção. Se falhar, consulte Solucionar erros abaixo para obter as soluções recomendadas.
{ ok: 1 }
Exemplos
Os exemplos a seguir utilizam os dados de amostra airbnb
em um armazenamento da Amazon Web Services S3 com as seguintes configurações:
Nome da loja |
|
Região |
|
Balde |
|
Prefixo |
|
Delimitador |
|
dataset de amostra |
|
Os exemplos a seguir usam os dados da amostra airbnb
em um contêiner do Azure Blob Storage com as seguintes configurações:
Nome da loja |
|
Prefixo |
|
Delimitador |
|
dataset de amostra |
|
Os exemplos a seguir usam os airbnb
dados de amostra em um Google Cloud Platform armazenamento do Google Cloud Platform com as seguintes configurações:
Nome da loja |
|
Região |
|
Balde |
|
Prefixo |
|
Delimitador |
|
dataset de amostra |
|
Os exemplos seguintes utilizam a collection sample_airbnb.listingsAndReviews
do conjunto de dados de amostra no Atlas cluster com as seguintes configurações:
Nome da loja |
|
dataset de amostra |
|
Revise Carregar dados de amostra em seu cluster do Atlas para carregar o conjunto de dados de amostra em seu cluster do Atlas .
Os exemplos a seguir usam as seguintes URLs:
https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.json
https://atlas-data-lake.s3.amazonaws.com/json/sample_weatherdata/data.json
Os exemplos a seguir usam um arquivo on-line com as seguintes configurações:
Nome da loja |
|
Nome do Online Archive |
|
Exemplo básico
O seguinte comando cria uma collection denominada airbnb
no reconhecimento de data center do sampleDB
na configuração de armazenamento.
A airbnb
coleção mapeia para o airbnb
conjunto de dados de amostra no json
armazenamento S3 denominada egS3Store
.
use sampleDB db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "egS3Store", "path" : "/json/airbnb", "defaultFormat" : ".json" }]})
{ "ok" : 1 }
Os seguintes comandos mostram que a collection foi criada com sucesso:
show collections
airbnb
db.runCommand({"storageGetConfig" : 1 })
{ "ok" : 1, "storage" : { "stores" : [{ "name" : "egS3Store", "provider" : "s3", "region" : "us-east-2", "bucket" : "test-data-federation", "delimiter" : "/", "prefix" : "" }], "databases" : [{ "name" : "sampleDB", "collections" : [{ "name" : "airbnb", "dataSources" : [{ "storeName" : "egS3Store", "path" : "/json/airbnb", "defaultFormat" : ".json" }] }] }] } }
A airbnb
coleção mapeia para o airbnb
conjunto de dados de amostra no sample
armazenamento do Azure denominada egAzureStore
.
use sampleDB db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "egAzureStore", "path" : "/sample/airbnb", "defaultFormat" : ".json" }]})
{ "ok" : 1 }
Os seguintes comandos mostram que a collection foi criada com sucesso:
show collections
airbnb
A airbnb
coleção mapeia para o airbnb
conjunto de dados de amostra na pasta no json
armazenamento da Google Cloud Platform Google Cloud egGCStore
Platform denominada.
use sampleDB db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "egGCStore", "path" : "/json/airbnb", "defaultFormat" : ".json" }]})
{ "ok" : 1 }
Os seguintes comandos mostram que a collection foi criada com sucesso:
show collections
airbnb
db.runCommand({"storageGetConfig" : 1 })
{ "ok" : 1, "storage" : { "stores" : [{ "name" : "egGCStore", "provider" : "gcs", "region" : "us-central1", "bucket" : "test-data-federation", "delimiter" : "/", "prefix" : "" }], "databases" : [{ "name" : "sampleDB", "collections" : [{ "name" : "airbnb", "dataSources" : [{ "storeName" : "egGCStore", "path" : "/json/airbnb", "defaultFormat" : ".json" }] }] }] } }
A airbnb
coleção mapeia para a coleção de listingsAndReviews
amostras do no sample_airbnb
banco de dados de dados do no Atlas cluster.
use sampleDB db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "egAtlasStore", "database" : "sample_airbnb", "collection" : "listingsAndReviews" }]})
{ "ok" : 1 }
Os seguintes comandos mostram que a collection foi criada com sucesso:
show collections
airbnb
db.runCommand({"storageGetConfig":1})
{ "ok" : 1, "storage" : { "stores" : [{ "name" : "egAtlasStore", "provider" : "atlas", "clusterName" : "myTestCluster", "projectId" : "<project-id>" }], "databases" : [{ "name" : "sampleDB", "collections" : [{ "name" : "airbnb", "dataSources" : [{ "storeName" : "egAtlasStore", "database" : "sample_airbnb", "collection" : "listingsAndReview" }] }] }] } }
A coleção airbnb
inclui uma partição para cada URL na coleção. O sinalizador allowInsecure
não está configurado e o padrão é false
.
use sampleDB db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "http-store", "urls": ["https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.json","https://atlas-data-lake.s3.amazonaws.com/json/sample_weatherdata/data.json"], "defaultFormat" : ".json" }]})
{ "ok" : 1 }
Os seguintes comandos mostram que a collection foi criada com sucesso:
show collections
airbnb
db.runCommand({"storageGetConfig":1})
{ "ok" : 1, "storage" : { "stores" : [ { "name" : "http-store", "provider" : "http", "urls" : [ "https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.json", "https://atlas-data-lake.s3.amazonaws.com/json/sample_weatherdata/data.json" ], "defaultFormat" : ".json" } ], "databases" : [ { "name" : "sampleDb", "collections" : [ { "name" : "airbnb", "dataSources" : [ { "storeName" : "http-store", "defaultFormat" : ".json", "urls" : [ "https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.json", "https://atlas-data-lake.s3.amazonaws.com/json/sample_weatherdata/data.json" ] } ] } ] } ] } }
A coleção airbnb
mapeia para os conjuntos de dados de arquivo online no pipeline do sample_airbnb.listingsAndReviews
.
use sampleDB db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "adlStore", "datasetName" : "v1$atlas$snapshot$testCluster$sample_airbnb$listingsAndReviews" }]})
{ "ok" : 1 }
Exemplos de uso de curingas
Estes exemplos mostram como o curinga "*"
pode ser especificado com o comando create
.
O exemplo seguinte utiliza o comando create
para criar collection dinamicamente.
O exemplo abaixo usa o comando create
para criar collection dinamicamente para os arquivos no caminho /json/
no reconhecimento de data center de instância do banco de dados federado egS3Store
. Ela usa a função collectionName()
para nomear as collection após os nomes dos arquivos no caminho especificado.
use sampleDB db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egS3Store", "path": "/json/{collectionName()}"}]})
{ "ok" : 1 }
Os seguintes comandos mostram que a collection foi criada com sucesso:
show collections
airbnb
db.runCommand({"storageGetConfig" : 1 })
{ "ok" : 1, "storage" : { "stores" : [{ "name" : "egS3Store", "provider" : "s3", "region" : "us-east-2", "bucket" : "test-data-federation", "delimiter" : "/", "prefix" : "" }], "databases" : [{ "name" : "sampleDB", "collections" : [{ "name" : "*", "dataSources" : [{ "storeName" : "egS3Store", "path" : "/json/{collectionName()}" }] }] }] } }
O exemplo seguinte utiliza o comando create
para criar uma coleção denominada egCollection
que mapeia para um armazenamento do Atlas Data Federation denominado egS3Store
. O egS3Store
contém o conjunto de dados de amostra, airbnb
, em uma pasta denominada json
.
use sampleDB db.runCommand({ "create" : "egCollection", "dataSources" : [{ "storeName" : "egS3Store", "path": "/json/*"}]}})
{ "ok" : 1 }
Os seguintes comandos mostram que a collection foi criada com sucesso:
show collections
egCollection
db.runCommand({"storageGetConfig" : 1 })
{ "ok" : 1, "storage" : { "stores" : [{ "name" : "egS3Store", "provider" : "s3", "region" : "us-east-2", "bucket" : "test-data-federation", "delimiter" : "/", "prefix" : "" }], "databases" : [{ "name" : "sample", "collections" : [{ "name" : "egCollection", "dataSources" : [{ "storeName" : "egS3Store", "path" : "/json/*" }] }] }] } }
Os exemplos seguintes mostram como especificar um curinga "*"
com o comando create
.
O exemplo abaixo usa o comando create
para criar collection dinamicamente para os arquivos no caminho /sample/
no reconhecimento de data center de instância do banco de dados federado egAzureStore
. Ela usa a função collectionName()
para nomear as collection após os nomes dos arquivos no caminho especificado.
use sampleDB db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egAzureStore", "path": "/json/{collectionName()}"}]})
{ "ok" : 1 }
Os seguintes comandos mostram que a collection foi criada com sucesso:
show collections
airbnb
O exemplo seguinte utiliza o comando create
para criar uma coleção denominada egCollection
que mapeia para um armazenamento do Atlas Data Federation denominado egAzureStore
. O egAzureStore
contém o conjunto de dados de amostra, airbnb
, em uma pasta denominada sample
.
use sampleDB db.runCommand({ "create" : "egCollection", "dataSources" : [{ "storeName" : "egAzureStore", "path": "/sample/*"}]}})
{ "ok" : 1 }
Os seguintes comandos mostram que a collection foi criada com sucesso:
show collections
egCollection
Estes exemplos mostram como o curinga "*"
pode ser especificado com o comando create
.
O exemplo seguinte utiliza o comando create
para criar collection dinamicamente.
O exemplo abaixo usa o comando create
para criar collection dinamicamente para os arquivos no caminho /json/
no reconhecimento de data center de instância do banco de dados federado egGCStore
. Ela usa a função collectionName()
para nomear as collection após os nomes dos arquivos no caminho especificado.
use sampleDB db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egGCStore", "path": "/json/{collectionName()}"}]})
{ "ok" : 1 }
Os seguintes comandos mostram que a collection foi criada com sucesso:
show collections
airbnb
db.runCommand({"storageGetConfig" : 1 })
{ "ok" : 1, "storage" : { "stores" : [{ "name" : "egGCStore", "provider" : "gcs", "region" : "us-central1", "bucket" : "test-data-federation", "delimiter" : "/", "prefix" : "" }], "databases" : [{ "name" : "sampleDB", "collections" : [{ "name" : "*", "dataSources" : [{ "storeName" : "egGCStore", "path" : "/json/{collectionName()}" }] }] }] } }
O exemplo seguinte utiliza o comando create
para criar uma coleção denominada egCollection
que mapeia para um armazenamento do Atlas Data Federation denominado egGCStore
. O egS3Store
contém o conjunto de dados de amostra, airbnb
, em uma pasta denominada json
.
use sampleDB db.runCommand({ "create" : "egCollection", "dataSources" : [{ "storeName" : "egGCStore", "path": "/json/*"}]}})
{ "ok" : 1 }
Os seguintes comandos mostram que a collection foi criada com sucesso:
show collections
egCollection
db.runCommand({"storageGetConfig" : 1 })
{ "ok" : 1, "storage" : { "stores" : [{ "name" : "egGCStore", "provider" : "gcs", "region" : "us-central1", "bucket" : "test-data-federation", "delimiter" : "/", "prefix" : "" }], "databases" : [{ "name" : "sample", "collections" : [{ "name" : "egCollection", "dataSources" : [{ "storeName" : "egGCStore", "path" : "/json/*" }] }] }] } }
Estes exemplos mostram como o curinga "*"
pode ser especificado com o comando create
.
O exemplo seguinte utiliza o comando create
para criar dinamicamente coleções para os documentos no banco de dados do sample_airbnb
no nome do cluster Atlas myTestCluster
.
use sampleDB db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egAtlasStore", "database": "sample_airbnb"}]})
{ "ok" : 1 }
Os seguintes comandos mostram que a collection foi criada com sucesso:
db.runCommand({storageGetConfig:1})
{ "ok" : 1, "storage" : { "stores" : [{ "name" : "egAtlasStore", "provider" : "atlas", "clusterName" : "myTestCluster", "projectId" : "<project-id>" }], "databases" : [{ "name" : "sampleDB", "collections" : [{ "name" : "*", "dataSources" : [{ "storeName" : "egAtlasStore", "database" : "sample_airbnb" }] }] }] } }
show collections
listingsAndReviews
O exemplo seguinte utiliza o comando create
para criar dinamicamente coleções cujos nomes correspondem a um padrão de regex especificado no banco de banco de dados do sample_airbnb
no Atlas cluster denominado myTestCluster
.
use sampleDB db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egAtlasStore", "database": "sample_airbnb", "collectionRegex" : "^list" }]})
{ "ok" : 1 }
Os seguintes comandos mostram que a collection foi criada com sucesso:
db.runCommand({storageGetConfig:1})
{ "ok" : 1, "storage" : { "stores" : [ { "name" : "egAtlasStore", "provider" : "atlas", "clusterName" : "myTestCluster", "projectId" : "<project-id>" } ], "databases" : [ { "name" : "sbxDb", "collections" : [ { "name" : "*", "dataSources" : [ { "storeName" : "egAtlasStore", "database" : "sample_airbnb", "collectionRegex" : "^list" } ] } ] } ] } }
show collections
listingsAndReviews
O exemplo seguinte utiliza o comando create
para criar dinamicamente coleções para bancos de dados criados dinamicamente.
use * db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egAtlasStore" }]})
{ "ok" : 1 }
O comando a seguir mostra que a collection foi criada com sucesso:
db.runCommand({storageGetConfig:1})
{ "ok" : 1, "storage" : { "stores" : [ { "name" : "egAtlasStore", "provider" : "atlas", "clusterName" : "myTestCluster", "projectId" : "<project-id>" } ], "databases" : [ { "name" : "*", "collections" : [ { "name" : "*", "dataSources" : [ { "storeName" : "egAtlasStore" } ] } ] } ] } }
Coleções curinga "*"
não são suportadas neste armazenamento de dados.
O exemplo seguinte utiliza o comando create
para criar dinamicamente as coleções cujos nomes correspondem a um nome de prefixo especificado para o arquivo online.
use sample db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "adlStore", "datasetPrefix": "v1$atlas$snapshot$testCluster$sample_airbnb$listingsAndReviews", "trimLevel": 4 }]})
{ ok: 1 }
O comando a seguir mostra que a collection foi criada com sucesso:
show collections
sample_airbnb_listingsAndReviews_20220602T124437Z sample_airbnb_listingsAndReviews_20220603T124603Z sample_airbnb_listingsAndReviews_20220604T124420Z sample_airbnb_listingsAndReviews_20220605T124454Z sample_airbnb_listingsAndReviews_20220606T124419Z sample_airbnb_listingsAndReviews_20220607T124515Z
Exemplo de múltiplos conjuntos de dados
O seguinte comando cria uma collection denominada egCollection
no reconhecimento de data center do sampleDB
na configuração de armazenamento. A collection egCollection
mapeia para os seguintes conjuntos de dados de amostra:
airbnb
conjunto de dados na pastajson
no armazenamento S3 chamadoegS3Store
airbnb
conjunto de dados na coleçãosample_airbnb.listingsAndReviews
no Atlas cluster denominadomyTestCluster
airbnb
conjunto de dados na URLhttps://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.json
Aviso
Você não pode criar uma instância do banco de dados federado que mapeie para buckets Amazon Web Services S3 e Azure containers Blob Storage. O Atlas Data Federation não permite consultas federadas em diferentes fornecedores de nuvem.
use sampleDB db.runCommand({ "create" : "egCollection", "dataSources" : [{ "storeName" : "egS3Store", "path" : "/json/airbnb" },{ "storeName" : "egAtlasStore", "database": "sample_airbnb", "collection": "listingsAndReviews" },{"storeName" : "egHttpStore", "urls": ["https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.json"]}]})
{ "ok" : 1 }
Os seguintes comandos mostram que a collection foi criada com sucesso:
show collections
egCollection
db.runCommand({"storageGetConfig":1})
{ "ok" : 1, "storage" : { "stores" : [ { "name" : "egS3Store", "provider" : "s3", "region" : "us-east-2", "bucket" : "test-data-federation", "delimiter" : "/", "prefix" : "" }, { "name" : "egAtlasStore", "provider" : "atlas", "clusterName" : "myTestCluster", "projectId" : "<project-id>" }, { "name" : "egHttpStore", "provider" : "http", "urls" : ["https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.json"] } ], "databases" : [ { "name" : "sampleDB", "collections" : [{ "name" : "egCollection", "dataSources" : [ { "storeName" : "egS3Store", "path" : "json/airbnb" }, { "storeName" : "egAtlasStore", "database" : "sample_airbnb", "collection" : "listingsAndReviews" }, { "storeName" : "egHttpStore", "urls" : ["https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.json"] } ] }] } ] } }
O seguinte comando cria uma visualização denominada listings
na collection airbnb
no banco de banco de dados sample
com os campos name
e property_type
:
use sampleDB db.runCommand({ "create" : "listings", "viewOn" : "airbnb", "pipeline" : [{$project: {"property_type":1, "name": 1}}] })
{ "ok" : 1 }
use sampleDB db.runCommand({ "create" : "listings", "pipeline": [{$sql: {statement: "SELECT property_type, name FROM airbnb"} }] })
{ "ok" : 1 }
Os comandos listCollections
e storageGetConfig
retornam a seguinte saída:
db.runCommand({"listCollections":1})
{ "ok" : 1, "cursor" : { "firstBatch" : [ { "name" : "airbnb", "type" : "collection", "info" : { "readOnly" : true } }, { "name" : "listings", "type" : "view", "info" : { "readOnly" : true } } ], "id" : NumberLong(0), "ns" : "egS3Store.$cmd.listCollections" } }
db.runCommand({"storageGetConfig":1})
{ "ok" : 1, "storage" : { "stores" : [ { "name" : "egS3Store", "provider" : "s3", "region" : "us-east-2", "bucket" : "test-data-federation", "delimiter" : "/" } ], "databases" : [ { "name" : "sample", "collections" : [ { "name" : "airbnb", "dataSources" : [ { "storeName" : "egS3Store", "path" : "json/airbnb/*" } ] }, { "name" : "*", "dataSources" : [ { "storeName" : "egS3Store", "path" : "json/{collectionName()}" } ] } ], "views" : [ { "name" : "listings", "source" : "airbnb", "pipeline" : "[{\"$project\":{\"property_type\":{\"$numberInt\":\"1\"},\"name{\"$numberInt\":\"1\"}}}]" } ] } ] } }
Verificar collection
Você pode verificar se o comando criou a collection ou visualização corretamente executando qualquer um dos seguintes comandos:
show collections db.runCommand({ "storageGetConfig" : 1 }) db.runCommand({ "listCollections" : 1 })
Solução de problemas de erros
Se o comando falhar, ele retornará um dos seguintes erros:
O nome da loja não existe
{ "ok" : 0, "errmsg" : "store name does not exist", "code" : 9, "codeName" : "FailedToParse" }
Solução: certifique-se de que o storeName
especificado corresponda ao nome de uma loja na array stores
. Você pode executar o comando listStores
para recuperar a lista de armazenamentos na configuração de armazenamento da instância do banco de dados federado.
O Nome da collection Já Existe
{ "ok" : 0, "errmsg" : "collection name already exists in the database", "code" : 9, "codeName" : "FailedToParse" }
Solução: certifique-se de que a collection name
seja única. Você pode executar o comando show collections
para recuperar a lista de collection existentes.
Se o comando falhar, ele retornará o seguinte erro:
Ver nome existe
{ "ok" : 0, "errmsg" : "a view '<database>.<view>' already exists, correlationID = <1603aaffdbc91ba93de6364a>", "code" : 48, "codeName" : "NamespaceExists" }
Solução: certifique-se de que o nome da visualização seja exclusivo. Você pode executar o comando listCollections
para recuperar a lista de visualizações existentes em uma coleção.