El comando createStore crea un almacén en la configuración de almacenamiento de la instancia federada de base de datos. Haz clic en la pestaña de abajo para saber más sobre la creación de un almacén de instancia federada de base de datos para la fuente de datos.
Esta pestaña contiene la sintaxis y los parámetros para crear una instancia federada de base de datos para los datos en el bucket AWS S3.
Importante
Atlas Data Federation no es compatible con las consultas federadas entre diferentes proveedores de la nube. Solo puedes crear instancias de bases de datos federadas que asignen a tiendas en un único proveedor de nube.
Esta pestaña contiene la sintaxis y los parámetros para crear un almacenamiento de instancias de base de datos federada para datos en contenedores de Azure Blob Storage.
Importante
Atlas Data Federation no es compatible con las consultas federadas entre diferentes proveedores de la nube. Solo puedes crear instancias de bases de datos federadas que asignen a tiendas en 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 es compatible con las consultas federadas entre diferentes proveedores de la nube. Solo puedes crear instancias de bases de datos federadas que asignen a tiendas en un único proveedor de nube.
Esta pestaña contiene la sintaxis y los parámetros para crear un almacén de instancia federada de base de datos para datos en un clúster de Atlas.
Esta pestaña contiene la sintaxis y los parámetros para crear una instancia federada de base de datos HTTP para almacenar datos en archivos alojados en URLs accesibles públicamente.
Esta pestaña contiene la sintaxis y los parámetros para crear un almacén de instancia federada de base de datos para Atlas en línea 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 | ¿Requerido? |
|---|---|---|---|
| string | Nombre del nuevo almacén de instancia federada de base de datos. El nombre del almacén de la instancia federada de base de datos 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 en la que se aloja el | Sí |
| string | Nombre del bucket en el que se almacenan los datos. Debe coincidir exactamente con el nombre de un bucket S3 al que Data Federation pueda acceder utilizando credenciales AWS IAM. | Sí |
| Arreglo de cadenas | Arreglo de AWS S3 clases de almacenamiento. Atlas Data Federation incluirá los archivos en estas clases de almacenamiento en los resultados de la query. Los valores válidos son:
La compatibilidad con los archivos en la clase de almacenamiento Estándar está habilitada por defecto. | no |
| string | Carácter utilizado para separar los segmentos de ruta en el almacén de la instancia federada de base de datos. Si se omite, el valor por defecto es | no |
| booleano | Indicador que señala si el depositario es público o no. Los valores válidos son:
Si se omite, es por defecto | no |
Parameter | Tipo | Descripción | ¿Requerido? |
|---|---|---|---|
| string | Nombre del nuevo almacén de instancia federada de base de datos. El nombre del almacén de la instancia federada de base de datos 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 en la que se aloja el contenedor. Para una lista de nombres de regiones válidos, consulta Microsoft Azure. | Sí | |
| string | URL de la cuenta de Azure Blob Storage que contiene tus contenedores de blobs. Por ejemplo: | Sí | |
| string | Nombre del contenedor de Azure Blob Storage que contiene los archivos. Para más información, consulta la documentación de Azure sobre nombrar y referenciar contenedores. | Sí | |
| string | Carácter utilizado para separar segmentos de ruta en el instancia federada de base de datos almacén. Si se omite, el valor por defecto es | no | |
| booleano | Indicador que indica si el contenedor de Microsoft Azure Blob almacenamiento es público o no. Los valores válidos son:
Si se omite, es por defecto | no |
Parameter | Tipo | Descripción | ¿Requerido? |
|---|---|---|---|
| string | Nombre del nuevo almacén de instancia federada de base de datos. El nombre del almacén de la instancia federada de base de datos 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 en la que se aloja la | Sí | ||||
| string | Nombre del bucket en el que se almacenan los datos. Debe coincidir exactamente con el nombre de un bucket de Google Cloud Storage al que Data Federation pueda acceder utilizando las credenciales de Google Cloud configuradas en IAM. | Sí | ||||
| string | Carácter utilizado para separar los segmentos de ruta en el almacén de la instancia federada de base de datos. Si se omite, el valor por defecto es | no | ||||
| booleano | Prefix Atlas Data Federation se aplica cuando se buscan archivos en el bucket de Google Cloud Storage. Por ejemplo, considere un bucket de Google Cloud Storage El almacén de instancias federadas de base de datos antepone el valor de Por defecto, se establece en la raíz del bucket de Google Cloud Storage y recupera todos los archivos. | no |
Parameter | Tipo | Descripción | ¿Requerido? |
|---|---|---|---|
| string | Nombre del nuevo almacén de instancia federada de base de datos. El nombre del almacén de la instancia federada de base de datos 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 de Atlas sobre el cual se basa la tienda. | Sí |
| string | Identificador único del proyecto que contiene el clúster de Atlas. Atlas Data Federation solo admite el | no |
| Documento | El preferencia de lectura, que describe cómo enrutar las solicitudes de lectura al clúster. | no |
| string | modo de preferencia de lectura que especifica a qué miembro del conjunto de réplicas enrutar las solicitudes de lectura. El valor puede ser uno de los siguientes:
| no |
| Arreglo de cadenas | Arreglos de conjuntos de etiquetas o documentos de especificaciones de etiquetas que contienen parejas de nombres y valores para el miembro del set de réplicas. Si se especifica, Atlas Data Federation enruta las solicitudes de lectura hacia miembros del set 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 |
| Int | Retraso máximo de replicación, o "antigüedad", para lecturas de secundarios. Para obtener más información sobre | no |
Parameter | Tipo | Descripción | ¿Requerido? |
|---|---|---|---|
| string | Nombre del nuevo almacén de instancia federada de base de datos. El nombre del almacén de la instancia federada de base de datos 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 configuras esto en Si se omite, es por defecto | no |
| arreglo de strings o un arreglo vacío | Uno o más URLpúblicos accesibles. No puedes especificar URLque requieran autenticación. | no |
| string | Formato al que Data Federation por defecto si encuentra un archivo sin extensión mientras consulta la instancia federada de base de datos almacenar. 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 URLen el almacenar. | no |
Parameter | Tipo | Descripción | ¿Requerido? |
|---|---|---|---|
| string | Nombre del nuevo almacén de instancia federada de base de datos. El nombre del almacén de la instancia federada de base de datos 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 tu fichero en linea. Si tienes varios ficheros en diferentes regiones, debes agregar un almacén para cada región a fin de 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 el siguiente resultado si tiene éxito. Si el comando falla, consulta Solucionar errores para conocer las 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 instancia federada de base de datos 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: ya existe un almacenar de instancia federada de base de datos con el nombre especificado en createStore .
{ "ok": 0, "errmsg": "store <store-name> already exists", "code": 2, "codeName": "BadValue" }
Solución: Especifica un nombre único para el almacén de instancias federadas de base de datos.
Motivo: El/la provider especificado/a no se reconoce.
{ "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 URLproporcionadas contienen el esquema de 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: especifica URLcon la esquema de seguridad HTTPS. Si los URLespecificados tienen el esquema inseguro HTTP, configuren la bandera allowInsecure a true. Ten en cuenta que establecer el indicador allowInsecure en true deja tus datos vulnerables a ataques de intermediarios.