Loading

Tableau Prep에서 중복 데이터 제거

게시 일자: Jan 31, 2024
과업
Tableau Prep에서 중복 데이터를 제거하는 방법. 

데이터에서 중복 데이터는 다양한 이유로 발생할 수 있으며 중복을 해결하는 최선의 방법도 서로 다릅니다. 아래에 이 문서에서 다루는 시나리오가 나와 있습니다.
  • 일대다 또는 다대다 관계가 있는 2개의 테이블을 조인하는 경우 출력의 측정값이 중복됩니다.
  • 2개 이상의 테이블을 유니온하는 경우 테이블 간에 일부 레코드가 반복될 수 있으며 이로 인해 출력에서 레코드가 중복됩니다.
단계
모든 경우에 동일한 값의 변형 정리(수정)에 설명된 방법을 사용하여 중복 항목을 수동으로 제거할 수 있습니다.

클릭하여 단계 확장
시나리오 1: 조인에서 중복된 측정값
Tableau Prep 통합 문서 "duplicates from join.tfl"에서 "January Inventory" 테이블에는 총 재고 수와 함께 각 제품이 한 번씩 나열됩니다. 동일한 주문에 대해 다수의 주문이 제출되었다면 "January Orders" 테이블에 제품에 대한 다수의 행이 포함될 수 있습니다. "Sales"와 "Inventory" 테이블을 조인한 후 [Inventory] 측정값이 중복되었습니다. 첫 번째 흐름에 문제가 나타납니다.

옵션 1: 조인 대신 유니온 사용

참고: [Inventory] 값은 "January Orders"의 데이터와 직접적으로 관련되지 않습니다. 이로 인해 집계 없이 계산을 만드는 경우 또는 조인 절의 필드보다 높은 수준을 표시하는 뷰(이 예에서는 [Product])에서 문제가 발생할 수 있습니다.

옵션 2: 측정값을 고르게 분산시키는 계산 만들기

집계 단계를 사용하여 각 제품의 주문 수를 찾은 다음 재고를 주문 수로 나눌 수 있습니다. 그러면 최종적으로 각 주문에 대해 동일한 비율의 재고가 나타납니다. 예를 들어 모자에 대한 주문이 2건 있습니다. 각 모자 주문에 대한 [Inventory]는 100개입니다. [New Inventory]는 각 주문에 대해 50개가 됩니다.

참고: 제품에 대한 일부 주문이 필터링된 경우 정확하지 않은 재고 정보가 표시될 수 있습니다.
  1. [Product] = [Product]에 "January Inventory" 및 "January Orders"의 INNER 조인을 만듭니다.
  2. 조인 2의 집계를 추가합니다.
  3. 집계 1단계에서 다음을 수행합니다.
    1. [Product]를 그룹화된 필드로 끌어옵니다.
    2. [Order ID]를 집계된 필드로 끌어옵니다.
    3. Order ID에 대한 집계를 고유 카운트로 변경합니다.
    4. Order ID를 Orders per Product 같은 이름으로 변경합니다.
      • [Order ID] 대신 각 행의 값이 고유한 다른 테이블의 필드를 사용합니다.
      • 단일의 고유한 식별자가 없는 경우 집계 단계를 만들기 전에 각 행의 값을 고유하게 만드는 데 필요한 차원을 연결하는 계산된 필드를 만드는 단계를 추가합니다.
      • 예: STR([Order ID])+STR([Date])
  4. 조인 2를 집계 1로 끌어오고 조인 2를 새 조인 위에 놓습니다.
  5. 조인 3 단계에서 [Product] = [Product]에 LEFT 조인을 만듭니다.
  6. 조인 3의 단계를 추가합니다.
  7. 정리 1 단계에서 계산된 필드 만들기... 단추를 클릭합니다.
  8. 계산된 필드 대화 상자에서 다음을 수행한 후 확인을 클릭합니다.
    1. 계산된 필드에 이름을 지정합니다. 이 예에서 계산된 필드의 이름은 "New Inventory(새 재고)"입니다.
    2. 수식 필드에서 다음과 유사한 계산을 만듭니다.
      [Inventory]/[Orders per Product]

