[태블로(Tableau)]Tableau Prep Builder Best Practices for Flow Performance

2022-08-09
조회수 1454


Tableau Prep의 흐름 성능 최적화를 위한 방안 

BY 데이터 엔지니어링 이준호 이사


태블로 프렙을 활용한 여러 고객 사례를 기반으로 Tips 공유합니다.



Prep 실행 구조

대화형 작업 영역과 실행 영역으로 구분됨



1. 대화형 여역을 실행할 때는 각 단계별로 작업이 일어나며 필요한 데이터를 캐시형태로 가져와서 실행

2. 실행 영역은 전체를 한 번에 실행



What Impact Performance for Flows?


1. 데이터 양

  • 불필요한 컬럼 제외하기. 초기 단계에서 제거하는 것이 효과적
  • 행을 줄이기 위해 Filter 사용하기

2. 연결하는 DB

3. 샘플 데이터의 Size

4. Flow의 복잡성

5. 출력 유형 (hyper 또는 로컬 파일)

6. Machine의 성능



Database Tips


1. 공유드라이브 같은 원격상에 있는 파일은 로컬로 복사하여 사용할 것

2. 무선보다는 유선 네트워크를 이용할 것 

3. DB의 인덱스를 적용할 것. DBA와 연계 작업 필요 

4. 때로는 사용자 지정 SQL이 필요할 수 있음 

5. DB 설정에서 매우 큰 쿼리에 대해 Commit되지 않은 상태로 Read 할 수 있도록 설정할 수 있음. 

이것이 설정되어 있지 않으면 Tableau Prep에서 쿼리가 오래 실행되어 LOC DB 테이블이 됨

** LOC DB : Linked Open Citation Database



Sampling


1. 샘플링 시에 문자형보다 숫자형을 더 많이 사용 

2. 대표적인 샘플을 만들기 위해 일부 설정 변경 가능


 

Reduce Complexity of the Flow


1. JOIN 결과를 볼지 말지 정할 것

JOIN 과정에서 전처리보다 JOIN은 그냥 있는 그대로 하고 별도 정리 과정에서 처리하는 것이 더 효과적임

왜냐하면 JOIN 과정에서 다시 JOIN을 체크하는 과정을 없앨 수 있고 그것을 표현하기 위한 결과 표시에 대한 리소스 또한 사라짐



2. 이종간 DB Join 사례 

3. Data Type에 따른 차이 

  • 문자타입보다 숫자나 부울타입이 퍼포먼스가 좋음
  • 문자타입이 35초, 숫자타입으로 바꾸고 6초로 걸린 예시도 있음

 


4.  JOIN 작업은 영향도가 큰 전처리 과정이므로 필터 및 집계 등의 과정은 JOIN이 진행되기 이전 과정에서 되면 좋음 

  • 데이터의 Row수가 적을수록 성능 향상에 도움이 되므로 가능한 테이블 크기 축소를 앞선 과정에 진행해야 함



5. 출력 유형에 따른 차이 



Machine Spaces


1. 백신프로그램 or 인덱스 스캔 프로그램 

  • 흐름 관련 폴더를 예외로 처리해야 성능이 향상될 경우가 있음


2. Memory가 부족한 지 체크 필요 

3. Disk가 부족한 지 체크 필요 

  • Disk 공간이 부족할 경우, 불안정하거나 아예 흐름이 실행되지 않음