9.0 미리 보기: 쿼리 성능 개선

Tableau는 사용자가 결과를 더 신속하게 받아보고 더 심도 있는 질문을 던질 수 있도록 Tableau 버전 9.0 전반에 걸쳐 성능을 향상하는 데 투자를 집중했습니다. 병렬 쿼리에서 쿼리 융합에 이르는 다양한 기능과 한층 개선된 데이터 엔진은 사용자가 데이터에 집중하고 데이터가 제공하는 정보를 창의적으로 살펴볼 수 있도록 지원합니다.

Tableau 9.0을 사용하면 쿼리가 실행되거나 페이지가 로드될 때까지 오랫동안 기다릴 필요 없이 바로 질문을 던질 수 있어 작업의 흐름을 방해하지 않고 분석을 수행할 수 있습니다. 이는 다시 말해 사용자가 아무런 방해 없이 데이터에 더 집중하고 데이터가 제공하는 정보를 창의적으로 살펴볼 수 있다는 것을 의미합니다. 사용자가 더 신속하게 결과를 받아보고 더 심도 있는 질문을 던질 수 있도록 Tableau가 Tableau 버전 9.0 전반에 걸쳐 성능을 향상하는 데 투자를 집중한 까닭도 바로 이 때문입니다.

Tableau 9.0의 다양한 개선사항 중 몇 가지 예는 다음과 같습니다. 각 예는 시중에서 판매하는 표준 쿼드코어 노트북을 사용했을 때 Tableau의 개선사항이 전반적인 성능에 미치는 영향을 보여줍니다. 물론, 실질적인 성능은 데이터량, 쿼리의 유형, 사용 중인 초기 데이터베이스에 따라 달라질 수 있습니다. 다음의 예는 예시에 불과하며 모든 데이터 집합에서 성능이 아래의 예시와 같이 향상됨을 의미하는 것은 아님을 유의하시기 바랍니다.

개선된 데이터 엔진
Tableau는 획기적인 성능 혁신의 역사를 자랑하며 이러한 특성은 Tableau 6.0에서 선보인 Tableau의 데이터 엔진에서 두드러지게 나타나고 있습니다. 데이터 엔진은 쿼리를 더욱 신속하게 실행할 수 있도록 고안된 인메모리 분석 데이터베이스입니다.

Tableau 9.0의 개선된 데이터 엔진은 기존 하드웨어의 활용률을 극대화할 수 있도록 고안된 기능을 통해 안 그래도 빠른 분석 데이터 엔진을 한층 더 신속하게 구동할 수 있도록 해줍니다. 총 1억 7,300만 행의 데이터를 활용한 아래 예를 살펴보면 성능이 10배나 향상된 것을 알 수 있습니다.

예제: 분기별 평균 택시 팁에 대한 비주얼라이제이션



이 비주얼라이제이션은 총 1억 7,300만 행에 달하는 2013년도 택시 요금 데이터가 포함된 Tableau 데이터 추출 파일을 활용하고 있습니다. 이 뷰에 대한 쿼리는 평균 팁의 액수를 분기별로 가져온 다음 연말이 가까워질수록 택시 이용 고객의 팁이 후해진다는 것을 보여줍니다.

결과: 10배에 달하는 개선효과



보시다시피 Tableau 8.3에서 이 워크시트를 열 경우 이 정도 크기의 데이터 집합에서 쿼리를 실행하는 데 소요되는 시간은 약 7초로 매우 빠른 수준입니다. 하지만 Tableau 9.0에서 동일한 워크시트를 열 경우 동일한 쿼리를 실행하는 데에는 불과 1초가 채 걸리지 않습니다. Tableau의 데이터 엔진이 개선됨에 따라 성능도 10배나 향상된 것입니다. 이는 다시 말해 사용자가 Tableau의 데이터 엔진을 통해 한층 원활하게 데이터를 살펴볼 수 있게 되었다는 것을 의미합니다.

병렬 쿼리
Tableau 9.0은 원본 데이터베이스의 뛰어난 역량을 활용하여 동일한 시간에 더 많은 쿼리를 실행할 수 있도록 해줍니다. 이 새로운 '병렬 쿼리' 기능은 Tableau Desktop 및 Server의 대시보드 성능을 한층 더 향상시킵니다. 총 1억 5,700만 행의 데이터를 활용한 아래 예를 살펴보면 성능이 9배나 향상된 것을 알 수 있습니다.

예제: 항공편 대시보드



이 대시보드는 Tableau 데이터 추출 파일에 저장된 1억 5,700만 행의 데이터를 활용하여 1988년도부터 2013년도에 걸친 항공사별 항공편 데이터를 보여줍니다. 이 대시보드를 로드하면 상위 3개 항공사의 항공편 수, 시간 대비 항공편 수, 국가를 기준으로 한 항공사별 항공편의 비율을 포함한 다양한 쿼리가 실행됩니다.

결과: 9배에 달하는 개선효과



Tableau 9.0에서는 각 쿼리가 더 빠르게 실행될 뿐만 아니라 모든 개별 쿼리가 동시에 실행되어 전반적인 성능을 크게 개선해줍니다. Tableau 8.3에서 이 대시보드의 집계 로드 시간(첫 쿼리가 시작된 후 마지막 쿼리가 종료될 때까지의 시간)은 9.5초입니다. 하지만 각 쿼리 실행 시간이 개선되고 개별 쿼리가 동시에 실행되는 Tableau 9.0에서 이 대시보드의 집계 로드 시간은 1초가 조금 넘는 것으로 나타납니다. 이는 다시 말해 대시보드 쿼리를 로드하는 성능이 9배나 향상되었다는 것을 의미합니다.

