createStore
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 nos Google Cloud Platform contêineres de armazenamento do Google Cloud Platform.
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.
Sintaxe
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âmetros
Parâmetro | Tipo | Descrição | Obrigatório? |
---|---|---|---|
| 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 |
| string | Nome do serviço onde os dados são armazenados. O valor pode ser um dos seguintes:
| sim |
| string | Região em que o | sim |
| string | Nome do bucket no qual os dados são armazenados. Deve corresponder exatamente ao nome de um bucket S que o Data Federation pode acessar usando as3 Amazon Web Services credenciais do Amazon Web Services IAM. | sim |
| 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 |
| string | Caractere usado para separar segmentos de caminho no armazenamento de instâncias do banco de dados federado. Se omitido, o padrão é | no |
| booleano | Sinalizador que indica se o bucket é público ou não. Os valores válidos são:
Se omitido, o padrão é | no |
Parâmetro | Tipo | Descrição | Obrigatório? |
---|---|---|---|
| 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 |
| string | Nome do serviço onde os dados são armazenados. O valor pode ser um dos seguintes:
| sim |
| string | Região em que o container está hospedado. Para obter uma lista de nomes de regiões válidos, consulte Microsoft Azure. | sim | |
| string | URL da conta do Armazenamento de Blobs do Azure que contém seus contêineres de blobs. Por exemplo:
| sim | |
| 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 | |
| string | Caractere usado para separar segmentos de caminho no armazenamento de instância do banco de dados federado . Se omitido, o padrão é | no | |
| 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:
Se omitido, o padrão é | no |
Parâmetro | Tipo | Descrição | Obrigatório? |
---|---|---|---|
| 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 |
| string | Nome do serviço onde os dados são armazenados. O valor pode ser um dos seguintes:
| sim |
| string | Região em que o | sim | ||||
| string | Nome do bucket no qual os dados são armazenados. Deve corresponder exatamente ao nome de um Google Cloud Platform bucket do Google Cloud Platform Google Cloud Platform Storage que o Data Federation pode acessar usando as credenciais configuradas do Google Cloud Platform IAM. | sim | ||||
| string | Caractere usado para separar segmentos de caminho no armazenamento de instâncias do banco de dados federado. Se omitido, o padrão é | no | ||||
| booleano | O prefixo Atlas Data Federation se aplica ao procurar arquivos no Google Cloud Platform bucket Storage do Google Cloud Platform. Por exemplo, considere um Google Cloud Platform bucket de armazenamento da Google Cloud Platform
O armazenamento de instância do banco de dados federado acrescenta o valor de O padrão é a raiz do bucket de armazenamento do Google Google Cloud Platform Cloud Platform, recuperando todos os arquivos. | no |
Parâmetro | Tipo | Descrição | Obrigatório? |
---|---|---|---|
| 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 |
| string | Nome do serviço onde os dados são armazenados. O valor pode ser um dos seguintes:
| sim |
| string | Nome do Atlas cluster no qual o armazenamento é baseado. | sim |
| 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 |
| 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:
| 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 | no |
Parâmetro | Tipo | Descrição | Obrigatório? |
---|---|---|---|
| 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 |
| string | Nome do serviço onde os dados são armazenados. O valor pode ser um dos seguintes:
| sim |
| 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 é | no |
| 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 |
| 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 armazenamento. | no |
Parâmetro | Tipo | Descrição | Obrigatório? |
---|---|---|---|
| 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 |
| string | Nome do serviço onde os dados são armazenados. O valor pode ser um dos seguintes:
| sim |
| 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 |
Saída
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>' } }
Exemplo
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' } }
Solução de problemas de erros
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.