Otra forma de controlar los datos visibles para BI Connector sin utilizar un El archivo .drdl se lee desde una vista. Las vistas permiten tomar una colección de origen y elegir los campos que se mostrarán, cambiar sus nombres, ordenar los datos y realizar cualquier tipo de transformación que la canalización de agregación pueda realizar.
Ejemplo
Puedes usar vistas para redactar información confidencial de una colección y dirigir a BI Connector para que lea desde la vista, en lugar de la colección de origen.
Usa el mongo método shell createView para definir una vista sobre una colección y luego usar esa vista como un namespace específico al iniciar mongosqld.
Ejemplos
Considera una colección llamada salaries en la base de datos employees. Al crear una vista en la colección salaries que excluya toda información personal identificable, BI Connector puede facilitar de manera segura el análisis de datos en la vista sin comprometer los datos privados en la colección fuente.
El siguiente comando inicia mongosqld con datos de una vista llamada salaries_redacted en la base de datos employees:
mongosqld --sampleNamespaces "employees.salaries_redacted"
Otro caso de uso para administrar su esquema con una vista MongoDB es si su conjunto de datos de trabajo incluye un campo escasamente poblado pero importante que puede excluirse en el proceso de muestreo de BI Connector.
Considera una colección llamada sparseCollection que contiene un campo que aparece en cada documento y otro campo que solo aparece ocasionalmente. Una porción de la colección podría verse así:
{ "_id" : 0, "mainField": 247 } { "_id" : 1, "mainField": 71 } { "_id" : 2, "mainField": 981 } { "_id" : 3, "mainField": 712 } { "_id" : 4, "mainField": 781, "sparseField": 1000 } { "_id" : 5, "mainField": 256 } { "_id" : 6, "mainField": 910 }
Para asegurar que sparseField esté incluido cuando BI Connector cree su esquema, crea una vista en la que se rellene sparseField con ceros en cada documento en el que no ocurra.
db.runCommand ( { create: "denseCollection", viewOn: "sparseCollection", pipeline: [ { $addFields: { sparseField: { $ifNull: [ "$sparseField", 0 ] } } } ] } )
Para utilizar la vista como fuente de datos al iniciar mongosqld, especifícalo con la opción --sampleNamespaces.
mongosqld --sampleNamespaces "myDatabase.denseCollection"