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

createStore

Nesta página

  • Sintaxe
  • Parâmetros
  • Saída
  • Exemplo
  • Solução de problemas de erros

O comando createStore cria um armazenamento na configuração de armazenamento da instância do banco de dados federado. Clique na guia abaixo para saber mais sobre como criar um reconhecimento de data center de instância do banco de dados federado para o conjunto de dados.

Esta guia contém a sintaxe e os parâmetros para criar um armazenamento de instância do banco de dados federado para dados no bucket Amazon Web Services S3 .

Importante

O Atlas Data Federation não permite consultas federadas em diferentes fornecedores de nuvem. Você só pode criar instâncias de banco de dados de dados federadas que mapeiem armazenamentos em um único provedor de nuvem.

Esta guia contém a sintaxe e os parâmetros para criar um armazenamento de instância do banco de dados federado para dados em contêineres do Azure Blob Storage.

Importante

O Atlas Data Federation não permite consultas federadas em diferentes fornecedores de nuvem. Você só pode criar instâncias de banco de dados de dados federadas que mapeiem armazenamentos em um único provedor de nuvem.

Esta guia contém a sintaxe e os parâmetros para criar um armazenamento de instância do banco de dados federado para dados em contêineres do Google Cloud Storage.

Importante

O Atlas Data Federation não permite consultas federadas em diferentes fornecedores de nuvem. Você só pode criar instâncias de banco de dados de dados federadas que mapeiem armazenamentos em um único provedor de nuvem.

Esta aba contém a sintaxe e os parâmetros para criar um armazenamento de instância do banco de dados federado para dados em um Atlas cluster.

Esta guia contém a sintaxe e os parâmetros para criar um armazenamento de instância do banco de dados federado HTTP para dados em arquivos hospedados em URLs acessíveis publicamente.

Esta guia contém a sintaxe e os parâmetros para criar um armazenamento de instância do banco de dados federado para o Atlas Online Archives.

db.runCommand({ createStore: <store-name>, provider: <storage-provider>, region: <region-name>, bucket: <bucket-name>, additionalStorageClasses: [ <storage-classes> ], delimiter: <delimiter>, public: true|false })
db.runCommand({ createStore: <store-name>, provider: <storage-provider>, region: <region-name>, serviceURL: <service-account-URL>, containerName: <storage-container-name>, delimiter: <delimiter>, public: true|false })
db.runCommand({ createStore: <store-name>, provider: <storage-provider>, region: <region-name>, bucket: <bucket-name>, delimiter: <delimiter>, prefix: <prefix> })
db.runCommand({ createStore: <store-name>, provider: <storage-provider>, clusterName: <cluster-name>, projectId: <project-id>, readPreference: {mode: <read-preference-mode>, tagSets: [[{name: <name>, value: <value>},...],...], maxStalenessSeconds: <number-of-seconds>}, readConcern: {level: <level>} })
db.runCommand({ createStore: <store-name>, provider: <storage-provider>, allowInsecure: true|false, urls: [ <url> ], defaultFormat: <file-extension> })
db.runCommand({ createStore: <store-name>, provider: "dls:aws", region: <online-archive-region> })
Parâmetro
Tipo
Descrição
Obrigatório?
createStore
string
Nome de armazenamento da nova instância do banco de dados federado. O nome de armazenamento da instância do banco de dados federado deve ser exclusivo.
sim
provider
string

Nome do serviço onde os dados são armazenados. O valor pode ser um dos seguintes:

  • s3 para um bucket Amazon Web Services S3 .

  • azure para o contêiner do Azure Blob Storage.

  • atlas para Atlas cluster.

  • http para arquivos hospedados em URLs acessíveis publicamente.

  • dls:<subtype> para arquivos online. O Atlas Data Federation é compatível com os seguintes subtipos:

    • aws - para dados armazenados no Amazon Web Services. O valor deve ser dls:aws.

    • azure - para dados armazenados no Azure. O valor deve ser dls:azure.

sim
region
string
Região em que o bucket está hospedado. Para obter uma lista de nomes de regiões válidos, consulte Amazon Web Services (Amazon Web Services).
sim
bucket
string
Nome do bucket no qual os dados são armazenados. Deve corresponder exatamente ao nome de um bucket S3 que o Data Federation pode acessar usando as credenciais do AWS IAM .
sim
additionalStorageClasses
array de strings

Array do Amazon Web Services S3 classes de armazenamento . O Atlas Data Federation incluirá os arquivos nessas classes de armazenamento nos resultados da query. Os valores válidos são:

Os arquivos na classe de armazenamento Padrão são suportados por padrão.

no
delimiter
string
Caractere usado para separar segmentos de caminho no armazenamento de instâncias do banco de dados federado. Se omitido, o padrão é "/".
no
public
booleano

