편집자 주: 오늘 게시물의 필자는 Tableau 전문가이며, Teknion Data Solutions의 수석 컨설턴트이자 VizPainter 블로그의 작성자인 Joshua Milligan입니다. Joshua는 Tableau Prep(이전의 Project Maestro)의 시험판 프로그램에 참여했습니다.

저의 경력은 Teknion Data Solutions의 소프트웨어 개발자로 시작되었습니다. 몇 년 후에 데이터 모델링과 ETL(추출, 변환 및 로드) 작업을 하는 비즈니스 인텔리전스 부서로 옮겼습니다. 데이터로 작업하는 것을 좋아했지만, ETL 패키지를 구축하는 프로세스의 많은 부분이 상당히 지루하고 시간이 오래 걸린다는 것을 알게 되었습니다. 무엇보다도 테스트는 큰 문제였습니다. 개발에 많은 시간을 들이고, 프로세스 실행에까지 시간을 들인 후에야 값의 절반이 누락되었거나 잘못되었다는 것을 발견할 수도 있었습니다. 그러면, 장애 지점까지 추적해 돌아가서 운이 좋은 경우 문제점을 수정하고 다시 테스트해야 했습니다. 오해는 말아주십시오. 저는 고객을 지원하는 데 보람을 느꼈고 그렇게 힘든 직업은 아니었다고 생각됩니다. 그러다가 제 인생을 바꾼 무언가를 발견했습니다.

그것은 Tableau였습니다.

Tableau는 마술이었습니다. 사용하기 원활하고, 투명하며 직관적인 응용 프로그램이었습니다. 데이터 필드를 끌어 놓는 작업을 통해 즉석에서 시각적 결과를 볼 수 있었습니다. 질문을 하면 즉각적인 답변을 업을 수 있고, 그 답변은 더 심도 있는 새로운 질문을 제기하게 되었습니다. 물론, 그 질문에 대한 답도 신속히 얻을 수 있었습니다. Tableau는 저의 삶만 바꾼 것이 아니라 고객에게 더 좋은 서비스를 제공하고, 심도 있는 인사이트를 훨씬 더 신속하게 끌어낼 수 있도록 해주었습니다.

그러나, Tableau가 데이터 구조화에 대한 필요성은 완전히 없애주진 않았습니다. 어떤 유형의 분석은 거기에 맞는 특정 데이터 구조가 필요합니다. "지금부터 다른 팀원들에게 그 구조를 구축하라고 해야지." 라고 생각했었습니다. Tableau와 시각적 분석에 매료되어 다시는 Tableau의 데이터 연결 화면 밖에서 데이터 구조화 같은 작업에는 많은 시간을 소요하지 않아야겠다라고 생각한 것 같습니다.

Tableau의 마술

비밀을 하나 말씀드리자면, Tableau의 마술은 기능이 아닙니다. 저도 다른 사람처럼 Tableau의 최신 버전과 최신 기능을 고대하지만 기능이 Tableau의 마술은 아닙니다. Tableau의 마술은 모든 기능이 완벽한 하나의 패러다임 안에서 함께 작동한다는 점입니다. 그 마술을 한 마디로 말한다면 흐름입니다!

흐름이란 생각의 흐름을 방해하지 않고, 작업이나 질문에 집중하거나 솔루션 또는 답을 찾기 위해 작업하는 것을 말합니다. 그런 단계를 완수하기 위해 Tableau 밖에서 작업을 수행할 필요가 없습니다. 작업 간에 너무 오래 기다리는 바람에 무엇을 하고 있었는지 잊어버리는 일도 없습니다. 대신, 즉각적인 피드백을 받고, 다양한 옵션으로 절차를 반복하는 것이 빠르고 쉬워졌습니다.

비밀이 하나 더 있습니다. Tableau Prep 역시도 동일한 마술을 가지고 있다는 것입니다.

Tableau Prep 패러다임 발견

저는 Tableau Prep(이전의 Project Maestro)을 첫번째 알파 버전부터 사용했습니다. 그 당시에는, 기본 엔진은 준비되어 있었지만 인터페이스는 제 모습을 갖추지 못했었습니다. 지금은 다르겠지만, 개발 초기 단계의 UI를 통해 Tableau Prep의 패러다임을 제대로 파악하는 데는 시간이 걸렸습니다. 그리고 나서, 얼마간의 시행착오를 거친 후에, 모든 것이 갑자기 맞아떨어졌습니다.

