데이터 모델 보기 및 변환
데이터 모델 뷰어는 앱의 데이터 구조에 대한 개요입니다. 테이블 및 필드에 대한 자세한 메타데이터를 볼 수 있습니다. 또한 데이터 필드에서 차원 및 측정값을 만들 수 있습니다.
상단 도구 모음의 준비 탭에서 데이터 모델 뷰어를 클릭하여 데이터 모델 뷰어를 엽니다.
각 데이터 테이블은 테이블 이름이 제목이고 테이블의 모든 필드가 나열되어 있는 상자로 표현됩니다. 테이블 연결은 순환 참조를 나타내는 점선이 포함된 선으로 표시됩니다. 테이블 또는 필드를 선택하면 연결이 강조 표시되어 필드 및 테이블이 어떻게 연결되어 있는지 즉시 보여줍니다. 을 클릭하여 특정 테이블 및 필드를 검색할 수 있습니다.
, 을 클릭하거나 슬라이더를 사용하여 확대/축소 수준을 변경할 수 있습니다. 을 클릭하여 확대/축소 수준을 1:1로 복원합니다.
미리 보기 창에서 테이블 또는 필드의 내용을 조사할 수 있습니다. 또한 필드를 선택하는 경우 차원 및 측정값을 앱에 추가할 수 있습니다. 자세한 내용은 데이터 모델 뷰어에서 테이블 및 필드 미리 보기을 참조하십시오.
테이블 이동
테이블을 캔버스로 끌어서 테이블을 이동할 수 있습니다. 테이블 위치는 앱을 저장할 때 저장됩니다.
캔버스 오른쪽 부분에서 을 클릭하여 테이블 레이아웃(위치 및 크기)을 잠글 수 있습니다. 테이블 레이아웃의 잠금을 해제하려면 을 클릭합니다.
또한 도구 모음의 아래에서 옵션을 사용하여 레이아웃을 자동으로 배열할 수 있습니다.
UI 항목 | 이름 | 설명 |
---|---|---|
그리드 레이아웃 | 그리드에 테이블을 배치합니다. | |
자동 레이아웃 | 창에 맞도록 테이블을 배치합니다. | |
레이아웃 복원 | 데이터 모델 뷰어를 마지막으로 열었을 때의 레이아웃 상태로 복원합니다. |
테이블 크기 조정
테이블 오른쪽 아래 모서리의 화살표를 사용하여 테이블의 표시 크기를 조정할 수 있습니다. 표시 크기는 앱을 저장할 때 저장되지 않습니다.
또한 도구 모음의 자동 표시 크기 옵션을 사용할 수도 있습니다.
UI 항목 | 이름 | 설명 |
---|---|---|
모두 축소 | 테이블 이름만 표시되도록 모든 테이블을 최소화합니다. | |
연결된 필드 표시 | 테이블 이름 및 다른 테이블에 대한 연결이 있는 모든 필드를 표시하도록 모든 테이블의 크기를 줄입니다. | |
모두 확장 | 테이블의 모든 필드가 표시되도록 모든 테이블을 최대화합니다. |
데이터 모델 성능
다음은 데이터 모델 성능에 영향을 미칠 수 있는 표시기입니다. 각각은 앱 유용성을 개선하는 각각의 모범 사례입니다.
동작 | 설명 |
---|---|
가상 키 제거 |
Qlik Sense는 둘 이상의 데이터 테이블에 둘 이상의 공통 필드가 있는 경우 가상 키를 만듭니다. 이는 스크립트 또는 데이터 모델에 오류가 있음을 의미할 수 있습니다. 가상 키를 진단하려면 가상 키를 참조하십시오. |
데이터 모델에서 순환 참조 제거 |
두 개의 필드에 둘 이상의 연결이 있는 경우 순환 참조가 발생합니다. Qlik Sense는 테이블 중 하나에 대한 연결을 변경하여 이 문제를 해결하려고 합니다. 하지만 모든 순환 참조 경고를 해결해야 합니다. 순환 참조에 대한 이해 및 해결를 참조하십시오. |
적절한 데이터 세분성 |
필요한 데이터만 로드해야 합니다. 예를 들어 사용자 그룹에서 주, 월 및 연도로 나뉜 데이터만 필요합니다. 집계된 데이터로 로드하거나 로드 스크립트 내에서 데이터를 집계하여 메모리를 절약할 수 있습니다. 사용자가 낮은 수준의 세분성으로 데이터를 시각화해야 하는 경우 ODAG 또는 문서 연결을 사용할 수 있습니다. |
가능한 경우 QVDs 사용 |
QVD는 Qlik Sense에서 내보낸 데이터의 테이블을 포함한 파일입니다. 이 파일 형식은 스크립트에서 데이터를 읽는 속도에 최적화되어 있지만 크기는 매우 작습니다. 파일 형식은 스크립트에서 데이터를 읽는 속도에 최적화되어 있지만 크기는 매우 작습니다. QVD 파일에서 데이터를 읽는 속도는 일반적으로 다른 데이터 소스에서 데이터를 읽는 것보다 10-100배 정도 빠릅니다. 자세한 내용은 QVD 파일 작업을 참조하십시오. |
로드 시 QVD 파일 최적화 |
QVD 파일은 표준(빠름) 모드와 최적화(매우 빠름) 모드에서 읽을 수 있습니다. 모드 선택은 스크립트 엔진에서 자동으로 결정합니다. 최적화된 로드에는 몇 가지 제한 사항이 있습니다. 필드의 이름을 변경할 수는 있지만 다음 작업 모두 표준 로드를 발생시킵니다.
|
증분 로드 활용 |
앱이 지속적으로 업데이트되는 데이터베이스의 대용량 데이터에 연결되는 경우 전체 데이터 집합을 다시 로드하려면 시간이 오래 걸릴 수 있습니다. 대신 증분 로드를 사용하여 데이터베이스의 새 레코드나 변경된 레코드를 검색해야 합니다. 자세한 내용은 증분 로드를 통해 새 레코드 및 업데이트된 레코드 로드를 참조하십시오. |
Snowflake 모델 통합 |
눈송이형 데이터 모델이 있는 경우 Join 접두사 또는 기타 매핑을 사용하여 데이터 테이블 중 일부를 조인함으로써 데이터 테이블 수를 줄일 수 있습니다. 이것은 큰 팩트 테이블에 특히 중요합니다. 실제 좋은 방법은 하나의 큰 테이블만 갖는 것입니다. 자세한 내용은 조인하거나 조인하지 않으려면을 참조하십시오. |
필드 수가 적은 테이블 비정규화 |
필드 수가 적은 두 개의 테이블이 있는 경우 두 테이블을 조인하여 성능을 개선할 수 있습니다. 자세한 내용은 스크립팅의 다음 단계를 참조하십시오. |
매핑 로드를 사용하여 조회(리프) 테이블 비정규화 |
한 테이블의 필드를 다른 테이블에 하나만 추가해야 하는 경우 Join 접두사를 사용하면 안 됩니다. ApplyMap 조회 함수를 사용해야 합니다. 조인하지 말고 ApplyMap 사용을 참조하십시오. |
날짜 필드에서 타임스탬프 제거 또는 분리 |
문자열 표현이 더 크고 고유 값의 수가 더 많아 타임스탬프가 있는 경우 날짜 필드가 공백을 채울 수 있습니다. 분석에 정밀도가 필요하지 않은 경우 Timestamp(Floor(YourStimestamp, 1/24))를 사용하여 타임스탬프를 가장 가까운 시간 등으로 반올림하거나 Date(Floor(YourTimestamp))를 사용하여 시간 구성 요소를 완전히 제거할 수 있습니다. 타임스탬프가 필요한 경우 날짜 자체에서 분리할 수 있습니다. 동일한 Floor() 함수를 사용하고 다음 줄과 함께 사용하여 추출된 시간으로 새 필드를 만들 수 있습니다. Time(Frac(YourTimestamp)). |
데이터 모델에서 불필요한 필드 제거 |
데이터 모델에서 필요한 필드만 로드해야 합니다. Load *와 SELECT를 사용하지 마십시오. 다음 필드는 유지합니다.
|
볼륨이 큰 데이터를 처리할 때 링크 테이블 방지 |
가능한 경우 링크 테이블을 사용해야 합니다. 그러나 큰 데이터 볼륨을 처리하는 경우 연결된 테이블이 링크 테이블보다 성능이 뛰어납니다. |
연결된 차원을 새 필드로 분리 |
연결된 차원을 별도의 필드로 분리해야 합니다. 이렇게 하면 필드에서 고유한 값의 발생 수가 줄어듭니다. 이 방법은 타임스탬프를 최적화하는 방법과 유사합니다. |
가능한 경우 AutoNumber 사용 |
먼저 QVD 파일에서 데이터를 로드하여 최적화된 로드를 만든 다음 AutoNumber 문을 사용하여 값을 기호 키로 변환할 수 있습니다. 자세한 내용은 AutoNumber를 참조하십시오. |
데이터 섬 방지 |
데이터 섬은 유용하기도 하지만 대부분 성능에 영향을 미칩니다. 선택 값에 대한 섬을 만드는 경우 변수를 사용합니다. |
증분 타임프레임을 기반으로 QVD 저장 |
QVD를 분할하여(예: 월별) 저장해야 합니다. 그러면 이 소규모 월별 QVD는 모든 데이터가 필요하지 않을 수 있는 다양한 앱을 지원할 수 있습니다. |
추가 모범 사례는 데이터 모델링의 모범 사례를 참조하십시오.