QlikView-순환 참조

Circular Reference두 개 이상의 다른 경로를 사용하여 한 테이블에서 다른 테이블로 이동할 수있을 때 발생합니다. 즉, 열을 사용하여 Table1을 Table2와 직접 조인하거나 먼저 Table1을 Table3과 조인 한 다음 table3을 Table2와 조인 할 수도 있습니다. 이로 인해이 세 테이블을 모두로드하는 데이터 모델에 의해 형성된 출력에서 ​​잘못된 결과가 발생할 수 있습니다. QlikView는 순환 참조를 인식하면 이러한 데이터가 메모리로로드되는 것을 방지합니다.

입력 데이터

추가 설명을위한 입력으로 사용되는 다음 세 가지 CSV 데이터 파일을 고려해 보겠습니다.

SalesCountries:
ProductID,ProductCategory,Country,SaleAmount
1,Outdoor Recreation,Italy,4579
2,Clothing,USA,4125
3,Costumes & Accessories,South Korea,6521
4,Athletics,Japan,4125
5,Personal Care,Brazil,5124
6,Arts & Entertainment,China,1245
7,Hardware,South America,456
8,Home & Garden,Peru,241
9,Food,India,1247
10,Home & Garden,Singapore,5462
11,Office Supplies,Hungary,577

ProductCountry:
ProductID, Country
3,Brazil
3,China
2,Korea
1,USA
2,Singapore
7,Sri Lanka
1,Italy

스크립트로드

스크립트 편집기를 사용하여 위의 입력 데이터를로드합니다. Control+E. 옵션 선택Table Files 입력 파일을 찾습니다.

데이터로드

위 스크립트를 만든 후 다음 명령을 사용하여 데이터를 QlikView의 메모리에로드합니다. Control+R. 이때로드되는 테이블에 순환 루프가 있음을 알리는 오류 메시지가 표시됩니다.

데이터 모델

위 경고의 정확한 원인을 찾기 위해 테이블 ​​뷰어의 메뉴 명령을 사용하여 데이터 모델을 볼 수 있습니다. Control+T. 순환 참조를 명확하게 보여주는 다음 화면이 나타납니다. 여기서 RegionCountry와 SalesRegion 간의 조인은 필드를 사용하여 직접 수행 할 수 있습니다.Region. 먼저 ProductCountry 테이블로 이동하여 필드를 사용하여 수행 할 수도 있습니다.Country ProdcutID를 Salesregion에 매핑합니다.

순환 참조 해결

위의 순환 참조는 QlikView가 열 이름을 사용하여 테이블 간의 연결을 자동으로 형성하지 않도록 데이터 세트의 일부 열 이름을 변경하여 해결할 수 있습니다. 이를 위해 RegionCountry의 국가 열 이름을 SalesCountry로 변경합니다. 데이터 세트 ProdcuCountry에서 Country 열의 이름을 ProductCountry로 변경합니다.

수정 된 데이터 모델

위의 열 이름을 바꾼 후 수정 된 데이터 모델은 명령을 사용하여 볼 수 있습니다. Control+T. 이제 테이블 간의 관계가 루프를 형성하지 않음을 알 수 있습니다.

누르기 Control+R 데이터를 다시로드해도 더 이상 경고가 표시되지 않으며이 데이터를 사용하여 보고서를 만들 수 있습니다.