Sinalizador que indica se o bucket é público ou não. Os valores válidos são:

  • true para não usar a função do Amazon Web Services IAM para acessar o bucket

  • false para exigir a função do Amazon Web Services IAM para acessar o bucket

Se omitido, o padrão é false.

no
Parâmetro
Tipo
Descrição
Obrigatório?
createStore
string
Nome de armazenamento da nova instância do banco de dados federado. O nome de armazenamento da instância do banco de dados federado deve ser exclusivo.
sim
provider
string

Nome do serviço onde os dados são armazenados. O valor pode ser um dos seguintes:

  • s3 para um bucket Amazon Web Services S3 .

  • azure para o contêiner do Azure Blob Storage.

  • atlas para Atlas cluster.

  • http para arquivos hospedados em URLs acessíveis publicamente.

  • dls:<subtype> para arquivos online. O Atlas Data Federation é compatível com os seguintes subtipos:

    • aws - para dados armazenados no Amazon Web Services. O valor deve ser dls:aws.

    • azure - para dados armazenados no Azure. O valor deve ser dls:azure.

sim
region
string
Região em que o container está hospedado. Para obter uma lista de nomes de regiões válidos, consulte Microsoft Azure.
sim
bucket
string

URL da conta do Armazenamento de Blobs do Azure que contém seus contêineres de blobs. Por exemplo:

https://<azure-storage-account-name>.blob.core.windows.net/
sim
containerName
string
Nome do Azure Blob Storage container que contém os arquivos. Para obter mais informações, consulte a documentação do Azure para Nomeação e Referência de Contêineres.
sim
delimiter
string
Caractere usado para separar segmentos de caminho no armazenamento de instância do banco de dados federado . Se omitido, o padrão é "/".
no
public
booleano

Sinalizador que indica se o contêiner do Armazenamento de Blobs do Azure é público ou não. Os valores válidos são:

  • true para não usar o Azure Service Principal para acessar o bucket

  • false para exigir que o Azure Service Principal acesse o bucket

Se omitido, o padrão é false.

no
Parâmetro
Tipo
Descrição
Obrigatório?
createStore
string
Nome de armazenamento da nova instância do banco de dados federado. O nome de armazenamento da instância do banco de dados federado deve ser exclusivo.
sim
provider
string

Nome do serviço onde os dados são armazenados. O valor pode ser um dos seguintes:

  • s3 para um bucket Amazon Web Services S3 .

  • azure para o contêiner do Azure Blob Storage.

  • atlas para Atlas cluster.

  • http para arquivos hospedados em URLs acessíveis publicamente.

  • dls:<subtype> para arquivos online. O Atlas Data Federation é compatível com os seguintes subtipos:

    • aws - para dados armazenados no Amazon Web Services. O valor deve ser dls:aws.

    • azure - para dados armazenados no Azure. O valor deve ser dls:azure.

sim
region
string
Região em que o bucket está hospedado. Para obter uma lista de nomes de regiões válidos, consulte Google Cloud Platform (GCP).
sim
bucket
string
Nome do bucket no qual os dados são armazenados. Deve corresponder exatamente ao nome de um bucket do Google Cloud Storage que o Data Federation pode acessar usando as credenciais configuradas do Google Cloud IAM .
sim
delimiter
string
Caractere usado para separar segmentos de caminho no armazenamento de instâncias do banco de dados federado. Se omitido, o padrão é "/".
no
prefix
booleano

O prefixo Atlas Data Federation se aplica ao procurar arquivos no bucket do Google Cloud Storage. Por exemplo, considere um bucket metrics do Google Cloud Storage com a seguinte estrutura:

metrics
|--hardware
|--software
|--computed

O armazenamento de instância do banco de dados federado acrescenta o valor de prefix a databases.[n].collections.[n].dataSources.[n].path para criar o caminho completo para a ingestão dos arquivos. Definir prefix como /software restringe qualquer objeto databases que esteja usando a instância do banco de dados federado apenas a subcaminhos de /software.

O padrão é a raiz do bucket do Google Cloud Storage, recuperando todos os arquivos.

no
Parâmetro
Tipo
Descrição
Obrigatório?
createStore
string
Nome de armazenamento da nova instância do banco de dados federado. O nome de armazenamento da instância do banco de dados federado deve ser exclusivo.
sim
provider
string

Nome do serviço onde os dados são armazenados. O valor pode ser um dos seguintes:

  • s3 para um bucket Amazon Web Services S3 .

  • azure para o contêiner do Azure Blob Storage.

  • atlas para Atlas cluster.

  • http para arquivos hospedados em URLs acessíveis publicamente.

  • dls:<subtype> para arquivos online. O Atlas Data Federation é compatível com os seguintes subtipos:

    • aws - para dados armazenados no Amazon Web Services. O valor deve ser dls:aws.

    • azure - para dados armazenados no Azure. O valor deve ser dls:azure.

