Menu Docs
Página inicial do Docs
/
BI Connector
/

Problemas conhecidos do Conector MongoDB para BI

Nesta página

  • Problemas de compatibilidade doSQL
  • O BI Connector retorna valores de NULL devido a erro de mapeamento

Algumas funções de agregação (como SUM MIN, ou COUNT) 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)

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'}}}])

Voltar

Variáveis do sistema