옵션 3: 데이터를 집계하여 테이블에 1:1 관계가 포함되도록 만듭니다.

  1. January Orders 4의 집계 단계를 추가합니다.
  2. 집계 2 단계에서 다음을 수행합니다.
    1. [Product]를 그룹화된 필드 패널로 끌어옵니다.
    2. [Sales], [Quantity], [Order ID] 및 [Customer]를 집계된 필드 패널로 끌어옵니다.
    3. [Customer] 필드에서 CNT를 클릭하고 고유 카운트를 선택합니다.
    4. [Order ID] 필드에서 SUM을 클릭하고 고유 카운트를 선택합니다.
  3. 집계 2를 January Inventory 4로 끌어오고 Product = Product에 INNER 조인을 만듭니다.
참고: [Product] 필드를 그룹화된 필드로 끌어온 이유는 이 필드가 조인에 사용되는 유일한 필드이기 때문입니다. 최종 테이블에는 제품당 하나의 행만 포함되며 각 주문에 대한 세부 정보는 손실됩니다.



옵션 4: Tableau Desktop에서 FIXED 식 사용

자세한 지침은 LOD 계산으로 중복 데이터 제거를 참조하십시오.

Tableau Desktop에서 FIXED 식을 사용할 때의 장점은 LOD(세부 수준) 식에서 특수 집계 규칙을 사용할 수 있다는 것입니다. 따라서 FIXED를 사용하여 중복 제거된 재고 필드는 뷰의 제품에 대한 주문이 하나든, 여러 개든 제품에 대해 중복되지 않은 재고를 표시할 수 있습니다.
 
클릭하여 단계 확장
시나리오 2: 데이터 원본과 동일한 데이터를 유니온한 후 중복된 데이터
Tableau Prep 통합 문서 "duplicates from union.tfl"에서 "January Orders"는 1월의 첫 번째 주문 보고서입니다. "January Orders (corrections)" 테이블은 신규 주문이 추가되고 "January Orders"에 이미 있는 주문이 수정된 후에 릴리스된 보고서입니다. 두 테이블을 유니온하면 두 테이블의 모든 행이 유지되고 중복된 측정값이 만들어집니다.

"duplicates from union.tfl"의 첫 번째 흐름에서 이 문제가 나타납니다.

옵션 1: 한 테이블의 모든 데이터와 다른 테이블의 일치하지 않는 데이터 유지

이 예에서는 "January Orders (corrections)"의 모든 데이터와 "January Orders"에서 "January Orders (corrections)"에 없는 주문만 필요합니다.
  1. "January Orders"과 "January Orders (corrections)" 간의 새 조인을 만듭니다.
  2. 조인 1단계에서 다음을 수행합니다.
    1. 적용된 조인 절의 경우 [Order ID] = [Order ID]에 조인 절을 만듭니다.
    2. 조인 유형의 경우 벤 다이어그램의 구획을 클릭하여 가장 왼쪽의 세그먼트만 채웁니다. Tableau Prep에서는 이를 "일치하지 않는 왼쪽 항목만" 조인이라고 합니다.
  3. "January Orders (corrections)"를 조인 1로 끌어오고 새 유니온에 테이블을 놓습니다.

옵션 2: 최근 날짜의 레코드만 유지