sim
clusterName
string
Nome do Atlas cluster no qual o armazenamento é baseado.
sim
projectId
string
Identificador único do projeto que contém o Atlas cluster. Se não for especificado, o Atlas Data Federation assumirá que o cluster está localizado no mesmo projeto que a instância do banco de dados federado.
no
readPreference
documento
preferência de leitura de cluster , que descreve como rotear solicitações de leitura para o cluster.
no
readPreference
.mode
string

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

no
readPreference
.tagSets
array de strings

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, consulte Conjuntos de tags de read preference.

O Atlas Data Federation não oferece suporte a esse parâmetro para clusters fragmentados.

no
readPreference
.maxStalenessSeconds
int
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.
no
Parâmetro
Tipo
Descrição
Obrigatório?
createStore
string
Nome de armazenamento da nova instância do banco de dados federado. O nome de armazenamento da instância do banco de dados federado deve ser exclusivo.
sim
provider
string

Nome do serviço onde os dados são armazenados. O valor pode ser um dos seguintes:

  • s3 para um bucket Amazon Web Services S3 .

  • azure para o contêiner do Azure Blob Storage.

  • atlas para Atlas cluster.

  • http para arquivos hospedados em URLs acessíveis publicamente.

  • dls:<subtype> para arquivos online. O Atlas Data Federation é compatível com os seguintes subtipos:

    • aws - para dados armazenados no Amazon Web Services. O valor deve ser dls:aws.

    • azure - para dados armazenados no Azure. O valor deve ser dls:azure.

sim
allowInsecure
booleano

Valida o esquema na s URLespecificada. O valor pode ser um dos seguintes:

  • true para permitir esquema HTTP inseguro

  • false para permitir apenas esquema HTTPS seguro (padrão)

Se verdadeiro, o Atlas Data Federation:

  • Não verifica a cadeia de certificado do servidor e o nome do host.

  • Aceita qualquer certificado com qualquer nome de host apresentado pelo servidor.

AVISO: se você definir isso como true, seus dados poderão ficar vulneráveis a um ataques do tipo man-in-the-middle, que pode comprometer a confidencialidade e a integridade dos seus dados. Defina isso como true apenas para testar e começar a usar o Atlas Data Federation.

Se omitido, o padrão é false.

no
urls
array de strings ou um array vazio
Um ou mais URLs acessíveis publicamente. Não é possível especificar URLs que exijam autenticação.
no
defaultFormat
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:

.json, .json.gz, .bson, .bson.gz, .avro, .avro.gz, .orc, .tsv, .tsv.gz, .csv, .csv.gz, .parquet

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

no
Parâmetro
Tipo
Descrição
Obrigatório?
createStore
string
Nome de armazenamento da nova instância do banco de dados federado. O nome de armazenamento da instância do banco de dados federado deve ser exclusivo.
sim
provider
string

Nome do serviço onde os dados são armazenados. O valor pode ser um dos seguintes:

  • s3 para um bucket Amazon Web Services S3 .

  • azure para o contêiner do Azure Blob Storage.

  • atlas para Atlas cluster.

  • http para arquivos hospedados em URLs acessíveis publicamente.

  • dls:<subtype> para arquivos online. O Atlas Data Federation é compatível com os seguintes subtipos:

    • aws - para dados armazenados no Amazon Web Services. O valor deve ser dls:aws.

    • azure - para dados armazenados no Azure. O valor deve ser dls:azure.

sim
region
string
Região do seu arquivo online. Se você tiver vários arquivos em regiões diferentes, deverá adicionar um armazenamento para cada região para mapear os dados dessa região para bancos de dados virtuais e collections em instâncias de bancos de banco de dados federados.
sim

O comando imprime a seguinte saída se for bem-sucedido. Se o comando falhar, consulte Solucionar erros para ver soluções recomendadas.

{
"ok": 1,
"store": {
"name": "<store-name>",
"region": "<region-name>",
"bucket": "<bucket-name>",
"additionalStorageClasses": ["<storage-classes>"]
"delimiter": "<delimiter>",
"provider": "<storage-provider>"
}
}
{
"ok": 1,
"store": {
"name": "<store-name>",
"region": "<region-name>",
"serviceURL": "<service-account-URL>",
"containerName": "<storage-container-name>"
"delimiter": "<delimiter>",
"provider": "<storage-provider>"
}
}
{
"ok": 1,
"store": {
"name": "<store-name>",
"region": "<region-name>",
"bucket": "<storage-container-name>"
"delimiter": "<delimiter>",
"prefix": "<prefix>",
"provider": "<storage-provider>"
}
}
{
"ok" : 1,
"store" : {
"name" : "<store-name>",
"provider" : "<storage-provider>",
"clusterName" : "<cluster-name>",
"projectId" : "<project-id>",
"readPreference" : {
"mode" : "<read-preference-mode>",
"tagSets" : [[{"name": "<name>", "value": "<value>"},...],...],
"maxStalenessSeconds" : <number-of-seconds>
}
}
}
{
"ok" : 1,
"store" : {
"name" : "<store-name>",
"provider" : "<storage-provider>",
"allowInsecure" : true|false,
"urls" : [
"<url>"
],
"defaultFormat: "<file-extension>"
}
}
{
ok: 1,
store: {
name: '<store-name>',
provider: 'dls:aws',
region: '<online-archive-region>'
}
}

