Visão geral
Novidade na versão 2.3:
Por padrão, mongosqld coleta amostras de cada collection na instância do MongoDB conectada e gera uma representação relacional do esquema que, em seguida, armazena em cache na memória.
Observação
Se você tiver authentication habilitado, verifique se o usuário do MongoDB tem as permissões corretas. Consulte Permissões de usuário abaixo.
Por padrão, o mongosqld não faz uma nova amostra dos dados automaticamente após gerar o esquema. Especifique a opção --schemaRefreshIntervalSecs para direcionar mongosqld para uma nova amostra automática dos dados e gerar novamente o esquema em um agendamento fixo.
Se o esquema criado pelo mongosqld não atender às suas necessidades de volume de trabalho de BI, você poderá gerar manualmente um arquivo de esquema e editá-lo conforme necessário.
Para saber mais sobre os modos de amostragem, consulte o Gráfico de Referência do Modo de Amostragem.
Permissões de usuário para amostragem em cache
Se a instância do MongoDB usar autenticação e você quiser usar a amostragem em cache, a instância do BI Connector também deverá usar autenticação. O usuário administrador que se conecta ao MongoDB por meio do programa deve ter permissão mongosqld para ler de todos os namespaces dos quais você deseja obter dados de amostra.
Amostra de todos os namespaces
Se você deseja amostrar todos os namespaces, o usuário administrador requer os seguintes privilégios:
listDatabasesno clusterlistCollectionsem cada reconhecimento de data centerfindem cada reconhecimento de data center
Como alternativa, crie um usuário com a função readAnyDatabase integrada :
use admin db.createUser( { user: "<username>", pwd: "<password>", roles: [ { "role": "readAnyDatabase", "db": "admin" } ] } )
Observação
Esteja ciente de todos os privilégios incluídos na função readAnyDatabase antes de concedê-la a um usuário.
Para obter uma amostra de todos os namespaces, inicie mongosqld sem a opção --sampleNamespaces .
mongosqld --auth --mongo-username <username> --mongo-password <password>
Amostra de namespaces específicos
Se você deseja amostrar namespaces específicos, o usuário administrador exige os seguintes privilégios:
listCollectionspara cada reconhecimento de data center onde todas as collection são amostradasfindem cada coleção ou cada banco de dados onde todas as coleções são amostradas
Como alternativa, crie um usuário com o role readAnyDatabase integrado . Para obter um exemplo de criação de um usuário com essa função, consulte a seção Amostra de todos os namespaces .
Observação
Esteja ciente de todos os privilégios incluídos na função readAnyDatabase antes de concedê-la a um usuário.
O exemplo seguinte cria um função personalizada no mongosh com os privilégios mínimos exigidos para amostrar cada coleção no test banco de dados do :
Iniciar mongosqld com autenticação ativada
Execute o mongosqld com autenticação habilitada e utilize a opção --sampleNamespaces para dados de amostra de todas as collection no reconhecimento de data center do test :
mongosqld --auth --mongo-username <username> --mongo-password <password> \ --sampleNamespaces 'test.*'