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 instancia federada de base de datos para datos en AWS S3 bucket.
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 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 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 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 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 puede acceder utilizando las 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:
Los archivos de la clase de almacenamiento Estándar se admiten de forma predeterminada. | 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 | 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 | ¿Requerido? |
|---|---|---|---|
| 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 tus contenedores de blobs. Por ejemplo: | Sí | |
| string | Nombre del contenedor de Azure Blob Storage que contiene los archivos. Para obtener 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 almacén de instancias de base de datos federada. Si se omite, el valor predeterminado 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 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 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 Almacenamiento al que Data Federation pueda acceder utilizando las credenciales de Google Cloud IAM configuradas. | 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 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 | ¿Requerido? |
|---|---|---|---|
| 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 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 | 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 enrutar las solicitudes de lectura. El valor puede ser uno de los siguientes:
| no |
readPreference.tagSets | Arreglo 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 "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 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 configuras esto en Si se omite, es por defecto | no |
| arreglo de strings o un arreglo vacío | Una o más URLs de acceso público. No se pueden especificar las URLque requieren 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 los URLen el almacenar. | no |
Parameter | Tipo | Descripción | ¿Requerido? |
|---|---|---|---|
| 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 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: 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: uno o más URLproporcionados 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 URLs con el esquema seguro HTTPS. Si las URLespecificadas tienen el esquema HTTP inseguro, debe establecer la bandera allowInsecure en true. Ten en cuenta que configurar el indicador allowInsecure en true deja tus datos vulnerables a ataques de intermediarios.