Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

Modo de esquema independiente (muestreo en caché)

Nuevo en la versión 2.3:

Por defecto, mongosqld toma muestras de cada colección en la instancia conectada de MongoDB y genera una representación relacional del esquema que luego almacena en caché en la memoria.

Nota

Si tienes authentication activado, asegúrate de que tu usuario de MongoDB tenga los permisos correctos. Vea Permisos de usuario a continuación.

Por defecto, mongosqld no vuelve a muestrear datos automáticamente después de generar el esquema. Especifica la opción --schemaRefreshIntervalSecs para dirigir mongosqld a volver a muestrear automáticamente los datos y regenerar el esquema en un cronograma fijo.

Si el esquema que mongosqld crea no satisface sus necesidades de carga de trabajo de BI, puede generar manualmente un archivo de esquema y editarlo según sea necesario.

Para obtener más información sobre los modos de muestreo, consulta el cuadro de referencia de modos de muestreo.

Si tu instancia de MongoDB utiliza autenticación y deseas utilizar muestreo en caché, tu instancia de BI Connector también debe utilizar autenticación. El usuario administrador que se conecta a MongoDB mediante el programa mongosqld debe tener permiso para leer de todos los espacios de nombres de los que deseas muestrear datos.

Si desea muestrear todos los namespace, el usuario administrador requiere los siguientes privilegios:

  • listDatabases en el clúster

  • listCollections en cada base de datos

  • find en cada base de datos

Como alternativa, crea un usuario con el rol integrado readAnyDatabase:

use admin
db.createUser(
{
user: "<username>",
pwd: "<password>",
roles: [
{ "role": "readAnyDatabase", "db": "admin" }
]
}
)

Nota

Asegúrese de conocer todos los privilegios incluidos en el rol readAnyDatabase antes de concederlo a un usuario.

Para samplear todos los namespaces, empieza mongosqld sin la opción --sampleNamespaces.

mongosqld --auth --mongo-username <username> --mongo-password <password>

Si deseás realizar una muestra de namespaces específicos, el usuario administrador requiere los siguientes privilegios:

  • listCollections para cada base de datos en la que se muestren todas las colecciones

  • find en cada colección o en cada base de datos donde todas las colecciones son muestreadas

Como alternativa, cree un usuario con el rol incorporado readAnyDatabase. Para obtener un ejemplo de cómo crear un usuario con este rol, consulta la sección Ejemplo de Todos los Espacios de Nombres.

Nota

Asegúrese de conocer todos los privilegios incluidos en el rol readAnyDatabase antes de concederlo a un usuario.

El siguiente ejemplo crea un rol personalizado en el mongosh con los privilegios mínimos requeridos para muestrear cada colección en la base de datos test:

1
use admin
db.createRole(
{
role: "samplingReader",
privileges: [
{
resource: {
db: "test",
collection: ""
},
actions: [ "find", "listCollections" ]
}
],
roles: []
}
)
2
db.createUser(
{
user: "<username>",
pwd: "<password>",
roles: [ "samplingReader" ]
}
)

Nota

El usuario del ejemplo anterior no tiene el privilegio listDatabases, por lo que deberás especificar una base de datos de la que se muestre la información utilizando la opción --sampleNamespaces al ejecutar mongosqld.

3

Ejecute mongosqld con la autenticación habilitada y utilice la opción --sampleNamespaces para tomar muestras de datos de todas las colecciones en la base de datos test:

mongosqld --auth --mongo-username <username> --mongo-password <password> \
--sampleNamespaces 'test.*'

Tip

Volver

Mapear esquemas relacionales a MongoDB

En esta página