본문 바로가기
Tableau 흡수내용

[태블로(Tableau)] 대시보드 조회 속도를 빠르게 해보자(최적화) - 작성중

by Mr.noobiest 2022. 3. 8.

 

 

Tableau의 장점과 단점

 

Tableau의 가장 큰 장점은 드래그&드롭으로 빠르게 원하는 형태로 데이터 조회가 가능하고, 필요하다면 계산된 필드와 LOD로 기존값을 수정할 수 있다는 점이다.

다만, Tableau는 쿼리문을 사용하여 데이터를 조회하는데 이로인해 대시보드 내 요소가 너무 많아 진다면, 대시보드의 속도가 크게 감소할 수 있다는 단점이 있다.

 

특히나 "관계형 연결"을 사용해서 빅데이터를 조회한다면 환경에 따라 로딩 속도가 매우 크게 발생 할 수 있다.(거의 20분이 걸릴 수도 있다.)

Tableau Relationships 예시

이런 경우에는 되도록 사용자 쿼리를 사용해서 데이터의 전체 크기를 줄이는 방법을 사용해야 한다.

사용자 쿼리의 예시

 

 


 

태블로 속도에 영향을 주는것들

1) 불러오는 데이터의 크기(데이터 원본)
2) 화면에 표시되는 마크수(행,열에 게시되는 차원의 갯수만큼 증가됨)
3) 계산된 필드, 필터로 인한 쿼리문(태블로에서 실행되는 쿼리문)

 


 

 

Custom Query로 대시보드 조회 속도 높히기

1) 환경 : SQL쿼리문을 사용한 빅데이터 출력
2) 데이터 원본 : 슈퍼스토어

 

 

 

 

 

-속도를 빠르게 하는 방법-
1) 불러오는 데이터의 크기(데이터 원본) <- 쿼리문을 수정하여 최소화
2) 화면에 표시되는 마크수(행,열에 게시되는 차원의 갯수만큼 증가됨) <- 필터를 추가하여 최소화

 

 

==예시==
1) 불러오는 데이터의 최적화(데이터 최소화 or 쿼리문 최적화)


보통 해당 쿼리가 실행되는 서버의 하드웨어(메모리)가 충분할경우 이런 고민을 안해도 되지만 대부분 메모리를 매우 작게 제공하므로 최적화가 필요하다.

 

 

관계 형으로 여러 데이터를 묶으면 메모리 낭비가 심하다.

 

 

쿼리의 JOIN문을 사용하여 묶어주면 사용 메모리를 작게 만들수 있다. 물론 JOIN을 제대로 하는것이 중요하다.

 

보통 데이터들은 기준이되는 컬럼이 있다(보통 일자(date), 인덱스(Row_ID), 기타등등(Order ID)) 해당 컬럼을 쿼리문상에서 미리 잘라내주면 불러오는 데이터를 최소화 할수 있다.

 

※※※※ 이것은 어디까지나 빅데이터일경우이다(1억건 이상) 보통 위의 처럼 최적화를 안해도 속도자체는 문제가 없다. ※※※※

 

 

 

이런식으로 WHERE절에 매개변수를 써준다.

※ 매개변수는 "추출"을 할경우 추출할때의 값으로 "고정"되니 고정된 값이 아니라면 절대 추출로 해선 안된다. 라이브일경우에만 WHERE절에 사용해주자※

 


 

2) 화면에 표시되는 마크수를 줄이기

 

화면에 표시되는 마크수의 증가 == 뷰 로딩 속도 저하 이다.

 

 

보통 3000건 이하에서는 크게 속도 저하를 못 느끼지만 빅데이터(3만건)이상이 화면에 표시될경우 엄청난 속도 저하가 발생한다(2분이상).

 

 

따라서 필터를 사용하여 해당 마크수를 줄이거나. 쿼리 계산식에 사용되는 측정값의 갯수를 줄여야한다.

 

 

태블로에서 실행되는 쿼리문 예시
SELEECT 값1, 값2, 값3,  값4,  값5, 값6, 값7,  SUM(측정값1), SUM(측정값2),
FROM 000000
GROUP BY
1,2,3,4,5,6,7

이때 사용되는 1~7은 행/열에 게시된 차원의 갯수만큼 늘어난다.

GROUP BY의 갯수가 늘어날수록 메모리에 매우 큰 부하가 발생한다.

 

 

결론 : 필터를 사용해서 화면에 표시되는 마크수를 줄이자 + 행/열에 게시되는 차원의 갯수를 줄이자.

 

 

 

 

 

728x90
반응형