Docs Menu
Docs Home
/
BI 커넥터
/

MongoDB Connector for BI의 알려진 문제

이 페이지의 내용

  • SQL 호환성 문제
  • 매핑 오류로 인해 BI Connector가 NULL 값을 반환함

일부 SQL 집계 함수 (예:SUM MIN, 또는 COUNT)NULL 해당 집계 함수에 대해 일치하는 값이 없는 경우 를 반환합니다. 이 응답은 사실상 빈 행입니다.

정확히 동일한 SQL 쿼리가 주어지면 BI Connector는 애그리게이션 함수에 대해 NULL 을(를) 반환하지 않습니다. 대신 빈 집합을 반환합니다.

예제

지난 해에 대학에서 제공한 각 수업에 대한 학생의 시험 성적을 분석하고 있습니다. Tableau를 사용하여 SQL 쿼리를 실행하여 가장 높은 테스트 점수와 가장 낮은 테스트 점수, 학급에 있는 모든 점수의 합계와 개수를 포함하여 각 학급에 대한 통계를 찾습니다.

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

안타깝게도 실수로 다음 해 학급의 데이터에 대해 쿼리를 실행하여 쿼리에 대한 시험 점수를 찾을 수 없습니다.

학생 데이터가 MySQL에 저장된 경우 이 쿼리는 SUM, MAX, MIN 함수로 계산된 필드에 대해 NULL 값이 포함된 단일 행을 반환하고 계산된 필드에 대해 0 을(를) 반환합니다. 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 |
+-------------+----------+---------------+-------------+-------------+

학생 데이터가 MongoDB에 저장되고 BI Connector를 통해 액세스되는 경우 이 쿼리는 빈 세트를 반환합니다.

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

BI Connector가 모든 NULL 값을 반환하는 알려진 매핑 오류가 발생할 수 있습니다. 이 오류는 NULL 일 수 있는 배열 필드가 포함된 collection을 쿼리하고 동일한 배열에 NULL 일 수 있는 추가 필드가 포함되어 있을 때 발생합니다. 이 오류의 해결 방법은 createView 메서드를 사용하여 $type 필드가 array 인 문서만 반환하는 $match 필터를 사용하여 뷰를 만드는 것입니다.

예제

이름이 response.schedule 인 배열 필드(때로는 NULL )가 있고 이름이 nextDeparture 인 collection의 경우 다음과 같은 뷰를 만들 수 있습니다.

db.createView('nonullsched', '"nextDeparture"', [{'$match': {'response.schedule': {'$type': 'array'}}}])

돌아가기

시스템 변수