O exemplo seguinte utiliza o comando createStore para criar um novo armazenamento de instância do banco de dados federado denominado myStore.

use sample
db.runCommand({ createStore: "myStore", provider: "s3", region: "us-east-1", bucket: "my-bucket", "additionalStorageClasses" : ["STANDARD_IA","INTELLIGENT_TIERING"] })
{
"ok": 1,
"store": {
"name": "myStore",
"region": "us-east-1",
"bucket": "my-bucket",
"additionalStorageClasses" : [
"STANDARD_IA",
"INTELLIGENT_TIERING"
],
"delimiter": "/",
"provider": "s3"
}
}
use sample
db.runCommand({ createStore: "myStore", provider: "azure", region: "eastus2", serviceURL: "https://mystorage.blob.core.windows.net/", "containerName" : "my-data-container" })
{
"ok": 1,
"store": {
"name": "myStore",
"region": "eastus2",
"serviceURL": "https://mystorage.blob.core.windows.net/",
"containerName" : "my-data-container",
"delimiter": "/",
"provider": "azure"
}
}
use sample
db.runCommand({ createStore: "myStore", provider: "azure", region: "us-central1", "bucket" : "my-data-container" })
{
"ok": 1,
"store": {
"name": "myStore",
"region": "us-central1",
"bucket" : "my-data-container",
"delimiter": "/",
"provider": "gcp"
}
}
use sample
db.runCommand({ createStore: "myStore", provider: "atlas", clusterName: "myTestCluster", projectId: "<project-id>", "readPreference": {"mode": "secondary", "tagSets": [[{"name": "provider", "value": "AWS" }, {"name": "region", "value": "US_EAST_1"}]], "maxStalenessSeconds": 120} })
{
"ok" : 1,
"store" : {
"name" : "myStore",
"provider" : "atlas",
"clusterName" : "myTestCluster",
"projectId" : "<project-id>",
"readPreference" : {
"mode" : "secondary",
"tagSets": [[{"name": "provider", "value": "AWS" }, {"name": "region", "value": "US_EAST_1"}]],
"maxStalenessSeconds" : 120
}
}
}
use sample
db.runCommand({ createStore: "myStore", provider: "http", urls: ["https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews","http://example.mongodb.com/sampleData"], allowInsecure: true, defaultFormat: ".json" })
{
"ok" : 1,
"store" : {
"name" : "http-store",
"provider" : "http",
"urls" : [
"https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews",
"http://example.mongodb.com/sampleData"
],
"defaultFormat" : ".json"
"allowInsecure" : true
}
}
use sample
db.runCommand({ createStore: "myStore", provider: "dls:aws", region: "us-east-1" })
{
ok: 1,
store: {
name: 'myStore',
provider: 'dls:aws',
region: 'us-east-1'
}
}

Se o comando falhar, será gerado um dos seguintes erros.

Motivo: já existe um instância do banco de dados federado com o nome especificado no createStore .

{
"ok": 0,
"errmsg": "store <store-name> already exists",
"code": 2,
"codeName": "BadValue"
}

Solução: especifique um nome exclusivo para o armazenamento de instância do banco de dados federado.

Motivo: O provider especificado não é reconhecido.

{
"ok": 0,
"errmsg": "unrecognized store provider <storage-provider>",
"code": 2,
"codeName": "BadValue"
}

Solução: certifique-se de especificar um fornecedor de armazenamento válido.

Motivo: uma ou mais URLfornecidas contêm esquema HTTP inseguro.

{
"ok" : 0,
"errmsg" : "store 'httpStore': the insecure HTTP scheme is not supported by default - please add a 'allowInsecure: true' flag to the store or datasource to query from such URLs, correlationID = 16332c6eddf7b32776fde638",
"code" : 72,
"codeName" : "InvalidOptions"
}

Solução: Especifique a URLs com o esquema HTTPS seguro. Se as URLs especificadas tiverem o esquema HTTP inseguro, configure o sinalizador allowInsecure para true. Observe que definir o sinalizador allowInsecure como true deixa seus dados vulneráveis a ataques do tipo man-in-the-middle.

Voltar

Gerenciar a configuração