Tableau 성능의 트랩(정렬 기능)

Tableau의 성능을 고려하려면 일반적으로 계산 필드에서 처리하는 것보다 표준 기능을 사용하는 것이 좋다.
그러나 정렬 기능에 관해서는 때때로 계산 필드를 사용하는 것이 가장 좋다.나도 실제 업무 때문에 계산 영역을 포기하고 표준적인 정렬 기능으로 바꾸자 갑자기 느려지는 경우가 있다.
이번에는 샘플점에서 정렬 기능과 성능을 조사한 결과를 정리하고자 합니다.
나는 기본적으로 다음과 같은 표의 각양각색의 정렬을 실시할 때의 성능을 비교하고 싶다.

【검증 모드】
  • 재배열 없음
  • 하위 분류에서 정렬할 때
  • 이윤순으로 정렬할 때
  • 이윤율로 정렬할 때
  • Tableau 정렬 확인


    1. 정렬이 없을 때


    성능 기록은 다음과 같습니다. Executing Query는 한 번 릴리즈됩니다.

    2. 하위 범주별로 정렬할 때


    정렬이 없을 때와 마찬가지로 성능 기록은 다음과 같습니다. Executing Query는 한 번 발행됩니다.

    3. 이익 정렬 시


    이윤에 따라 순서를 정하면 Executing Query가 두 번 발행하는데 한 번은 순서를 정하는 데 사용할 항목을 얻은 것처럼 보인다.

    4. 이윤율에 따라 순위를 정할 때


    이익률별로 순위를 매겨도 이익과 동일하게 Executing Query가 2회 발행해 1회는 순위를 매겨 사용한 종목처럼 보였다.

    검증적 고찰


    하위 분류처럼 간단한 항목으로 정렬하면 괜찮을 것 같지만'이익'과'이익률'등 합계치로 정렬하려면 타블로우가 다른 검색어를 발행한다.
    Tableau에서 도표를 만들 때 합계값으로 정렬하는 경우가 많지만 이런 상황에서 Tableau가 묘사한 데이터뿐만 아니라 정렬용 데이터를 얻기 위해 내부에서 SQL을 발행하는 경우도 있다.
    데이터를 얻는 SQL이 워낙 느리다면 정렬을 위해 데이터를 얻는 SQL도 느릴 수 있으므로 성능에 큰 영향을 미칠 수 있다는 점에 유의해야 한다.
    또한 이번에 검증된 Tableau Desktop은 202.2.7의 비교적 새로운 버전으로 테스트를 진행했는데 이것은 예로부터 발생한 현재도 발생한 현상이라고 생각합니다.

    SQL로 발행되는 회피 정책 정렬


    그럼에도 불구하고 합계치로 정렬하고 싶은 경우도 있다고 생각합니다.이 경우 RANKUNIQUE 함수를 사용하면 방지할 수 있습니다.
    아까 이윤율로 랭킹했을 때 RANK.UNIQUE 함수를 사용하는 워크시트입니다.

    포인트는 RANK입니다.UNIQUE 함수를 사용하여 항목 정렬, RANKUNIQUE 함수의 항목을 숨깁니다.
    RANK로 정렬하기UNIQUE 함수는 다음과 같습니다.
    RANK_UNIQUE([利益率])
    
    이 때의 성능 기록은 다음과 같다.

    Executing Query는 한 번만 발행되며 정렬된 데이터를 얻기 위해 SQL 발행을 볼 수 없습니다.
    ※RANK_UNIQUE 함수는 RANK 함수와 달리 "같은 값에 다른 등급을 지정합니다."이 경우 RANK 함수를 사용해도 변함이 없다.

    총결산


    실제로 내가 개발한 계기판도 RANK 함수를 사용하여 성능을 크게 향상시켰다.
    RANK 함수 등은 성능상 잘 사용되지 않는 것이 좋지만, 정렬에서도 유효한 경우가 있다.
    한 마디로 하면 느린 계기판은 성능을 기록한 후에 느린 원인을 이해한 다음에 다른 설치 방법을 시도하여 검증할 수 있다.
    표준 기능을 사용하지 않고 계산 영역을 활용하면 성능이 좋아질 수 있기 때문에 이것이 가장 좋은 방법이라는 선입견에 국한되지 말고 다양한 방법을 시도하는 것이 성능을 향상시키는 지름길이다.
    기타 Tableau 관련 기사는 다음과 같습니다.

    좋은 웹페이지 즐겨찾기