예를 들어 Ms. Mouse 씨는 다른 코트를 추가하기 위해 주문을 변경했지만 이 변경 사항이 실수로 "January Orders"에 기록되었습니다. 올바른 주문은 최근 날짜의 주문입니다.
  1. [Order ID] = [Order ID]에 "January Orders"과 "January Orders (corrections)" 간의 FULL OUTER 조인을 만듭니다.
  2. 조인 2의 단계를 추가합니다.
  3. 날짜 필드 및 측정값을 제외하고 일치하는 모든 필드를 병합합니다.
    1. 프로필 패널에서 다른 값을 대체할 값이 포함된 필드를 클릭합니다.
    2. Ctrl 키를 누른 상태에서 일치하는 필드를 클릭합니다.
    3. 필드를 마우스 오른쪽 단추로 클릭하고 필드 병합을 선택합니다.
      • 필드가 병합되면 Tableau Prep에 두 값이 유지되지 않고(2개의 서로 다른 값이 있는 경우) 처음 선택한 필드의 값이 있는 경우 해당 값이 유지됩니다.
      • 예를 들어 Ms. Horse의 이름이 실수로 Ms. House로 "January Orders" 테이블에 기록되었고 올바른 이름은 "January Orders (corrections)"에 나타납니다. [Customer]와 [Customer-1]을 병합할 때 [Customer-1]을 먼저 선택합니다.
      • 병합된 필드의 이름에서 다른 필드를 대체할 필드가 어느 필드인지 확인할 수 있습니다. 이름은 [첫 번째 필드 이름 & 두 번째 필드 이름] 같은 형식으로 지정됩니다. 처음에 나열되는 필드 이름이 다른 필드를 대체하는 필드가 됩니다.
      • 필드를 잘못된 순서로 병합한 경우 프로필 패널에서 병합된 필드 이름 위의 병합 아이콘을 마우스 오른쪽 단추로 클릭하고 제거를 선택하여 병합을 실행 취소할 수 있습니다.
    4. 계산된 필드 만들기... 단추를 클릭합니다.
    5. 계산된 필드 대화 상자에서 다음을 수행한 후 확인을 클릭합니다.
      1. 계산된 필드에 이름을 지정합니다. 이 예에서 계산된 필드의 이름은 "Most Recent Date(최근 날짜)"입니다.
      2. 수식 필드에서 다음과 유사한 계산을 만듭니다.
        IF [Date] > [Date-1]
        THEN [Date]
        ELSE IFNULL( [Date-1], [Date] )
        END
      3. 위의 계산에서는 [Date]가 [Date-1]보다 크거나 최근인 경우 [Date]가 반환됩니다. 그렇지 않은 경우에는 계산에서 [Date-1]이 반환됩니다.
      4. 한 필드가 NULL인 경우 첫 번째 조건은 항상 false가 됩니다. IFNULL() 함수는 [Date-1]이 NULL인 경우 [Date-1]을 [Date]로 대체합니다. 즉, 이 계산은 NULL이 아닌 값이 있는 경우 항상 NULL이 아닌 값을 반환합니다.
      5. [Date] 및 [Date-1]을 제거합니다.
    6. "New Cost"라는 이름 및 다음과 유사한 계산을 사용하여 계산된 필드를 만듭니다.
      IF [Date] > [Date-1]
      THEN [Cost]
      ELSE IFNULL( [Cost-1], [Cost] )
      END
      
    7. [Cost] 및 [Cost-1]을 제거합니다.
    8. 모든 측정값에 대해 6~7단계를 반복합니다.

옵션 3: 모든 중복을 서로 다른 방법으로 처리

  1. [Order ID] = [Order ID]에 "January Orders"과 "January Orders (corrections)" 간의 FULL OUTER 조인을 만듭니다.
  2. 조인 3의 단계를 추가합니다.
  3. a) 두 테이블의 값이 동일하거나 b) 한 테이블의 값으로 항상 대체해야 하는 모든 필드를 병합합니다.
  4. 계산된 필드 만들기... 단추를 클릭합니다.
  5. 계산된 필드 대화 상자에서 다음을 수행한 후 확인을 클릭합니다.
    1. 계산된 필드에 이름을 지정합니다. 이 예에서 계산된 필드의 이름은 "New Cost(새 비용)"입니다.
    2. 수식 필드에서 다음과 유사한 계산을 만듭니다.
      CASE [Order ID-1 & Order ID]
      WHEN 5 THEN [Date]
      WHEN 9 THEN [Date]
      ELSE IFNULL([Date-1],[Date])
      END
      
    • 위의 계산은 [Order ID-1 & Order ID]의 모든 값을 읽고 지정된 날짜 필드를 반환합니다. 작업을 간단히 하기 위해 [Date]를 반환해야 하는 ID만 지정했습니다. 나머지 모든 항목은 [Date-1]을 반환하거나 [Date-1]이 NULL인 경우 ELSE 문에 따라 [Date]를 반환합니다.
    • 이 필드에는 데이터의 모든 행에 대해 고유한 값이 포함되므로 [Order ID-1 & Order ID] 값이 CASE 문에 사용됩니다.
    • 또한 이후에 ID가 새로 추가될 때마다 이 흐름을 다시 실행하면 [Date-1]이 반환됩니다.
  6. [Date] 및 [Date-1]을 제거합니다.
  7. 중복을 개별적으로 처리해야 하는 모든 필드에 대해 4~6단계를 반복합니다.
Knowledge 기사 번호

001453799

첨부 파일

duplicates from union.tflx

12 KB

duplicates from join.tflx

11 KB

 
로드 중
Salesforce Help | Article