기본 콘텐츠로 건너뛰기
데이터 변환

이 페이지에서

데이터 변환

데이터 로드 편집기에서 다양한 기술을 사용하여 데이터를 변환하고 조작할 수 있습니다.

데이터 조작의 장점 중 하나는 테이블에서 몇 개의 선택한 열만 로드하는 등, 파일에서 데이터의 하위 집합만 로드하도록 선택하여 더 효과적으로 데이터를 처리할 수 있다는 점입니다. 또한 데이터를 여러 번 로드하여 원시 데이터를 여러 개의 새 논리 테이블로 분할할 수도 있습니다. 둘 이상의 소스에서 데이터를 로드하고 Qlik Sense에서 테이블 하나로 병합하는 것도 가능합니다.

이 항목에서는 Resident LOAD 및 Preceding LOAD를 사용하여 몇 가지 기본 데이터 변환을 수행합니다.

Resident LOAD

LOAD 문에서 Resident 소스 한정자를 사용하면 이전에 로드한 테이블에서 데이터를 로드할 수 있습니다. 날짜 또는 숫자 값 처리 등과 같이 Qlik Sense 함수를 사용하는 옵션이 없는 SELECT 문으로 로드한 데이터에서 계산을 수행하려는 경우에도 유용합니다.

이 예제에서는 Sales_Buckets라는 새 테이블을 만든 다음 Resident LOAD를 사용하여 Table1을 로드합니다. Sales_Buckets 테이블에서 quantity_threshold라는 변수를 만든 다음 Where 문을 사용하여 해당 임계값을 충족하는 데이터만 로드합니다.

  1. Scripting Tutorial 앱에서 데이터 로드 편집기를 엽니다.
  2. Sales 탭을 클릭합니다.
  3. 스크립트의 끝 부분에 다음을 추가합니다.
  4. SET quantity_threshold = 12000; Sales_Buckets:     LOAD "Sales Qty" as "High_Quantity", "Item Description" as "Item", "Customer Number" as "Customer" Resident Table1 Where ("Sales Qty" > $(quantity_threshold)); 

    스크립트는 다음과 같이 표시되어야 합니다.

    Sales_Buckets라는 새 테이블을 만드는 스크립트가 있는 로드 스크립트 창
    Load script window with script to create new table called Sales_Buckets.

  5. 데이터 로드를 클릭합니다.
  6. 데이터 모델 뷰어를 엽니다. 지정한 필드 및 설정한 임계값에 따라 로드된 데이터가 있는 Sales_Buckets라는 새 테이블이 생성되었음을 확인할 수 있습니다.
  7. 데이터 모델 뷰어의 Sales_Buckets 테이블
    Sales_Buckets table in data model viewer.

  8. 앱에서 테이블에 데이터를 추가합니다. ItemCustomer를 차원으로 추가합니다. High-QuantityCount에 대해 집계된 측정값으로 추가한 다음 Sum에 대해 집계된 측정값으로 다시 추가합니다. 그런 후 다음 수식을 사용하여 새 열을 측정값으로 추가합니다.
  9. = Sum(High_Quantity) / Count(High_Quantity)

    수식을 사용한 새 측정값
    New measure with formula.

    테이블에 따르면 Customer 10025737은 High Top Dried Mushrooms에 대한 4건의 대량 주문을 했으며 평균 수량은 14,800개입니다. 필드의 데이터에 대해 정렬을 수행하려면 완료를 클릭하여 편집 모드를 종료합니다.

    대량 주문을 한 고객을 보여 주는 테이블
    Table showing customers that have made large orders.

  10. 이제 이 예제를 완료했습니다. quantity_threshold 변수 및 Sales_Buckets 테이블에 대한 스크립트를 주석 처리합니다.
  11. 이제 스크립트 끝 부분은 다음과 같습니다.

    주석 처리된 스크립트
    Commented out script.

선행 LOAD

선행 Load를 사용하여 한 번에 데이터를 로드할 수 있도록 변환을 수행하고 필터를 적용할 수 있습니다. 일반적으로 사용하는 From 또는 Resident 등의 소스 한정자를 지정하지 않고 기본적으로 아래의 LOAD 또는 SELECT 문에서 로드하는 LOAD 문입니다. 이런 방식으로 개수에 관계없이 LOAD 문을 누적할 수 있습니다. 맨 아래의 문을 처음으로 평가한 다음 그 위의 문을 평가하는 방식으로 맨 위의 문이 평가될 때까지 계속 진행됩니다.

이 자습서 초반에 설명했듯이 LOADSELECT 문을 사용하여 Qlik Sense에 데이터를 로드할 수 있습니다. 위 문은 각각 내부 테이블을 생성합니다. LOAD는 파일 또는 인라인 테이블에서 데이터를 로드하는 데 사용되고 SELECT는 데이터베이스에서 데이터를 로드하는 데 사용됩니다. 이 자습서에서는 파일의 데이터를 사용했습니다. 이 예제에서는 인라인 테이블을 사용합니다. 그러나 선행 Load를 SELECT 문 위에 사용하여 데이터를 조작할 수 있습니다. 기본 사항은 여기에서 확인하는 것처럼 LOAD를 사용할 때와 동일합니다.

이 예는 이 자습서에서 로드 중인 데이터와 관계가 없습니다. 따라서 선행 Load가 어떤 것인 지에 대한 예를 보여 주기 위해서만 사용됩니다. 데이터 로드 편집기에서 Transactions라는 인라인 테이블을 만듭니다. 선행 LOAD에서 날짜 해석이 수행되고 transaction_date라는 새 필드가 생성됩니다. 이 필드는 sale_date 필드에서 생성됩니다.

  1. 새 앱을 만들고 ReformatDate라고 지정합니다.
  2. 데이터 로드 편집기를 연 다음 TransactionData라는 새 탭을 만듭니다.
  3. 다음 스크립트를 추가합니다.
  4. Transactions:  Load *, Date(Date#(sale_date,'YYYYMMDD'),'DD/MM/YYYY') as transaction_date; Load * Inline [ transaction_id, sale_date, transaction_amount, transaction_quantity, customer_id, size, color_code 3750, 20180830, 23.56, 2, 2038593, L, Red 3751, 20180907, 556.31, 6, 203521, m, orange 3752, 20180916, 5.75, 1, 5646471, S, blue 3753, 20180922, 125.00, 7, 3036491, l, Black 3754, 20180922, 484.21, 13, 049681, xs, Red 3756, 20180922, 59.18, 2, 2038593, M, Blue 3757, 20180923, 177.42, 21, 203521, XL, Black ];

    스크립트는 다음과 같이 표시되어야 합니다.

    선행 Load가 있는 로드 스크립트
    Load script with preceding load.

  5. 데이터 로드를 클릭합니다.
  6. 데이터 모델 뷰어를 엽니다. Transactions 테이블을 선택하고 확장합니다. 선행 Load 문에서 *로 지정한 대로 모든 필드가 로드된 것을 확인할 수 있습니다. transaction_date라는 새 필드가 생성되었습니다. 필드에는 서식이 재지정된 날짜가 있습니다.
  7. 데이터 모델 뷰어의 새 필드 transaction_date
    New field called transaction_date in data model viewer.