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
Puede utilizar vistas para redactar información confidencial de una colección y ordenar a BI Connector que lea desde la vista, en lugar de desde la colección de origen.
Uso el mongoMétodo de shell createView para definir una vista en una colección y luego usar esa vista como un espacio de nombres especificado al iniciarmongosqld.
Ejemplos
Considere una colección llamada salaries en la base de datos employees. Al crear una vista en la colección salaries que excluye toda la información de identificación personal, BI Connector puede facilitar el análisis de datos en la vista de forma segura sin comprometer los datos privados de la colección de origen.
El siguiente comando inicia con datos de una vista mongosqld llamada salaries_redacted en la employees base de datos:
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.
Considere una colección llamada sparseCollection que contiene un campo que aparece en todos los documentos y otro que aparece solo ocasionalmente. Una parte 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 garantizar que sparseField esté incluido cuando BI Connector crea su esquema, cree una vista en la que sparseField se complete con ceros en cada documento en el que no aparezca.
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"