Docs Menu
Docs Home
/ /

Problemas conocidos de MongoDB Connector for BI

Algunas funciones agregadas de SQL(como,SUM MIN COUNTo) devuelve NULL si no hay valores coincidentes para esa función de agregación. Esta respuesta es, en efecto, una fila vacía.

Dada exactamente la misma consulta SQL, el Conector BI no devuelve NULL para ninguna función agregada; en su lugar, devuelve un conjunto vacío.

Ejemplo

Estás analizando el rendimiento de los estudiantes en los exámenes de cada una de las clases impartidas el año pasado por una universidad. Con Tableau, ejecutas una consulta SQL para obtener estadísticas de cada clase, incluyendo las puntuaciones más altas y más bajas, así como la suma y el recuento de todas las puntuaciones de la clase.

SELECT SUM(scores), COUNT(*), COUNT(scores), MAX(scores), MIN(scores)
FROM students_2019
GROUP BY class;

Lamentablemente, accidentalmente ejecutaste la consulta en los datos de las clases del próximo año, por lo que no hay puntajes de exámenes que la consulta pueda encontrar.

Si los datos de los estudiantes se almacenaron en MySQL, esta consulta devolvería una sola fila con valores NULL para los campos que se calculan con las funciones SUM, MAX y MIN y 0 para los campos que se calculan con la función 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 |
+-------------+----------+---------------+-------------+-------------+

Si los datos de los estudiantes se almacenaron en MongoDB y se accedió a ellos a través del Conector BI, esta consulta devolvería un conjunto vacío.

SELECT SUM(scores), COUNT(*), COUNT(scores), MAX(scores), MIN(scores)
FROM students_2019
GROUP BY class;
Empty set (0.00 sec)

Puede producirse un error de asignación conocido que provoca que BI Connector devuelva solo valores NULL. Este error se produce al consultar una colección que contiene un campo de matriz que puede ser NULL y la misma matriz contiene un campo adicional que también puede ser NULL. Una solución alternativa para este error es crear una vista con el filtro $match que solo devuelva documentos en los que el campo $type sea array con el método createView.

Ejemplo

Para una colección llamada nextDeparture con un campo de matriz llamado response.schedule que a veces es NULL, puede crear la siguiente vista:

db.createView("nextDeparture_view", "nextDeparture", [
{
"$project": {
"response": { "$cond": { "if": { "$eq": ["$response.schedule", null] },
"then": { }, "else": "$response" } }, "name": 1
}
} ])

Volver

Variables del sistema

En esta página