작성일자 : 2023-09-23
Ver 0.1.1
0. Intro
보통 기업이 프로젝트를 통해 Tableau 대시보드 개발을 하면 Tableau Server를 직접 사용하기도 하지만, 그러기 보다는 이미 사용하고 있는 시스템(ex. Salesforce)이나 포털에 임베딩(Embedding)하여 대시보드를 조회하는 경우가 더 많고 일반적이다.
임베딩시 아무 조건 없이 임베딩을 할 수도 있겠지만, 요건 및 권한에 따라 데이터 필터링을 하여 대시보드를 조회하게 한다거나 뷰의 옵션을 수정해야할 수도 있다. 이에 URL을 통해 데이터를 필터링 하거나 뷰 옵션을 수정하는 방법에 대해서 정리해보려한다.
1. View URL 구조
Tableau Server 또는 Tableau Cloud에서 Tableau 뷰의 기본적인 URL 패턴은 다음과 같다.
http://<servername>/#/views/<workbook>/<sheet>
다중 사이트 환경에서 기본 사이트 이외의 사이트에 저장된 뷰의 경우 사이트의 ID도 URL에 포함된다.
http://<servername>/#/site/<sitename>/views/<workbook>/<sheet>
2. 기본 URL에 매개변수 추가
1) 쿼리 문자열 추가
필터링 URL을 만들려면 기본 URL에 쿼리 문자열을 추가한다. 쿼리 문자열에서 뷰 필터는 매개 변수다. 쿼리 문자열을 작성하려면:
- 물음표(?)로 쿼리 문자열을 시작
- 앰퍼샌드(&)를 사용하여 매개 변수를 구분
- 쉼표(,)를 사용하여 한 매개 변수의 여러 값을 구분
예를 들면 다음과 같다.
http://<servername>/#/views/<workbook>/sheet?param1=value1,value2¶m2=value
또한 필드 또는 시트 이름에서 URL에 표시할 수 없는 모든 문자는 URL로 인코딩된다. 예를 들어 공백은 %20으로 변환된다.
참고: URL 매개 변수를 추가하기 전에 URL 끝에 있는 :iid=[#]을 제거한다. 이 코드는 현재 브라우저 세션의 임시 뷰 카운터다.
필드명의 대/소문자 반영
URL 매개 변수는 대/소문자를 구분한다. 쿼리 문자열을 추가할 때 원본 데이터에 있는 필드명의 대/소문자를 정확하게 반영해야 한다.
쿼리 문자열이 대시보드에 미치는 영향
때때로 하나의 시트에만 영향을 미치는 대시보드의 표시 필터와 달리 URL 매개 변수는 모든 시트에 적용된다. URL 매개 변수를 추가하기 전에 각 시트에 표시된 필드를 숙지하여 유지하려는 데이터를 실수로 필터링하지 않도록 주의한다.
2) 제외 필터링
지금까지 이 문서에서 설명한 예제에서는 모든 필드 값이 결과 뷰에 표시되었다. 특정 필터에 대해 여러 개의 값을 지정하고 해당 값의 특정한 교집합만 표시하는 추가 매개 변수를 포함하면 좀 더 유연하게 값을 표시할 수 있다.
다음 URL은 이 예에 사용된 필터링되지 않은 기본 뷰를 나타내며, 지역별 부서 매출이 나와 있다.
http://<servername>/#/views/Superstore/Performance
다음으로, Central 지역과 West 지역의 Furniture 부서 및 Technology 부서 매출만 표시하려면 기본 URL에 다음 쿼리 문자열을 추가한다.
?Region=Central,West&Category=Furniture,Technology
Central(중부) 지역의 Furniture(가구) 매출과 West(서부) 지역의 Technology(기술) 매출만 표시하려면 쿼리 문자열에 ~s0 매개 변수를 추가한다.
?Region~s0=Central,West&Category~s0=Furniture,Technology
최종 URL은 다음과 같다.
http://<servername>/#/views/Superstore/Performance?Region~s0=Central,West&Category~s0=Furniture,Technology
3) 날짜 필터링에 대해 특별히 고려해야 할 사항
날짜 필드를 필터링하려면 데이터베이스 환경에서의 날짜 형식과 동작을 고려해야 한다.
- URL 매개 변수를 통해 전달되는 날짜(및 시간) 값은 다음 Tableau 기본 형식과 일치해야 한다.
yyyy-mm-dd hh:mm:ss - 날짜를 날짜/시간 값으로 저장하는 데이터베이스가 많으므로 매개 변수에 입력하는 값에 시간 부분을 포함해야 할 수 있다. 시간 부분은 24시간 형식을 기준으로 하므로 오후 10시 18분은 22:18:00으로 지정된다.
예제 날짜 매개 변수
다음 예제 쿼리 문자열에서는 Order Date라는 날짜 필드가 사용된다. 이 문서의 이전 예제와 마찬가지로 뷰의 기본 URL에 이러한 쿼리 문자열을 추가한다.
- Order Date(주문 날짜) 필드 유형에 시간 없이 날짜만 포함되고 2018년 7월 8일 일요일에 대한 데이터만 표시하려는 경우 쿼리 문자열은 다음과 같다.
?Order%20Date=2018-07-08 - Order Date(주문 날짜)에 시간 부분이 포함되고 2018년 7월 8일 일요일 오후 10시 18분을 기준으로 필터링하려는 경우 쿼리 문자열은 다음과 같다.
?Order%20Date=2018-07-08%2022:18:00 - Order Date에 날짜만 있고 여러 날짜를 기준으로 필터링하려는 경우에는 이 문서의 앞부분에서 설명한 대로 쉼표를 사용한다. 예를 들면 다음과 같다.
?Order%20Date=2018-07-08,2018-07-09,2018-07-10,2018-07-11
매개 변수를 DATEPART 필터로 사용
날짜 부분을 기준으로 필터링하려면 기본 Tableau Desktop 날짜 계층의 경우와 동일한 명명법을 사용합니다. 자세한 내용은 Tableau 도움말에서 날짜 함수를 참조하세요.
year(Order%20Date) | 정수 |
quarter(Order%20Date) | 1과 4 사이의 정수 |
month(Order%20Date) | 1과 12 사이의 정수 |
day(Order%20Date) | 1과 31 사이의 정수 |
hour(Order%20Date) | 0과 23 사이의 정수 |
minute(Order%20Date) | 0과 59 사이의 정수 |
second(Order%20Date) | 0과 59 사이의 정수 |
week(Order%20Date) | 1과 53 사이의 정수 |
my(Order%20Date) | 6자리 정수: YYYYMM |
mdy(Order%20Date) | 8자리 정수: YYYYMMDD |