쿼리 융합
쿼리의 속도만큼이나 중요한 것이 바로 쿼리의 개수입니다. Tableau 9.0은 쿼리 융합이라는 새로운 데이터베이스 연결 기술을 통해 대시보드의 모든 쿼리를 확인하고 이를 단순화하여 쿼리의 개수를 줄여줍니다. 이렇게 하면 데이터베이스에서 처리해야 하는 작업이 줄어들어 응답 시간을 단축할 수 있습니다. Amazon Redshift 데이터베이스를 활용한 아래의 예를 살펴보면 성능이 2배나 향상된 것을 알 수 있습니다.

예제: 시간별 택시 데이터



이 비주얼라이제이션에서 활용하는 데이터 집합은 첫 번째 예에서 사용했던 1억 7,300만 행의 택시 데이터 집합과 동일하나 데이터가 Amazon Redshift에 저장되었다는 점에서 다릅니다. 시간별 택시 이용객 수의 합계와 시간별 평균 팁, 이렇게 두 개의 워크시트가 하나의 대시보드에 결합되어 있는 이 예는 오전 4시~5시 사이의 흥미로운 추세를 보여줍니다. 이 두 쿼리의 세부 수준은 동일하므로 하나의 쿼리로 결합할 수 있습니다.

결과: 2배에 달하는 개선효과



이 예에서 쿼리 병합 기능은 두 쿼리의 세부 수준이 동일하다는 것을 인지하고 한 쿼리에서 집계한 데이터를 다른 쿼리로 가져옵니다. 위 차트를 살펴보면 Tableau 8.3에서는 두 개의 쿼리로 처리해야 했던 작업을 Tableau 9.0에서는 하나의 쿼리로 처리할 수 있음을 알 수 있습니다. 이 예에서 쿼리 병합 기능은 집계 쿼리 실행 시간을 3.7초에서 1.7초로 단축하며 약 2배에 가까운 개선효과를 보여줍니다.

외부 쿼리 캐싱
분석을 시작할 때 쿼리 자체를 실행할 필요가 없고 다양한 도구로 인해 작업이 방해받지 않는 경우를 상상해 보세요. Tableau는 처음 통합 문서를 로드할 때 데이터 원본에 쿼리를 보내 비주얼라이제이션을 작성하는 데 필요한 데이터를 가져옵니다. 그렇다면 두 번째로 통합 문서를 로드할 때에는 어떨까요? 추출 기반 통합 문서와 같이 데이터가 변경되지 않은 경우에도 데이터 원본에 쿼리를 보낼 필요가 있을까요?

Tableau 9.0은 Desktop과 Server에서 모두 쿼리 캐시를 통합 문서의 일부로 저장하여 가능한 경우 통합 문서를 거의 즉시 로드할 수 있도록 해줍니다. 이미 결과가 로드되어 있으므로 답을 구하기 위해 쿼리를 다시 보낼 필요가 없으며 새로고침 한 번이면 캐시를 교체할 수 있습니다.

이전에 로컬에서 열었거나 Server에서 이미 확인한 통합 문서를 바로 다시 열어 즉각적으로 로드하는 경우를 상상해 보세요. 쿼리 성능이 아무리 향상되었다고 하더라도 쿼리 자체를 실행할 필요가 없는 경우보다 작업을 빨리 처리하기는 어려운 일입니다. 총 1억 5,700만 행의 데이터를 활용하는 아래 예를 살펴보면 성능이 50배나 향상된 것을 알 수 있습니다.

예제: 항공편 대시보드



이 예는 쿼리 캐싱을 직접 보여주기 위해 병렬 쿼리 기능을 설명할 때 사용했던 두 번째 예의 대시보드를 그대로 사용하고 있으며 두 번째 예와 동일하게 총 1억 5,700만 행에 달하는 Tableau 데이터 추출 파일의 항공편 데이터가 표시되어 있습니다. 단, 이 예는 대시보드를 두 번째로 연다는 점에서 다릅니다.

결과: 50배에 달하는 개선효과



이 예의 경우 Tableau 버전 9.0의 외부 쿼리 캐싱 기능이 이 대시보드를 처음 열 때의 쿼리 결과를 저장한 상태이므로 캐시를 가져오기 위한 간단한 쿼리를 한 번만 실행하면 대시보드를 열 수 있습니다. 이러한 점을 감안하여 살펴보면 Tableau 8.3의 경우 통합 문서를 처음 열 때와 두 번째 열 때 모두 약 10초의 시간이 소요되는 데 반해, Tableau 9.0의 경우 통합 문서를 다시 여는 데 소요되는 시간은 0.2초에 불과합니다. 따라서 통합 문서를 처음 열 때 걸렸던 시간인 1.1초와 비교할 경우 속도가 약 5배 개선되었으며 Tableau 8.3에서 통합 문서를 두 번째로 열 때 걸렸던 시간과 비교할 경우 속도가 약 50배 개선된 것을 알 수 있습니다.

지금까지 소개한 예는 Tableau 9.0에 도입될 예정인 새로운 성능 개선 기능 중 극히 일부에 불과합니다. 이 기능은 상호 간에 연동되어 기존에는 상상할 수 없었던 뛰어난 성능을 사용자에게 제공합니다. Tableau 9.0에서는 추출 시 쿼리를 더 빠르게 실행하고 쿼리를 병렬로 실행하여 로드 시간을 단축할 수 있을 뿐만 아니라 실행해야 할 쿼리 수도 더 적습니다. 또한 캐싱을 활용하면 경우에 따라 뷰에서 쿼리를 하나도 실행할 필요가 없습니다. Tableau 9.0은 더욱 빨라진 속도와 데이터에 더욱 집중할 수 있도록 도와주는 다양한 파이프라인 기능을 제공합니다.

자세한 내용이 필요하십니까?
Tableau 9.0 블로그 시리즈를 확인해 보십시오.