태블로 서버에서 사용되는 커스텀 쿼리 리스트 만들기

들어가며

태블로 서버에 사용된 커스텀 쿼리의 목록이 필요하다는 요청이 들어왔습니다. 내용을 확인하니 많은 커스텀 쿼리를 사용하였는데 어떤 칼럼이 사용되고 어떤 칼럼이 사용되지 않았는지에 대한 검토가 필요해서 커스텀 쿼리 목록이 필요하다는 것이었습니다.

일 이십 개면 직접 다운로드 받아 태블로 데스크탑을 열어 쿼리문을 확인하면 될 것이지만 수 백개에 달해서 수동 방법으로는 해결이 불가능한 상황이었습니다. 내부의 선수들에게 확인하니 metadata API가 해답이 될 것 같다는 의견이었습니다.

메다데이터 API 및 GrqphiQL 쿼리

https://help.tableau.com/current/api/metadata_api/en-us/index.html

메타데이터api를 이용한 쿼리를 하려면 GrahpiQL 페이지로 가야 가는데 방법은,

  • 브라우저를 열어서 태블로 서버에 로긴한다. 태블로 온라인도 동일하게 적용됨
  • 다음 부분 url을 카피한다. /metadata/graphiql/
  • 브라우저 주소창에서 “.com” 이후 부분을 전부 삭제한 다음
  • 부분 url을 붙여준다

예를 들어 사이트명이 MYCO라면 주소는 아래와 같을 것인데
https://us-west-2b.online.tableau.com/#/site/MYCO/explore
이것을 다음과 같이 바꾸어 주면 됩니다.
https://us-west-2b.online.tableau.com/metadata/graphiql/

이렇게 들어가게 되면 다음과 같은 화면이 나옵니다.

왼쪽창에서 쿼리를 넣어주면 되는데 쿼리 내용은 아래 링크를 클릭해서 확보합니다.

https://github.com/tableau/metadata-api-samples/blob/master/samples/custom-sql-examples.graphql

listCustomSQLTableau 함수를 열린괄호부터 닫힌 괄호까지 복사합니다. 그림에서 붉은 부분을 복사해주세요. 아랫 부분의 다른 함수들로 살펴봐주세요.

이 내용을 graphiql화면에 붙여 넣고 [▶] 버튼을 눌러 실행해줍니다.

혹시 위와 같은 오류메시지가 뜨는 경우가 있습니다. Meatdata API를 사용할 수 있도록 설정하지 않았다는 의미이고, 이런 경우 tsm maintenance meatdata-services enable 커맨드를 콘솔에서 쳐서 실행시켜 주어야 합니다.

실행이 잘 되면 아래와 같이 메타데이터 API 저장소를 잘 만들었다고 나옵니다.

metadata API를 실행 가능하도록 설정했으니 다시 한번 GrahpiQL을 실행합니다. 오른쪽의 query 부분이 전부 커스텀 쿼리입니다. 이 서버의 경우는 3개의 커스텀쿼리를 가지고 있는 듯 했습니다.

아래에 보면 샘플로 4개의 함수가 보입니다.

  • 커스텀SQL테이블 리스팅하기
  • 커스텀SQL테이블과 Parent리스팅하기
  • 커스텀쿼리를 가지는 워크북
  • 워크북 커넥션

이 중 커스텀쿼리를 가지는 워크북 목록도 한 번 쿼리 해보겠습니다.

시험 삼아 커스텀쿼리를 사용하는 워크북 목록을 쿼리해보았습니다. 예상했던 대로 워크북이름 세 개가 쿼리되는 것을 확인할 수 있습니다.

마무리하며

이상과 같이 메타데이터api를 GraphiQL이용한 쿼리 활용사례를 알아보았습니다. 4~500개에 이르는 커스텀 쿼리가 있다면 목록을 만들어야할 때 무척 편리할 듯 합니다.

 1,033 total views,  3 views today