데이터 모델링의 모범 사례
이 섹션에서는 데이터의 구조와 연결하려는 데이터 모델에 따라 Qlik Sense 앱에 데이터를 로드할 수 있는 다양한 방법에 대해 설명합니다.
데이터 열을 행으로 변환
다음과 같은 데이터가 있는 경우 별도의 필드에 판매 수치를 표시하고 싶습니다.
연도 | Q1 | Q2 | Q3 | Q4 |
---|---|---|---|---|
2013 | 34 | 54 | 53 | 52 |
2014 | 47 | 56 | 65 | 67 |
2015 | 57 | 56 | 63 | 71 |
제안 조치
테이블을 로드할 때 Crosstable 접두사를 사용하십시오.
결과는 다음과 같습니다.
Year | Quarter | Sales |
---|---|---|
2013 | Q1 | 34 |
2013 | Q2 | 54 |
2013 | Q3 | 53 |
2013 | Q4 | 52 |
2014 | Q1 | 47 |
... | ... | ... |
Crosstables에 대한 자세한 내용은 데이터 로드 스크립트에서 교차 표 작업 및 Crosstable를 참조하십시오.
데이터 행을 필드로 변환
아래와 비슷한 세 개의 필드가 포함된 일반적인 테이블이 있는 경우 각 특성을 개별 테이블로 표시하고 싶습니다.
Object | Attribute | Value |
---|---|---|
ball | color | red |
ball | diameter | 25 |
ball | weight | 3 |
box | color | 56 |
box | height | 30 |
box | length | 20 |
box | width | 25 |
제안 조치
Generic 로드 접두사를 사용하여 일반 데이터 모델을 만듭니다.
다음과 같은 데이터 모델을 얻게 됩니다.
일반 데이터에 대한 자세한 내용은 일반 데이터베이스 및 Generic를 참조하십시오.
계층 수준으로 구성된 데이터(예: 조직 체계) 로드
다음과 같이 인접한 노드 테이블에 데이터가 저장되어 있습니다.
NodeID | ParentNodeID | Title |
---|---|---|
1 | - | General manager |
2 | 1 | Country manager |
3 | 2 | Region manager |
제안 조치
Hierarchy 접두사를 통해 데이터를 로드하여 확장 노드 테이블을 만듭니다.
NodeID | ParentNodeID | Title | Level1 | Level2 | Level3 |
---|---|---|---|---|---|
1 | - | General manager | General manager | - | - |
2 | 1 | Country manager | General manager | Country manager | - |
3 | 2 | Region manager | General manager | Country manager | Region manager |
계층 수준에 대한 자세한 내용은 계층 구조 데이터 로드 및 Hierarchy를 참조하십시오.
대규모 데이터베이스에서 신규 또는 업데이트된 레코드만 로드
대량의 레코드가 포함된 데이터베이스가 있는 경우 앱의 데이터를 갱신하기 위해 전체 데이터베이스를 다시 로드하고 싶지 않습니다. 새 레코드 또는 업데이트된 레코드만 로드하고 데이터베이스에서 삭제된 레코드는 제거하고 싶습니다.
제안 조치
QVD 파일을 사용하여 증분 로드 솔루션을 구현하십시오.
자세한 내용은 증분 로드를 통해 새 레코드 및 업데이트된 레코드 로드를 참조하십시오.
공통 필드를 사용하여 두 테이블의 데이터 결합
Qlik Sense에서는 공통 필드를 사용하여 자동으로 테이블을 연결하지만 해당 테이블 결합 방법을 제어하고 싶습니다.
제안 조치 : Join / Keep
Join 또는 Keep 접두사를 사용하여 두 테이블을 단일 내부 테이블로 결합할 수 있습니다.
자세한 내용은 Join 및 Keep을 사용한 테이블 결합을 참조하십시오.
제안 조치 : 매핑
테이블을 조인하는 다른 방법은 매핑 테이블에서 연관 값의 조회를 자동화하는 매핑을 사용하는 것입니다. 이 방법으로 로드할 데이터 양을 줄일 수 있습니다.
자세한 내용은 조인에 대한 대안으로 매핑 사용를 참조하십시오.
간격에 불연속 값 일치
불연속 숫자 값 테이블(Event)이 있고 이를 하나 이상의 간격(Start 및 End)에 일치시키고 싶습니다.
Time | 이벤트 | 주석 |
---|---|---|
00:00 | 0 | 이동 1 시작 |
01:18 | 1 | 라인 중단 |
02:23 | 2 | 라인 다시 시작 50% |
04:15 | 3 | 라인 속도 100% |
08:00 | 4 | 이동 2 시작 |
11:43 | 5 | 종료 또는 생산 |
시작 | 끝 | 순서 |
---|---|---|
01:00 | 03:35 | A |
02:30 | 07:58 | B |
03:04 | 10:27 | C |
07:23 | 11:43 | D |
제안 조치
IntervalMatch 접두사를 사용하여 Time 필드를 Start 및 End에 의해 정의된 간격과 연결하십시오.
자세한 내용은 간격과 불연속 데이터의 연결를 참조하십시오.
시작 및 종료로 간격이 명확하게 정의되어 있지 않고 아래 테이블에서처럼 변경 타임스탬프만 있는 경우, 간격 테이블을 만들어야 합니다.
통화 | 데이터 변경 | 환율 |
---|---|---|
EUR | - | 8.59 |
EUR | 28/01/2013 | 8.69 |
EUR | 15/02/2013 | 8.45 |
USD | - | 6.50 |
USD | 10/01/2013 | 6.56 |
USD | 03/02/2013 | 6.30 |
자세한 내용은 단일 날짜에서 날짜 간격 만들기를 참조하십시오.
일관성 없는 필드 값 처리
여러 테이블에 일관성 없이 이름이 지정된 필드 값이 포함된 데이터가 있습니다. 예를 들어 한 테이블에는 Country에 US 값이 있고 다른 테이블에는 United States이 포함되어 있습니다. 이런 경우 연결이 수행되지 않습니다.
국가 | 지역 |
---|---|
미국 | 메릴랜드 |
미국 | 아이다호 |
미국 | 뉴욕 |
미국 | 캘리포니아 |
Country | Population |
---|---|
United States | 304 |
Japan | 128 |
Brazil | 192 |
China | 1333 |
제안 조치
매핑 테이블을 사용하여 데이터 정리 작업을 수행하십시오. 그러면 필드 값을 비교하여 올바른 연결을 수행할 수 있습니다.
자세한 내용은 데이터 정리를 참조하십시오.
일관성 없는 필드 값 대소문자 처리
여러 테이블에 일관성 없이 서식 지정된 필드 값이 포함된 데이터가 있습니다. 예를 들어 한 테이블에는 Type에 single 값이 있고 다른 테이블의 동일한 필드에는 Single이 포함되어 있습니다. 이런 경우 Type 필드에 single과 Single 값을 모두 포함하게 되면 연결이 수행되지 않으므로 대소문자 처리가 중요합니다.
유형 | 가격 |
---|---|
단일 | 23 |
더블 | 39 |
유형 | 색 |
---|---|
단일 | 빨강 |
단일 | 파랑 |
더블 | 흰색 |
더블 | Black |
제안 조치
데이터 추가를 사용하여 데이터를 로드한 경우에는 데이터 관리자에서 이를 해결할 수 있습니다.
다음과 같이 하십시오.
- 데이터 관리자의 테이블 편집기에서 Table2를 엽니다.
-
Type 필드의 이름을 Table2.Type으로 변경합니다.
데이터 프로파일링이 활성화된 상태에서 데이터 추가를 사용하여 테이블을 추가한 경우에는 해당 필드가 자동 연결을 방지하기 위해 이미 Table2.Type으로 이름이 지정되어 있을 수 있습니다. 이런 경우는 이 절치에서 두 테이블을 연결합니다.
- 표현식 Lower(Table2.Type)을 사용하여 계산 필드를 만들고 Type으로 이름을 지정합니다.
- 데이터 로드를 클릭합니다.
이제 Table1 및 Table2는 single과 double처럼 소문자 값만 포함하는 Type 필드에 의해 연결되어야 합니다.
대소문자를 다르게 사용하고 싶은 경우에도 비슷한 절차를 통해 작업을 수행할 수 있지만 테이블은 동일한 이름의 필드를 사용하여 연결된다는 점을 기억하십시오.
- Single처럼 모든 값의 첫 문자를 대문자로 표시하려면 대신 Table1의 계산된 Type 필드를 만들고 표현식 Capitalize(Table1.Type)을 사용합니다.
- SINGLE처럼 모든 값을 대문자로 표시하려면 두 테이블 모두에서 계산된 Type 필드를 만들고 표현식 Upper(Table1.Type) 및 Upper(Table2.Type)을 각각 사용합니다.
계산된 필드에 대한 자세한 내용은 계산 필드 사용을 참조하십시오.
대소문자 처리에 대한 자세한 내용은 Capitalize - 스크립트 및 차트 함수, Lower - 스크립트 및 차트 함수 및 Upper - 스크립트 및 차트 함수을 참조하십시오.
특정 지역 관련 데이터를 로드하여 맵으로 데이터 시각화
국가별 또는 매장별 판매량 데이터 등과 같이 맵을 사용하여 시각화하고 싶은 데이터가 있습니다. 맵 시각화를 사용하려면 영역 또는 포인트 데이터를 로드해야 합니다.
제안 조치
KML 파일 또는 Excel 파일에서 데이터 값 위치를 일치시킬 영역 또는 포인트 데이터를 로드할 수 있습니다. 또한 실제 맵 배경도 로드해야 합니다.
자세한 내용은 자체 맵 데이터 로드를 참조하십시오.