데이터 모델링의 모범 사례

이 섹션에서는 데이터의 구조와 연결하려는 데이터 모델에 따라 Qlik Sense 앱에 데이터를 로드할 수 있는 다양한 방법에 대해 설명합니다.

데이터 열을 행으로 변환

다음과 같은 데이터가 있는 경우 별도의 필드에 판매 수치를 표시하고 싶습니다.

원래 데이터 테이블
연도 Q1 Q2 Q3 Q4
2013 34 54 53 52
2014 47 56 65 67
2015 57 56 63 71

Proposed action  

테이블을 로드할 때 Crosstable 접두사를 사용하십시오.

결과는 다음과 같습니다.

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

Proposed action  

Generic 로드 접두사를 사용하여 일반 데이터 모델을 만듭니다.

다음과 같은 데이터 모델을 얻게 됩니다.

Generic data model.

일반 데이터에 대한 자세한 내용은 일반 데이터베이스Generic를 참조하십시오.

계층 수준으로 구성된 데이터(예: 조직 체계) 로드

다음과 같이 인접한 노드 테이블에 데이터가 저장되어 있습니다.

인접 노드 테이블
NodeID ParentNodeID Title
1 - General manager
2 1 Country manager
3 2 Region manager

Proposed action  

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를 참조하십시오.

대규모 데이터베이스에서 신규 또는 업데이트된 레코드만 로드

대량의 레코드가 포함된 데이터베이스가 있는 경우 앱의 데이터를 갱신하기 위해 전체 데이터베이스를 다시 로드하고 싶지 않습니다. 새 레코드 또는 업데이트된 레코드만 로드하고 데이터베이스에서 삭제된 레코드는 제거하고 싶습니다.

Proposed action  

QVD 파일을 사용하여 증분 로드 솔루션을 구현하십시오.

자세한 내용은 증분 로드를 통해 새 레코드 및 업데이트된 레코드 로드를 참조하십시오.

공통 필드를 사용하여 두 테이블의 데이터 결합

Qlik Sense에서는 공통 필드를 사용하여 자동으로 테이블을 연결하지만 해당 테이블 결합 방법을 제어하고 싶습니다.

Proposed action : Join / Keep

Join 또는 Keep 접두사를 사용하여 두 테이블을 단일 내부 테이블로 결합할 수 있습니다.

자세한 내용은 Join 및 Keep을 사용한 테이블 결합를 참조하십시오.

Proposed action : 매핑

테이블을 조인하는 다른 방법은 매핑 테이블에서 연관 값의 조회를 자동화하는 매핑을 사용하는 것입니다. 이 방법으로 로드할 데이터 양을 줄일 수 있습니다.

자세한 내용은 조인에 대한 대안으로 매핑 사용를 참조하십시오.

간격에 불연속 값 일치

불연속 숫자 값 테이블(Event)이 있고 이를 하나 이상의 간격(Start End)에 일치시키고 싶습니다.

불연속 숫자 값 테이블(Event)
Time 이벤트 주석
00:00 0 이동 1 시작
01:18 1 라인 중단
02:23 2 라인 다시 시작 50%
04:15 3 라인 속도 100%
08:00 4 이동 2 시작
11:43 5 종료 또는 생산
간격이 있는 테이블(Start End)
시작 순서
01:00 03:35 A
02:30 07:58 B
03:04 10:27 C
07:23 11:43 D

Proposed action  

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이 포함되어 있습니다. 이런 경우 연결이 수행되지 않습니다.

테이블 1
국가 지역
미국 메릴랜드
미국 아이다호
미국 뉴욕
미국 캘리포니아
Table 2
Country Population
United States 304
Japan 128
Brazil 192
China 1333

Proposed action  

매핑 테이블을 사용하여 데이터 정리 작업을 수행하십시오. 그러면 필드 값을 비교하여 올바른 연결을 수행할 수 있습니다.

자세한 내용은  데이터 정리를 참조하십시오.

일관성 없는 필드 값 대소문자 처리

여러 테이블에 일관성 없이 서식 지정된 필드 값이 포함된 데이터가 있습니다. 예를 들어 한 테이블에는 Typesingle 값이 있고 다른 테이블의 동일한 필드에는 Single이 포함되어 있습니다. 이런 경우 Type 필드에 singleSingle 값을 모두 포함하게 되면 연결이 수행되지 않으므로 대소문자 처리가 중요합니다.

테이블 1
유형 가격
단일 23
더블 39
테이블 2
유형
단일 빨강
단일 파랑
더블 흰색
더블 검정

Proposed action  

데이터 추가를 사용하여 데이터를 로드한 경우에는 데이터 관리자에서 이를 해결할 수 있습니다.

다음과 같이 하십시오.

  1. 데이터 관리자의 테이블 편집기에서 Table2를 엽니다.
  2. Type 필드의 이름을 Table2.Type으로 변경합니다.

    데이터 프로파일링이 활성화된 상태에서 데이터 추가를 사용하여 테이블을 추가한 경우에는 해당 필드가 자동 연결을 방지하기 위해 이미 Table2.Type으로 이름이 지정되어 있을 수 있습니다. 이런 경우는 이 절치에서 두 테이블을 연결합니다.

  3. 표현식 Lower(Table2.Type)을 사용하여 계산 필드를 만들고 Type으로 이름을 지정합니다.
  4. 데이터 로드를 클릭합니다.

이제 Table1Table2singledouble처럼 소문자 값만 포함하는 Type 필드에 의해 연결되어야 합니다.

대소문자를 다르게 사용하고 싶은 경우에도 비슷한 절차를 통해 작업을 수행할 수 있지만 테이블은 동일한 이름의 필드를 사용하여 연결된다는 점을 기억하십시오.

  • Single처럼 모든 값의 첫 문자를 대문자로 표시하려면 대신 Table1의 계산된 Type 필드를 만들고 표현식 Capitalize(Table1.Type)을 사용합니다.
  • SINGLE처럼 모든 값을 대문자로 표시하려면 두 테이블 모두에서 계산된 Type 필드를 만들고 표현식 Upper(Table1.Type)Upper(Table2.Type)을 각각 사용합니다.

계산된 필드에 대한 자세한 내용은 계산 필드 사용을 참조하십시오.

대소문자 처리에 대한 자세한 내용은 Capitalize - 스크립트 및 차트 함수, Lower - 스크립트 및 차트 함수Upper - 스크립트 및 차트 함수을 참조하십시오.

특정 지역 관련 데이터를 로드하여 맵으로 데이터 시각화

국가별 또는 매장별 판매량 데이터 등과 같이 맵을 사용하여 시각화하고 싶은 데이터가 있습니다. 맵 시각화를 사용하려면 영역 또는 포인트 데이터를 로드해야 합니다.

Proposed action  

KML 파일 또는 Excel 파일에서 데이터 값 위치를 일치시킬 영역 또는 포인트 데이터를 로드할 수 있습니다. 또한 실제 맵 배경도 로드해야 합니다.

자세한 내용은 자체 맵 데이터 로드를 참조하십시오.