Usar visualizações MongoDB
Nesta página
Outra maneira de controlar os dados visíveis para o BI Connector sem usar um arquivo .drdl é ler a partir de umavisualização . As visualizações permitem que você pegue uma collection de origem e escolha quais campos exibir, altere os nomes dos campos, classifique dados e execute qualquer tipo de transformação que o agregação pipeline possa realizar.
Exemplo
Você pode usar visualizações para redigir informações confidenciais de uma collection e direcionar o BI Connector para ler a partir da visualização, em vez da collection de origem.
Use o método de shell mongo
createView para definir uma visualização em uma collection e, em seguida, usar essa visualização como um namespace especificado ao iniciar mongosqld
.
Exemplos
Considere uma collection chamada salaries
no reconhecimento de data center employees
. Ao criar uma visualização na collection salaries
que exclui todas as informações de identificação pessoal, o BI Connector pode facilitar com segurança a análise de dados na collection sem comprometer os dados privados na collection de origem.
O seguinte comando inicia o mongosqld
com dados de uma visualização denominada salaries_redacted
no reconhecimento de data center do employees
:
mongosqld --sampleNamespaces "employees.salaries_redacted"
Outro caso de uso para gerenciar seu esquema com uma visualização MongoDB é se seu conjunto de dados de trabalho incluir um campo pouco preenchido, mas importante, que pode ser excluído no processo de amostragem do BI Connector.
Considere uma coleção chamada sparseCollection
que contém um campo que ocorre em todos os documentos e outro campo que ocorre apenas ocasionalmente. Uma parte da collection pode ter a seguinte aparência:
{ "_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 garantir que o sparseField
seja incluído quando o BI Connector criar seu esquema, crie uma visualização na qual o sparseField
seja preenchido com zeros em todos os documentos em que ele não ocorre.
db.runCommand ( { create: "denseCollection", viewOn: "sparseCollection", pipeline: [ { $addFields: { sparseField: { $ifNull: [ "$sparseField", 0 ] } } } ] } )
Para usar a visualização como conjunto de dados ao iniciar mongosqld
, especifique-a com a opção --sampleNamespaces
.
mongosqld --sampleNamespaces "myDatabase.denseCollection"