# 데이터 모델 보기 및 변환

데이터 모델 뷰어는 응용 프로그램의 데이터 구조에 대한 개요입니다. 테이블 및 필드에 대한 자세한 메타데이터를 볼 수 있습니다. 또한 데이터 필드에서 차원 및 측정값을 만들 수 있습니다.

응용 프로그램 탐색 메뉴에서 데이터 모델 뷰어를 클릭하여 데이터 모델 뷰어를 엽니다.

각 데이터 테이블은 테이블 이름이 제목이고 테이블의 모든 필드가 나열되어 있는 상자로 표현됩니다. 테이블 연결은 순환 참조를 나타내는 점선이 포함된 선으로 표시됩니다. 테이블 또는 필드를 선택하면 연결이 강조 표시되어 필드 및 테이블이 어떻게 연결되어 있는지 즉시 보여줍니다. the 데이터 모델 검색 icon을(를) 클릭하여 특정 테이블과 필드를 검색할 수 있습니다.

데이터 모델은 응용 프로그램의 데이터 구조를 표시합니다.

데이터 모델은 응용 프로그램의 데이터 구조를 표시합니다.

데이터 모델은 응용 프로그램의 데이터 구조를 표시합니다. ![데이터 모델 뷰어.](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_gen_data_model_viewer.png)

the 확대 icon, the 축소 icon을 클릭하거나 슬라이더를 사용하여 확대/축소 수준을 변경할 수 있습니다. the 홈 icon을 클릭하여 확대/축소 수준을 1:1로 복원합니다.

미리 보기 창에서 테이블 또는 필드의 내용을 조사할 수 있습니다. 필드를 선택하는 경우 차원 및 측정값을 응용 프로그램에 추가할 수도 있습니다. 자세한 내용은 [데이터 모델 뷰어에서 테이블 및 필드 미리 보기](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataModeling/preview-tables-fields-data-model-viewer.htm)을 참조하십시오.

## 테이블 이동

테이블을 캔버스로 끌어서 테이블을 이동할 수 있습니다. 응용 프로그램을 저장할 때 테이블 위치가 저장됩니다.

캔버스 오른쪽 부분에서 the 잠김 icon을 클릭하여 테이블 레이아웃(위치 및 크기)을 잠글 수 있습니다. 테이블 레이아웃의 잠금을 해제하려면 the 잠금 해제됨 icon을 클릭합니다.

또한 도구 모음의 the 그리드 보기 icon 아래에서 옵션을 사용하여 레이아웃을 자동으로 배열할 수 있습니다.

테이블 이동 옵션

| UI 항목 | 이름 | 설명 |
| --- | --- | --- |
| the 그리드 보기 icon | 그리드 레이아웃 | 그리드에 테이블을 배치합니다. |
| the 자동 icon | 자동 레이아웃 | 창에 맞도록 테이블을 배치합니다. |
| the 시간 icon | 레이아웃 복원 | 데이터 모델 뷰어를 마지막으로 열었을 때의 레이아웃 상태로 복원합니다. |

## 테이블 크기 조정

테이블 오른쪽 아래 모서리의 화살표를 사용하여 테이블의 표시 크기를 조정할 수 있습니다. 응용 프로그램을 저장할 때 표시 크기는 저장되지 않습니다.

또한 도구 모음의 자동 표시 크기 옵션을 사용할 수도 있습니다.

테이블 크기 조정 옵션

| UI 항목 | 이름 | 설명 |
| --- | --- | --- |
| the 축소 icon | 모두 축소 | 테이블 이름만 표시되도록 모든 테이블을 최소화합니다. |
| the 축소 icon | 연결된 필드 표시 | 테이블 이름 및 다른 테이블에 대한 연결이 있는 모든 필드를 표시하도록 모든 테이블의 크기를 줄입니다. |
| the 확장 icon | 모두 확장 | 테이블의 모든 필드가 표시되도록 모든 테이블을 최대화합니다. |

## 데이터 모델 성능

다음은 데이터 모델 성능에 영향을 미칠 수 있는 표시기입니다. 각각은 응용 프로그램 유용성을 개선할 모범 사례입니다.

