El comando createStore crea un almacén en la configuración de almacenamiento de la instancia de base de datos federada. Haga clic en la pestaña a continuación para obtener más información sobre cómo crear un almacén de instancia de base de datos federada para la fuente de datos.
Esta pestaña contiene la sintaxis y los parámetros para crear un almacén de instancias de base de datos federada para datos en AWS CuboS.3
Importante
Atlas Data Federation no admite consultas federadas entre diferentes proveedores de nube. Solo se pueden crear instancias de bases de datos federadas que se asignen a almacenes de un único proveedor de nube.
Esta pestaña contiene la sintaxis y los parámetros para crear un almacén de instancias de base de datos federada para datos en contenedores de Azure Blob Storage.
Importante
Atlas Data Federation no admite consultas federadas entre diferentes proveedores de nube. Solo se pueden crear instancias de bases de datos federadas que se asignen a almacenes de un único proveedor de nube.
Esta pestaña contiene la sintaxis y los parámetros para crear un almacén de instancias de instancia federada de base de datos para datos en contenedores de Google Cloud almacenamiento.
Importante
Atlas Data Federation no admite consultas federadas entre diferentes proveedores de nube. Solo se pueden crear instancias de bases de datos federadas que se asignen a almacenes de un único proveedor de nube.
Esta pestaña contiene la sintaxis y los parámetros para crear un almacén de instancias de base de datos federada para datos en un clúster Atlas.
Esta pestaña contiene la sintaxis y los parámetros para crear un almacén de instancias de base de datos federada HTTP para datos en archivos alojados en URLde acceso público.
Esta pestaña contiene la sintaxis y los parámetros para crear un almacén de instancias de base de datos federada para Atlas Online Archives.
Sintaxis
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
Parameter | Tipo | Descripción | ¿Obligatorio? |
|---|---|---|---|
| string | Nombre del nuevo almacén de instancias de base de datos federada. El nombre del almacén de instancias de base de datos federada debe ser único. | sí |
| string | Nombre del servicio donde se almacenan los datos. El valor puede ser uno de los siguientes:
| sí |
| string | Región donde se aloja | sí |
| string | Nombre del bucket donde se almacenan los datos. Debe coincidir exactamente con el nombre de un bucket S al que Data Federation3 puede acceder mediante credenciales de AWS IAM. | sí |
| matriz de cadenas | Matriz de clases de almacenamiento de AWS S3Atlas Data Federation incluirá los archivos de estas clases de almacenamiento en los resultados de la consulta. Los valores válidos son:
Los archivos de la clase de almacenamiento Estándar se admiten de forma predeterminada. | no |
| string | Carácter utilizado para separar segmentos de ruta en el almacén de instancias de base de datos federada. Si se omite, el valor predeterminado es | no |
| booleano | Marca que indica si el bucket es público. Los valores válidos son:
Si se omite, es por defecto | no |
Parameter | Tipo | Descripción | ¿Obligatorio? |
|---|---|---|---|
| string | Nombre del nuevo almacén de instancias de base de datos federada. El nombre del almacén de instancias de base de datos federada debe ser único. | sí |
| string | Nombre del servicio donde se almacenan los datos. El valor puede ser uno de los siguientes:
| sí |
| string | Región donde se aloja el contenedor. Para obtener una lista de nombres de región válidos, consulte Microsoft Azure. | sí | |
| string | URL de la cuenta de Azure Blob Storage que contiene los contenedores de blobs. Por ejemplo: | sí | |
| string | Nombre del contenedor de Azure Blob Storage que contiene los archivos. Para obtener más información,consulte la documentación de Azure sobre cómo nombrar y hacer referencia a contenedores. | sí | |
| string | Carácter utilizado para separar segmentos de ruta en el almacén de instancias de base de datos federada. Si se omite, el valor predeterminado es | no | |
| booleano | Marca que indica si el contenedor de Azure Blob Storage es público. Los valores válidos son:
Si se omite, es por defecto | no |
Parameter | Tipo | Descripción | ¿Obligatorio? |
|---|---|---|---|
| string | Nombre del nuevo almacén de instancias de base de datos federada. El nombre del almacén de instancias de base de datos federada debe ser único. | sí |
| string | Nombre del servicio donde se almacenan los datos. El valor puede ser uno de los siguientes:
| sí |
| string | Región donde se | sí | ||||
| string | Nombre del bucket donde se almacenan los datos. Debe coincidir exactamente con el nombre de un bucket de Google Cloud Storage al que la Federación de Datos pueda acceder mediante las credenciales de Google Cloud IAM configuradas. | sí | ||||
| string | Carácter utilizado para separar segmentos de ruta en el almacén de instancias de base de datos federada. Si se omite, el valor predeterminado es | no | ||||
| booleano | El prefijo Atlas Data Federation se aplica al buscar archivos en el bucket de Google Cloud Storage. Por ejemplo, considere un bucket de Google Cloud Storage El almacén de instancias de base de datos federada antepone el valor de El valor predeterminado es la raíz del depósito de Google Cloud Storage y recupera todos los archivos. | no |
Parameter | Tipo | Descripción | ¿Obligatorio? |
|---|---|---|---|
| string | Nombre del nuevo almacén de instancias de base de datos federada. El nombre del almacén de instancias de base de datos federada debe ser único. | sí |
| string | Nombre del servicio donde se almacenan los datos. El valor puede ser uno de los siguientes:
| sí |
| string | Nombre del clúster Atlas en el que se basa la tienda. | sí |
| string | Identificador único del proyecto que contiene el clúster Atlas. Atlas Data Federation solo admite el | no |
| Documento | Preferencia de lectura del clúster, que describe cómo enrutar las solicitudes de lectura al clúster. | no |
readPreference.mode | string | Modo de preferencia de lectura que especifica a qué miembro del conjunto de réplicas se enrutan las solicitudes de lectura. El valor puede ser uno de los siguientes:
| no |
readPreference.tagSets | matriz de cadenas | Matrices de conjuntos de etiquetas o documentos de especificación de etiquetas que contienen pares de nombre y valor para el miembro del conjunto de réplicas. Si se especifica, Atlas Data Federation dirige las solicitudes de lectura al miembro o miembros del conjunto de réplicas asociados con las etiquetas especificadas. Para obtener más información, consulte Conjuntos de etiquetas de preferencia de lectura. Atlas Data Federation no admite este parámetro para clústeres fragmentados. | no |
readPreference.maxStalenessSeconds | Int | Retraso máximo de replicación, o "obsolescencia", para lecturas de secundarias. Para obtener más información | no |
Parameter | Tipo | Descripción | ¿Obligatorio? |
|---|---|---|---|
| string | Nombre del nuevo almacén de instancias de base de datos federada. El nombre del almacén de instancias de base de datos federada debe ser único. | sí |
| string | Nombre del servicio donde se almacenan los datos. El valor puede ser uno de los siguientes:
| sí |
| booleano | Valida el esquema en las URLespecificadas. El valor puede ser uno de los siguientes:
Si es verdadero, Atlas Data Federation:
ADVERTENCIA: Si configura esta opción Si se omite, es por defecto | no |
| matriz de cadenas o una matriz vacía | Una o más URLde acceso público. No se pueden especificar URLque requieran autenticación. | no |
| string | Formato predeterminado de la Federación de Datos si encuentra un archivo sin extensión al consultar el almacén de instancias de la base de datos federada. Los siguientes valores son válidos:
Si se omite, Data Federation intenta detectar el tipo de archivo procesando algunos bytes del archivo. Si se incluye, el formato especificado solo se aplica a las URLde la tienda. | no |
Parameter | Tipo | Descripción | ¿Obligatorio? |
|---|---|---|---|
| string | Nombre del nuevo almacén de instancias de base de datos federada. El nombre del almacén de instancias de base de datos federada debe ser único. | sí |
| string | Nombre del servicio donde se almacenan los datos. El valor puede ser uno de los siguientes:
| sí |
| string | Región de su archivo en línea. Si tiene varios archivos en diferentes regiones, debe agregar un almacén para cada región para asignar los datos de esa región a bases de datos virtuales y colecciones en instancias de bases de datos federadas. | sí |
Salida
El comando imprime la siguiente salida si se ejecuta correctamente. Si falla, consulte "Solucionar errores" para obtener soluciones 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>' } }
Ejemplo
El siguiente ejemplo utiliza el comando createStore para crear un nuevo almacén de instancias de base de datos federada llamado 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' } }
Solución de problemas de error
Si el comando falla, devuelve uno de los siguientes errores.
Motivo: createStore ya existe una instancia de base de datos federada con el nombre especificado en.
{ "ok": 0, "errmsg": "store <store-name> already exists", "code": 2, "codeName": "BadValue" }
Solución: especifique un nombre único para el almacén de instancias de base de datos federada.
Motivo: provider No se reconoce el especificado.
{ "ok": 0, "errmsg": "unrecognized store provider <storage-provider>", "code": 2, "codeName": "BadValue" }
Solución: asegúrese de especificar un proveedor de almacenamiento válido.
Motivo: Una o más URLdadas contienen un 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" }
Solución: Especifique las URLcon el esquema HTTPS seguro. Si las URLespecificadas tienen el esquema HTTP inseguro, configure el allowInsecure indicador true en. Tenga en cuenta que configurar el allowInsecure indicador en true expone sus datos a ataques de intermediario.