순환 참조에 대한 이해 및 해결

데이터 구조에 순환 참조("루프")가 있는 경우 두 필드 간 연결 경로가 둘 이상인 것처럼 테이블이 연결됩니다.

이러한 유형의 데이터 구조를 사용하면 데이터 해석이 모호해질 수 있으므로 최대한 사용하지 않는 것이 좋습니다.

두 개의 필드 사이에 둘 이상의 연결 경로가 있으므로 순환 참조가 있는 세 개의 테이블
Three tables with a circular reference.

Qlik Sense는 느슨하게 결합된 테이블을 통해 루프를 해체하여 순환 참조 문제를 해결합니다. Qlik Sense가 로드 스크립트를 실행하는 동안 순환 데이터 구조를 찾으면 경고 대화 상자가 표시되며 하나 이상의 테이블이 느슨한 결합으로 설정됩니다. Qlik Sense는 일반적으로 루프에서 가장 긴 테이블을 느슨하게 하려고 시도하는데, 주로 트랜잭션 테이블을 느슨하게 하는 경우가 많습니다. 데이터 모델 뷰어에서 느슨하게 연결된 테이블은 다른 테이블에 연결된 빨간 점선으로 표시됩니다.

Example:  

세 테이블에서 다음을 포함하는 데이터를 로드합니다.

  • 일부 국가대표 축구 팀의 이름
  • 일부 도시의 축구 클럽
  • 일부 유럽 국가의 도시
Excel에서 소스 데이터 테이블 보기

Tables in Excel.

이 데이터 구조는 Team이라는 필드 이름을 국가대표 팀과 지역 클럽의 두 가지 용도로 사용하고 있으므로 별로 좋지 않습니다. 테이블의 데이터에서 해결이 불가능한 논리적 상황이 발생합니다.

Qlik Sense는 테이블을 Qlik Sense에 로드할 때 중요도가 가장 낮은 데이터 연결을 식별하고 해당 테이블의 연결을 느슨하게 만듭니다.

데이터 모델 뷰어를 열어 Qlik Sense에서 데이터 연결의 관련성을 해석하는 방법을 확인할 수 있습니다.

빨간색 점선으로 표시된 순환 참조의 보기
Circular references between tables.

이제 도시와 도시가 속한 국가를 포함하는 테이블이 여러 국가의 국가대표 팀을 포함하는 테이블 및 다른 도시의 지역 클럽을 포함하는 테이블과 느슨하게 결합되었습니다.

순환 참조의 해결

순환 참조가 발생한 경우 데이터 로드 스크립트를 편집하여 이름이 동일한 필드 중 하나에 고유한 이름을 할당해야 합니다.

다음과 같이 하십시오.

  1. 데이터 로드 편집기를 엽니다.
  2. 중복 필드 이름 중 하나에 대해 LOAD 문을 편집합니다.

    이 예에서는 지역 팀과 해당 도시를 포함하는 테이블의 LOAD 문에서 TeamLocalClub이라는 새 이름을 지정합니다. 업데이트된 LOAD 문은 다음과 같습니다.

    LOAD City, Team as LocalClub

  1. 도구 모음에서 °을 클릭하여 앱의 데이터를 다시 로드합니다.

이제 모든 테이블에서 처리되는 논리가 생성되었습니다. 이 예에서는 국가대표 팀으로 Germany를 선택하면 이탈리아의 도시와 각 도시의 지역 클럽이 연관됩니다.

Sheet with four tables.

데이터 모델 뷰어를 열면 느슨하게 결합된 연결이 일반 연결로 바뀐 것을 알 수 있습니다.

Three tables with regular connections in the Data model viewer.