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 MongoDB conectada y genera una representación relacional del esquema que luego almacena en caché en la memoria.

Nota

Si tiene habilitado, asegúrese de que su usuario authentication de MongoDB tenga los permisos correctos. Consulte Permisos de usuario a continuación.

De forma predeterminada, nomongosqld --schemaRefreshIntervalSecs remuestrea mongosqld automáticamente los datos después de generar el esquema. Especifique la opción para que remuestree automáticamente los datos y regenere el esquema según una programación fija.

Si el esquema que crea no satisface sus necesidades de carga mongosqld 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 su instancia de MongoDB usa autenticación y desea usar el muestreo en caché, su instancia de BI Connector también debe usar autenticación. El usuario administrador que se conecta a MongoDB mediante el programa debe tener permiso mongosqld para leer en todos los espacios de nombres de los que desea muestrear datos.

Si desea muestrear todos los espacios de nombres, el usuario administrador requiere los siguientes privilegios:

  • listDatabases en el cluster

  • listCollections en cada base de datos

  • find en cada base de datos

Alternativamente, cree un usuario con la función readAnyDatabase incorporada:

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

Nota

Tenga en cuenta todos los privilegios incluidos con la función readAnyDatabase antes de otorgársela a un usuario.

Para muestrear todos los espacios de nombres, inicie mongosqld sin la --sampleNamespaces opción.

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

Si desea muestrear espacios de nombres específicos, el usuario administrador requiere los siguientes privilegios:

  • listCollections para cada base de datos donde se muestrean todas las colecciones

  • find en cada colección o cada base de datos donde se muestrean todas las colecciones

Como alternativa, cree un usuario con el rol integrado readAnyDatabase. Para ver un ejemplo de cómo crear un usuario con este rol, consulte la sección "Ejemplo de todos los espacios de nombres".

Nota

Tenga en cuenta todos los privilegios incluidos con la función readAnyDatabase antes de otorgársela a un usuario.

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

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 en el ejemplo anterior no tiene el privilegiolistDatabases, por lo que debe especificar una base de datos para muestrear datos con la opción--sampleNamespacesal ejecutarmongosqld.

3

Ejecutemongosqldcon la autenticación habilitada y use la opción--sampleNamespacespara muestrear 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