Problemas conhecidos do Conector MongoDB para BI
Nesta página
Problemas de compatibilidade comSQL
O BI Connector retorna NULL
um conjunto vazio onde o MySQL retorna valores
Algumas SQL funções de agregação (como,SUM
MIN
COUNT
ou) retornam NULL
se não houver valores correspondentes para essa função agregada. Esta resposta é efetivamente uma linha vazia.
Dada a mesma query SQL exata, o BI Connector não retorna NULL
para nenhuma função agregada; ele retorna um conjunto vazio.
Exemplo
Você está analisando o desempenho no teste dos alunos de cada uma das turmas oferecidas no último ano por uma Universidade. Usando o Tableau, você executa uma query SQL para encontrar estatísticas de cada classe, incluindo as pontuações mais altas e mais baixas dos testes, bem como a soma e a contagem de todas as pontuações da classe.
SELECT SUM(scores), COUNT(*), COUNT(scores), MAX(scores), MIN(scores) FROM students_2019 GROUP BY class;
Infelizmente, você acidentalmente executa a query nos dados das turmas do próximo ano, então não há pontuações de testes para a query encontrar.
Se os dados do aluno fossem armazenados no MySQL, essa query retornaria uma única linha com NULL
valores para campos que são calculados com as funções SUM
, MAX
e MIN
e 0
para campos que são calculados com a função COUNT
.
SELECT SUM(scores), COUNT(*), COUNT(scores), MAX(scores), MIN(scores) FROM students_2019 GROUP BY class; +-------------+----------+---------------+-------------+-------------+ | sum(scores) | count(*) | count(scores) | max(scores) | min(scores) | +-------------+----------+---------------+-------------+-------------+ | NULL | 0 | 0 | NULL | NULL | +-------------+----------+---------------+-------------+-------------+
Se os dados do aluno fossem armazenados no MongoDB e acessados por meio do BI Connector, essa query retornaria um conjunto vazio.
SELECT SUM(scores), COUNT(*), COUNT(scores), MAX(scores), MIN(scores) FROM students_2019 GROUP BY class; Empty set (0.00 sec)
O BI Connector retorna NULL
valores devido a erro de mapeamento
Pode ocorrer um erro de mapeamento conhecido que faz com que o BI Connector retorne todos os valores NULL
. Esse erro ocorre quando você faz uma query em uma collection que contém um campo de array que pode ser NULL
, e a mesma array contém um campo adicional que também pode ser NULL
. Uma solução alternativa para esse erro é criar uma exibição com o filtro $match
que retorna apenas documentos em que o campo $type
seja array
com o método createView
.
Exemplo
Para uma collection denominada nextDeparture
com um campo de array denominado response.schedule
que às vezes é NULL
, você pode criar a seguinte visualização:
db.createView('nonullsched', '"nextDeparture"', [{'$match': {'response.schedule': {'$type': 'array'}}}])