순환 참조
데이터 구조에 순환 참조(루프)가 있는 경우 두 필드 간 연결 경로가 둘 이상인 것처럼 테이블이 연결됩니다.
다음과 같이 하십시오.
- Scripting Tutorial 앱에서 데이터 로드 편집기를 엽니다.
- 을 클릭하여 새 스크립트 섹션을 추가합니다.
- 섹션 이름을 Region으로 지정합니다.
-
오른쪽 메뉴의 DataFiles에서 데이터 선택을 클릭합니다.
- 업로드한 다음 Region.txt를 선택합니다. 데이터 미리 보기 창이 열립니다.
- 모든 필드를 선택하고 필드 이름 아래의 포함된 필드 이름이 데이터를 로드할 때 테이블 필드의 이름을 포함하도록 선택되어 있는지 확인합니다.
- 스크립트 삽입을 클릭합니다.
- 데이터 로드를 클릭합니다.
- 데이터 모델 뷰어를 엽니다.
이번에는 데이터 로드 시 문제가 발생한 것으로 나타납니다. 순환 참조가 만들어졌습니다. 데이터 로드 진행률 창에는 로드 중에 순환 참조가 발견되었다는 오류 메시지가 표시됩니다. 하지만 로드는 완료되고 앱은 저장됩니다.
테이블 간의 연결을 쉽게 볼 수 있도록 테이블을 끌어서 재구성할 수 있습니다.
빨간색 점선은 순환 참조가 만들어졌음을 나타냅니다. 순환 참조로 인해 데이터 해석 시 모호성이 발생할 수 있으므로 피해야 합니다.
순환 참조의 해결
순환 참조가 발생한 원인을 파악할 수 있도록 데이터 모델 뷰어에서 테이블을 자세히 살펴보기로 하겠습니다.
위 스크린샷에서 Table1과 Table2를 살펴보면 공통적으로 Date 필드가 있는 것을 확인할 수 있습니다. 또한 Table1과 Region에 공통으로 SalesKey 필드가 있는 것을 알 수 있습니다. 마지막으로 Table2 및 Region에는 공통으로 Week 필드가 있습니다. 이것은 루프, 즉 순환 참조가 만들어졌음을 의미합니다. 이로 인해 이후의 데이터 분석에서 문제가 발생할 수 있으므로 제거하도록 하겠습니다.
이 문제를 해결하는 가장 쉬운 방법은 필드 중 하나의 이름을 변경하거나 제거하는 것입니다. 여기서는 앱에 필요하지 않는 일부 데이터를 로드했으므로 제거해보겠습니다.
다음과 같이 하십시오.
- 데이터 로드 편집기를 엽니다.
- Region 섹션을 클릭하고 LOAD 문에서 다음 두 행을 삭제합니다.
- 또한 "Region Code" 뒤에서 쉼표도 제거되었는지 확인합니다.
- 데이터 로드를 클릭합니다.
- 데이터 모델 뷰어를 엽니다.
"Week",
SalesKey
이제 스크립트는 다음과 같습니다.
LOAD
Region,
"Region Code"
FROM [lib://DataFiles/Region.txt]
(txt, codepage is 28591, embedded labels, delimiter is '\t', msq);
Region에 대한 원치 않는 참조가 제거되었습니다.