바로 그 시점에, 제가 전에 Tableau에 매혹되었던 것처럼 Tableau Prep에도 빠져들었습니다. 다른 Tableau 제품과 마찬가지로 Tableau Prep도 손쉽게 데이터를 처리할 수 있습니다. Tableau Prep에는 다음과 같은 흐름이 있습니다.

  • 끌어 놓기와 마우스 클릭으로 데이터를 연결, 정리, 조인 및 변환합니다.
  • 눈 앞에서 데이터 변환이 실시간으로 일어나는 것을 볼 수 있습니다. 잘못된 가정으로 실패한 조인을 찾느라 기다리는 데 더 이상 시간을 허비하지 않습니다.
  • 이전 단계로 돌아가 그 시점에서 구조가 어떤 형태였는지 즉시 볼 수 있습니다.
  • 데이터 흐름을 수정하고 다양한 옵션을 반복적으로 시도해보는 것도 아주 간단합니다.
  • 전에는 놓쳤을 데이터 문제도 쉽게 발견할 수 있습니다. "이런! 행 후반부에 null 값이 있군요. 조인하기 전에 수정해야겠어요..."
  • 찾은 문제를 바로 수정하고 그 수정 결과를 볼 수 있습니다.
  • 한 번에 하나의 임무에 집중할 수 있습니다. 최종 목표는 염두에 둔 채로, 다음 문제로 넘어 가기 전에 먼저 수정해야 할 데이터 문제에 집중할 수 있습니다. 또한, 다음으로 넘어가기 전에 그 문제를 해결했다는 것을 알 수 있습니다.
  • 흐름의 모든 단계에서, 필요에 따라 Tableau의 작업 내용을 출력하여 시각화하는 것을 통해 데이터를 한층 더 깊게 이해할 수 있습니다.

Tableau Prep과 함께 이륙

Tableau Prep의 패러다임을 발견한 후, 제가 직면하고 있던 최근 실제 데이터 문제를 Tableau Prep을 사용하여 처리해보고 싶었습니다.

직원의 항공 여행 데이터를 SQL Server에 갖고 있던 고객의 경우가 있었습니다. 그런데 한 항공사가 다른 예약 시스템을 사용해서 정기적인 파일이 한 디렉터리에 덤프되었습니다. 또한, 고객은 Tableau에서 멋진 비행 경로 맵 중 한 가지를 보고 싶어했습니다. 그것은 좋은 생각이었습니다. Tableau의 경로 선반을 사용하여 시각화하려면, 지오코딩된 데이터의 추가 원본이 필요하고, 출발지와 도착지를 별도의 레코드로 분리하기 위해 데이터를 재구조화해야 한다는 것을 제가 알고 있었다는 점만 빼면 말입니다.

흐름을 만드는 것은 Tableau를 사용하여 다른 작업을 하는 것과 마찬가지로 정말 재미있었습니다. 실제로 너무 즐겁게 작업을 해서, 비슷한 흐름을 만들었던 경험을 여기에 공유해야겠다고 생각했습니다.

데이터를 가져온 다음 한 번에 한 단계씩 집중할 수 있었습니다.

  • SQL Server 데이터를 플랫 파일의 와일드카드 Union으로 통합(Union)합니다.
  • 일치하지 않는 데이터는 정리하고 관련 없는 필드는 제거합니다.
  • Person 테이블에서 여행자를 조회합니다.
  • 여정을 출발지와 도착지로 분리해 냅니다.
  • 데이터를 피벗하여 각각의 출발지와 도착지에 대해 하나의 행만 남깁니다.
  • 또 다른 데이터 원본으로부터 지오코딩을 조회합니다.
  • 마지막 정리를 합니다.
  • 최종 데이터 구조를 내보냅니다. 여기서는 Hyper 추출을 선택했지만, .tde, .csv 형식으로 내보낼 수도 있고, Tableau Server에 게시할 수도 있습니다.

흐름을 통해 매우 유용한 데이터 집합이 Tableau에 준비되었습니다. 이 데이터 집합을 통해 직원의 항공 여행을 분석하여, 비용 절감, 여행 패턴, 항공사, 구매 시점에 대한 고객의 의사 결정을 지원할 수 있게 되었습니다.

Tableau Prep을 실무에 사용하기 시작하게 되어 기쁩니다. 새 릴리스마다 어떤 새로운 기능이 출시될지 고대하고 있지만, Tableau Prep에서 마술은 이미 시작되었습니다.

Tableau Prep에 대해 알아야 할 모든 것

다음 내용도 확인해보는 것이 좋습니다.

블로그 구독