Tableau VizQL Data Service(VDS) 심층 분석: 데이터 활용의 새로운 지평
Tableau는 강력한 데이터 시각화 도구로 널리 알려져 있습니다. 하지만 때로는 Tableau의 시각화 환경을 넘어, 데이터를 직접 프로그래밍 방식으로 제어하고 싶을 때가 있습니다. 바로 이 지점에서 Tableau VizQL Data Service(VDS)가 빛을 발합니다. VDS는 Tableau Cloud 및 Server에 게시된 데이터 원본에 프로그래밍 방식으로 접근하여 데이터를 개발자 친화적인 JSON 형태로 쿼리할 수 있도록 지원합니다.
VDS란 무엇인가요?
VDS는 Tableau의 강력한 데이터 엔진인 VizQL을 활용하여, 게시된 데이터 원본에서 필요한 데이터를 직접 추출할 수 있게 해주는 서비스입니다. 이는 마치 Tableau의 "헤드리스 BI(Headless BI)" 경험과 같다고 할 수 있습니다. 즉, 시각화된 대시보드 없이도 Tableau 데이터 원본의 모든 이점(그룹 권한, 행 수준 보안 등)을 누리면서 원하는 데이터를 정확히 가져올 수 있습니다.
VDS를 왜 사용해야 할까요?
VDS는 특히 다음과 같은 경우에 매우 유용합니다.
- 임베디드 분석(Embedded Analytics): 웹 애플리케이션이나 다른 시스템에 Tableau 데이터를 통합할 때, VDS를 통해 필요한 데이터를 직접 가져와 커스텀 UI에 표시할 수 있습니다.
- 데이터 과학 및 자동화: Python, R 등 데이터 과학 도구를 사용하여 Tableau 데이터를 분석하거나, 데이터 기반의 자동화된 프로세스를 구축할 때 유연하게 데이터를 활용할 수 있습니다.
- 맞춤형 애플리케이션 개발: Tableau 대시보드 외에 특정 비즈니스 로직이나 사용자 경험을 제공하는 맞춤형 애플리케이션을 개발할 때, VDS는 데이터 백엔드 역할을 수행합니다.
VDS는 Tableau Cloud에 완전히 배포되었으며, Tableau Server 2025.x 버전부터는 Server 환경에서도 사용할 수 있게 될 예정입니다.
시작하기 전에 알아야 할 것들
VDS를 사용하기 위해 추가적인 설정이나 라이선스는 필요하지 않습니다. 다만, 쿼리하려는 데이터 원본에 'API Access' 권한이 활성화되어 있어야 합니다.
인증 방식은 Tableau REST API와 동일하게 'X-Tableau-Auth' 헤더를 사용하며, 값으로는 로그인 요청 후 받은 API 토큰을 사용합니다.
Tableau REST API와 VDS 연동하기
VDS 쿼리를 실행하려면 쿼리할 데이터 원본의 고유 식별자인 datasourceLuid
가 필요합니다. 이 datasourceLuid
는 Tableau REST API를 통해 얻을 수 있습니다. Tableau REST API는 Tableau Server, Tableau Cloud 사이트 및 Prep Conductor 리소스를 프로그래밍 방식으로 관리하고 변경할 수 있도록 지원합니다.
- 인증 토큰 획득: 먼저 Tableau Server 또는 Tableau Cloud에 REST API를 사용하여 로그인하고 인증 토큰을 받습니다. 이 토큰은 이후의 모든 API 요청에 사용됩니다.
- 데이터 원본 정보 조회: 획득한 인증 토큰을 사용하여 REST API를 통해 게시된 데이터 원본 목록을 조회합니다. 이 응답에서 원하는 데이터 원본의
id
(즉,datasourceLuid
)를 찾을 수 있습니다. - VDS 쿼리 실행: 찾은
datasourceLuid
를 VDS 쿼리의datasource
섹션에 포함하여 데이터를 요청합니다.
이러한 연동을 통해 Tableau의 시각화 환경을 벗어나 외부 애플리케이션에서 Tableau 데이터를 유연하게 활용할 수 있습니다.
VDS 쿼리의 구성 요소
VDS 쿼리는 기본적으로 JSON 형태로 구성되며, 크게 세 가지 주요 섹션으로 나뉩니다.
datasource
: 쿼리할 데이터 원본의 LUID(Local Unique ID)를 지정합니다.options
:debug: true
와 같이 디버그 모드를 설정하여 더 자세한 오류 메시지를 받을 수 있습니다. (기본값은true
입니다.)query
: 이 섹션이 VDS 쿼리의 핵심입니다. 응답으로 받고 싶은 필드, 적용할 집계, 사용자 정의 계산 및 필터를 정의합니다.
VDS 쿼리 구축하기
이제 실제 쿼리 예시를 통해 VDS의 강력함을 살펴보겠습니다.
1. 기본 필드 선택 및 정렬
가장 기본적인 쿼리는 데이터 원본의 특정 필드를 선택하는 것입니다. 예를 들어, 'Order ID', 'Customer Name', 'Order Date'를 가져오고 싶다면 다음과 같이 구성할 수 있습니다. fieldAlias
를 사용하여 필드 이름을 변경할 수도 있습니다.
// REQUEST
{
"datasource": {
"datasourceLuid": "{{datasource_luid}}"
},
"options": {
"debug": true
},
"query": {
"fields": [
{
"fieldCaption": "Order ID"
},
{
"fieldCaption": "Customer Name"
},
{
"fieldCaption": "Order Date",
"fieldAlias": "Date Ordered"
}
]
}
}
여기에 정렬을 추가하려면 sortPriority
와 sortDirection
을 필드 정의에 포함하면 됩니다.
// REQUEST (정렬 추가)
{
"datasource": {
"datasourceLuid": "{{datasource_luid}}"
},
"options": {
"debug": true
},
"query": {
"fields": [
{
"fieldCaption": "Region",
"sortPriority": 1
},
{
"fieldCaption": "State",
"sortPriority": 2,
"sortDirection": "DESC"
},
{
"fieldCaption": "Sales",
"function": "SUM"
}
]
}
}
2. 사용자 정의 필드/계산 추가
VDS의 강력한 기능 중 하나는 데이터 원본에 존재하지 않는 사용자 정의 필드나 계산을 즉석에서 생성할 수 있다는 점입니다. calculation
키워드를 사용하여 Tableau Desktop과 동일한 구문으로 계산식을 작성할 수 있습니다.
예를 들어, 'Days Since Last Order'라는 필드를 계산하려면 다음과 같이 할 수 있습니다.
// REQUEST (사용자 정의 계산 추가)
{
"datasource": {
"datasourceLuid": "{{datasource_luid}}"
},
"options": {
"debug": true
},
"query": {
"fields": [
{
"fieldCaption": "Customer Name"
},
{
"fieldCaption": "Sales",
"fieldAlias": "Total Sales",
"function": "SUM"
},
{
"fieldCaption": "Order Date",
"fieldAlias": "Last Order Date",
"function": "MAX"
},
{
"fieldCaption": "Days Since Last Order",
"calculation": "DATEDIFF('day',MAX([Order Date]),MAX(TODAY()))"
}
]
}
}
3. 필터 적용
실제 시나리오에서는 모든 데이터를 가져오는 대신 특정 조건에 맞는 데이터만 필요할 때가 많습니다. VDS는 쿼리에 필터 정의를 추가하는 기능을 지원하여 원하는 데이터만 정확히 가져올 수 있도록 합니다.
AI(Gemini API)와 VDS API 활용 방안
Tableau VDS를 통해 추출한 정형 데이터를 Gemini API의 강력한 언어 및 멀티모달 처리 능력과 결합하면, 데이터 활용의 범위를 혁신적으로 확장할 수 있습니다. Gemini 모델은 비디오를 포함한 다양한 데이터를 처리할 수 있으며, 개발자들이 혁신적인 애플리케이션을 구축하도록 돕습니다.
- 자동화된 보고서 생성 및 요약: VDS를 통해 Tableau 데이터 원본에서 핵심 지표, 추세, 집계된 데이터를 추출합니다. Gemini API는 이 데이터를 입력받아 주요 인사이트를 식별하고, 자연어로 된 보고서 요약이나 전체 보고서를 자동으로 생성할 수 있습니다. 예를 들어, 매일/매주 비즈니스 성과 보고서를 자동으로 작성하여 시간을 절약할 수 있습니다.
- 자연어 기반 데이터 질의(NLQ) 인터페이스 구축: VDS를 데이터 백엔드로 활용하고, Gemini API를 통해 사용자의 자연어 질문(예: "1분기 동부 지역 매출은 얼마였나요?")을 해석하여 VDS 쿼리로 변환합니다. 쿼리 실행 후, Gemini가 결과를 다시 자연어로 사용자에게 설명해주는 대화형 데이터 분석 시스템을 구축할 수 있습니다. 이는 데이터 접근성을 크게 향상시킬 수 있습니다.
- 예측 분석 및 이상 감지 설명: VDS를 통해 과거 및 실시간 데이터를 Gemini API에 제공합니다. Gemini는 이 데이터를 분석하여 미래 추세를 예측하거나, 비정상적인 데이터 포인트(이상치)를 감지할 수 있습니다. 더 나아가, Gemini의 생성 능력을 활용하여 이상치가 발생한 원인이나 예측의 함의를 쉽게 이해할 수 있는 형태로 설명해주는 기능을 추가할 수 있습니다.
이러한 활용 방안들은 Tableau 데이터의 가치를 극대화하고, 인공지능을 통해 새로운 비즈니스 기회를 창출하는 데 기여할 것입니다.
유용한 도구 및 자료
VDS 쿼리 작성을 돕기 위한 유용한 도구들도 있습니다.
- VDS 유틸리티: Kyle Massey가 개발한 무료 유틸리티(http://kylejmassey.com/vds-utility)는 시각적인 UI를 통해 VDS 쿼리를 구축하고 JSON을 복사할 수 있도록 돕습니다.
- Postman 컬렉션: VDS 요청 예시가 포함된 Postman 컬렉션도 제공되어 API 테스트를 쉽게 할 수 있습니다.
- 공식 문서: Tableau의 VizQL Data Service 공식 문서는 최신 기능과 고급 사용 사례에 대한 정보를 제공합니다.
결론
Tableau VizQL Data Service는 Tableau 데이터 원본의 잠재력을 최대한 활용할 수 있는 강력하고 유연한 도구입니다. "헤드리스 BI" 접근 방식을 통해 개발자는 Tableau의 데이터 거버넌스 및 보안 이점을 유지하면서도, 데이터를 원하는 애플리케이션이나 워크플로우에 자유롭게 통합할 수 있습니다. VDS와 AI 기술의 결합은 데이터 분석의 새로운 지평을 열어줄 것입니다. VDS를 통해 데이터 활용의 새로운 지평을 열어보시길 바랍니다.