인프런 커뮤니티 질문&답변

Seongmin Lee님의 프로필 이미지

작성한 질문수

웰컴 투 태블로 월드

데이터 작업하기

매개변수를 활용한 데이터 연결 쿼리 작업 관련 질문입니다.

작성

·

466

0

강의 너무 잘 듣고 있습니다 🙂

현재 DB를 통해서 SQL을 통해서 데이터를 연결하고 있습니다.

여기서 매개변수 startDate과 endDate을 활용해서 최근 3개월만 가져오도록 했습니다. 그리고 대시보드 상에 startDate과 endDate을 사용자가 선택할 수 있도록 했습니다. 이 때 startDate을 최근 3개월 이내가 아닌 밖을 선택할 경우 DB에 접속하여 데이터를 다시 가져오는 것으로 하고 싶습니다. 지금 선택을 하면 자동 Refresh가 안되어서요.

 

약간 https://help.tableau.com/current/pro/desktop/ko-kr/data_stories_parameter_refresh.htm

과 비슷한 것 같아서 이야기 드립니다.

답변 4

0

Seongmin Lee님의 프로필 이미지
Seongmin Lee
질문자

선생님, 답변 감사합니다. 한가지 좀 추가 질문이 있습니다. 추출을 1년 정도 가져가지만, 단 매개변수는 지금과 같이 90일로 지정해서 필터를 한다고했을 때,

제가 생각할 때 태블로 서버 대시보드는 뒷단에 항상 365일의 데이터를 가지고 움직여서 로딩이 느리거나 하는 이슈가 있을 것 같아서요. 혹시 그런 문제는 없을까요? 365일 하니 대략 데이터 row가 1억줄 정도가 되더라구요 ㅎㅎ 그래서 시각화되는 부분은 90일로 줄였지만 뭔가 성능의 문제가 보였습니다.

0

VizLab님의 프로필 이미지
VizLab
지식공유자

2)번의 말씀으로 추측해볼 때 항상 시간이 지나면서 태블로 서버가 (매일매일) 최근 90일을 새롭게 추출하는 것으로 보입니다. 그런 상황에서 90일 이전의 데이터를 누군가 조회하고 싶다고 하면, 이것은 추출을 다시 해야하는 문제인 것이죠

 

성능의 문제는 어떨지 모르겠지만, 추출을 비교적 길게 (예를 들어 최근 1년) 가져가시고, 태블로 워크북 내에서 데이터 원본 필터를 활용하면 최근 90일만 볼지 120일을 볼지 결정할 수 있습니다

 

고려하셔야 하는 리스크는,

1) 추출의 분량이 많아 지는 것이기 때문에 성능 이슈가 발생할 수 있다는 점과,

2) 예를 들어 1년 정도로 추출 분량을 늘인다고 하더라도, 사용자가 과거 2년치를 통째로 보고 싶다는 니즈가 새롭게 생긴다면 1년 데이터 추출로는 해당 니즈를 만족할 수 없다는 점입니다

 

적당한 기간에 대한 선을 찾을 수 있다면 그 정도까지 추출해보시고, 데이터 원본 필터 활용하셔서 화면에 불러오는(대시보드에 표현되는) 기간 범위를 조정해보세요

0

Seongmin Lee님의 프로필 이미지
Seongmin Lee
질문자

1) 제가 TF 필드가 무엇인지 잘 모르겠습니다 ㅠ
2) 연결방식은 Extract 입니다. 데이터 Row 수가 커서요.
3) DB는 Presto 입니다.

그래서 Presto 연결 DB상에 쿼리를 아래와 같이 했습니다.

"SELECT * FROM target_table
WHERE day BETWEEN
<매개변수.startDate> AND <매개변수.endDate>
"
<startDate> : 계산된 필드 만들기를 통해 Today() -1 로 했습니다.
<endDate> : 계산된 필드 만들기를 통해 Today() - 90으로 했습니다.

이렇게 되면 태블로 서버 대시보드 상에 User들이 항상 최근 90일을 볼 수 있고, 너무 길지 않아서 속도도 유지가 되었습니다. 단 어떤 유저는 90일 이상을 보고 싶어할 수 있어서 혹은 다른 날짜 구간을 보고 싶을 수 있어서, 그때 startDate과 endDate을 바꾸면 다시 쿼리가 돌아가서 보여지는 방식이고 싶었습니다. 그런데 지금 날짜를 바꾸어도 쿼리가 다시 돌지는 않아서요 ㅎ

0

VizLab님의 프로필 이미지
VizLab
지식공유자

안녕하세요 VizLab 입니다

 

주신 질문은 제시된 상황 설명만으로는 정확한 답변을 드리기 어렵습니다. 다음 몇 가지 상황에 대한 부연 설명이 필요합니다

 

1) 매개변수 두 개를 활용하여 아마 TF 필드를 만드셨을 것으로 생각되는데, 이 TF 필드가 데이터 원본 필터로 설정되어 있는 것인가요?

 

2) 데이터 원본의 연결 방식이 LIVE 연결인가요? EXTRACT 연결인가요?

 

3) 사용중인 DB의 종류는 무엇인가요? (예: MySQL, MS-SQL SERVER ...)