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 AWS 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 S3 que o Data Federation pode acessar usando as credenciais do AWS IAM. | sim |
| array de strings | array de AWS S3 classe 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 | Region in which the container is hosted. For a list of valid region names, see 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. O Atlas Data Federation só é compatível com o | no |
| documento | Cluster read preference, which describes how to route read requests to the cluster. | no |
| string | Read preference mode that specifies which replica set member to route the read requests to. Value can be one of the following: | no |
| 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 |
| int | Maximum replication lag, or "staleness", for reads from secondaries. To learn more about | 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
The command prints the following output if it succeeds. If the command fails, see Troubleshoot Errors for recommended solutions.
{ "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, defina o sinalizador allowInsecure como true. Observe que definir o sinalizador allowInsecure como true deixa seus dados vulneráveis a ataques do tipo man-in-the-middle.