데이터 모델 성능 모범 사례

| 작업 | 설명 |
| --- | --- |
| 가상 키 제거 | Qlik Sense는 둘 이상의 데이터 테이블에 둘 이상의 공통 필드가 있는 경우 가상 키를 만듭니다. 이는 스크립트 또는 데이터 모델에 오류가 있음을 의미할 수 있습니다. 가상 키를 진단하려면 [가상 키](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/synthetic-keys.htm)를 참조하십시오. |
| 데이터 모델에서 순환 참조 제거 | 두 개의 필드에 둘 이상의 연결이 있는 경우 순환 참조가 발생합니다. Qlik Sense는 테이블 중 하나에 대한 연결을 변경하여 이 문제를 해결하려고 합니다. 하지만 모든 순환 참조 경고는 해결해야 합니다. [순환 참조에 대한 이해 및 해결](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/understand-circular-references.htm)를 참조하십시오. |
| 적절한 데이터 세분성 | 필요한 데이터만 로드해야 합니다. 예를 들어 사용자 그룹에서 주, 월 및 연도로 나뉜 데이터만 필요합니다. 집계된 데이터로 로드하거나 로드 스크립트 내에서 데이터를 집계하여 메모리를 절약할 수 있습니다. 사용자가 낮은 수준의 세분성으로 데이터를 시각화해야 하는 경우 ODAG 또는 문서 연결을 사용할 수 있습니다. |
| 가능한 경우 QVDs 사용 | QVD는 Qlik Sense에서 내보낸 데이터의 테이블을 포함한 파일입니다. 이 파일 형식은 스크립트에서 데이터를 읽을 때 속도에 최적화되어 있지만 여전히 매우 작습니다. 파일 형식은 스크립트에서 데이터를 읽는 속도에 최적화되어 있지만 크기는 매우 작습니다. QVD 파일에서 데이터를 읽는 속도는 일반적으로 다른 데이터 소스에서 데이터를 읽는 것보다 10-100배 정도 빠릅니다. 자세한 내용은 [QVD 파일 작업](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/work-with-QVD-files.htm)을 참조하십시오. |
| 로드 시 QVD 파일 최적화 | QVD 파일은 표준(빠름) 모드와 최적화(매우 빠름) 모드에서 읽을 수 있습니다. 모드 선택은 스크립트 엔진에서 자동으로 결정합니다.<br><br>최적화된 로드에는 몇 가지 제한 사항이 있습니다. 필드의 이름을 변경할 수는 있지만 다음 작업 모두 표준 로드를 발생시킵니다.<br><br><ul><li>로드된 필드의 모든 변환 </li><li><span>where</span> 절을 사용하여 <span>Qlik Sense</span>가 레코드를 압축 해제하게 함 </li><li>로드된 필드에서 <span>맵</span> 사용</li></ul> |
| 증분 로드 활용 | 응용 프로그램이 지속적으로 업데이트되는 데이터베이스에서 대량의 데이터에 연결되는 경우 전체 데이터 집합을 다시 로드하는 데 시간이 오래 걸릴 수 있습니다. 대신 증분 로드를 사용하여 데이터베이스의 새 레코드나 변경된 레코드를 검색해야 합니다. 자세한 내용은 [증분 로드를 통해 새 레코드 및 업데이트된 레코드 로드](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/use-QVD-files-incremental-load.htm)를 참조하십시오. |
| Snowflake 모델 통합 | 눈송이형 데이터 모델이 있는 경우 Join 접두사 또는 기타 매핑을 사용하여 데이터 테이블 중 일부를 조인함으로써 데이터 테이블 수를 줄일 수 있습니다. 이것은 큰 팩트 테이블에 특히 중요합니다. 실제 좋은 방법은 하나의 큰 테이블만 갖는 것입니다. 자세한 내용은 [조인할 것인가 말 것인가](https://community.qlik.com/t5/Qlik-Design-Blog/To-Join-or-not-to-Join/ba-p/1463102)를 참조하십시오. |
| 필드 수가 적은 테이블 비정규화 | 필드가 거의 없는 두 개의 테이블이 있는 경우, 이들을 조인하면 성능이 향상될 수 있습니다. 자세한 내용은 [Join 및 Keep을 사용한 테이블 결합](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/combine-tables-with-join-keep.htm)를 참조하십시오. |
| 매핑 로드가 있는 비정규화된 조회(리프) 테이블 | 한 테이블의 필드를 다른 테이블에 하나만 추가해야 하는 경우 Join 접두사를 사용하면 안 됩니다. 다음 ApplyMap 조회 함수를 사용해야 합니다. [조인하지 마세요. ApplyMap을 사용하세요](https://community.qlik.com/t5/Qlik-Design-Blog/Don-t-join-use-Applymap-instead/ba-p/1467592)를 참조하세요. |
| 날짜 필드에서 타임스탬프 제거 또는 분리 | 문자열 표현이 더 크고 고유 값의 수가 더 많아 타임스탬프가 있는 경우 날짜 필드가 공백을 채울 수 있습니다. 분석에 정밀도가 필요하지 않은 경우 Timestamp(Floor(YourStimestamp, 1/24))를 사용하여 타임스탬프를 가장 가까운 시간 등으로 반올림하거나 Date(Floor(YourTimestamp))를 사용하여 시간 구성 요소를 완전히 제거할 수 있습니다.<br><br>타임스탬프가 필요한 경우 날짜 자체에서 분리할 수 있습니다. 동일한 Floor() 함수를 사용하고 다음 줄과 함께 사용하여 추출된 시간으로 새 필드를 만들 수 있습니다. Time(Frac(YourTimestamp)). |
| 데이터 모델에서 불필요한 필드 제거 | 데이터 모델에서 필요한 필드만 로드해야 합니다. Load \*와 SELECT를 사용하지 마십시오. 다음 필드는 유지합니다.<br><br><ul> <li>분석에 필요한 필드</li> <li>응용 프로그램에서 실제로 사용되는 필드. </li> </ul> |
| 볼륨이 큰 데이터를 처리할 때 링크 테이블 방지 | 가능한 경우 링크 테이블을 사용해야 합니다. 그러나 큰 데이터 볼륨을 처리하는 경우 연결된 테이블이 링크 테이블보다 성능이 뛰어납니다. |
| 연결된 차원을 새 필드로 분리 | 연결된 차원을 별도의 필드로 분리해야 합니다. 이렇게 하면 필드에서 고유한 값의 발생 수가 줄어듭니다. 이 방법은 타임스탬프를 최적화하는 방법과 유사합니다. |
| 가능한 경우 AutoNumber 사용 | 먼저 QVD 파일에서 데이터를 로드하여 최적화된 로드를 만든 다음 AutoNumber 문을 사용하여 값을 기호 키로 변환할 수 있습니다. 자세한 내용은 [AutoNumber](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Autonumber.htm)을(를) 참조하십시오. |
| 데이터 섬 방지 | 데이터 섬은 유용하기도 하지만 대부분 성능에 영향을 미칩니다. 선택 값에 대한 섬을 만드는 경우 변수를 사용합니다. |
| 증분 타임프레임을 기반으로 QVD 저장 | 월별과 같은 세그먼트로 QVD을(를) 저장해야 합니다. 이 소규모 월별 QVD는 모든 데이터가 필요하지 않을 수 있는 다양한 응용 프로그램을 지원할 수 있습니다. |

추가 모범 사례는 [데이터 모델링의 모범 사례](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataModeling/best-practices-data-modeling.htm)를 참조하십시오.

관련 학습 콘텐츠:

* [데이터 모델 뷰어 소개](https://help.qlik.com/lnk/Intro_Data_Model_Viewer_QS)
* [데이터베이스에서 데이터 로드](https://help.qlik.com/lnk/Loading_data_from_database_QS)

## 자세한 정보

* [데이터 모델 뷰어 소개](https://help.qlik.com/lnk/Intro_Data_Model_Viewer_QS)
* [데이터베이스에서 데이터 로드](https://help.qlik.com/lnk/Loading_data_from_database_QS)