Tableau 데이터 시각화 도구

Tableau 데이터 시각화 도구

Tableau는 널리 쓰이는 상용 데이터 시각화 도구예요. 기본 제공 커넥터가 많을 뿐 아니라, ODBC·JDBC 커넥터를 통한 범용 데이터베이스 연결도 지원합니다.

Tableau에는 주요 버전이 두 가지 있어요. Desktop과 Online(Server)이죠.

  • Desktop에서는 DuckDB 데이터베이스에 연결하는 방식이 Python처럼 임베디드 환경에서 작업하는 것과 비슷해요.
  • Online은 DuckDB가 인프로세스(in-process)로 동작하므로, 데이터가 서버 자체에 있거나 서버에서 접근 가능한 원격 데이터 버킷에 있어야 합니다.

데이터베이스 생성 (Database Creation)

DuckDB 데이터베이스 파일을 쓸 때는 실제로 데이터셋을 DuckDB 테이블로 임포트할 필요가 없어요. 데이터의 뷰만 만들어 두면 충분합니다. 예를 들어 다음 구문은 현재 DuckDB 코드베이스에 있는 h2oai Parquet 테스트 파일의 뷰를 만들어요.

CREATE VIEW h2oai AS (
    FROM read_parquet('/Users/username/duckdb/data/parquet-testing/h2oai/h2oai_group_small.parquet')
);

주의할 점이 두 가지 있어요. 먼저 로컬 파일은 Tableau 내부에서도 찾을 수 있도록 전체 경로(full path)를 써야 합니다. 그리고 파일을 만드는 데 쓰인 DuckDB 도구(예: Python 모듈, 명령줄)와 같은 릴리스(즉 호환되는 버전)의 드라이버를 사용해야 해요. 데이터베이스 형식이 버전별로 다르기 때문이죠.

JDBC 드라이버 설치 (Installing the JDBC Driver)

Tableau가 제공하는 JDBC 드라이버 설치 문서가 있으니 그대로 따라 하면 됩니다.

Tableau Desktop과 Server 모두 드라이버를 추가하거나 수정할 때마다 반드시 재시작해야 해요.

여기 링크는 Tableau와 호환되는 최신 JDBC 드라이버 버전이에요. 데이터베이스 파일에 연결하려면 해당 파일이 파일 형식이 호환되는 DuckDB 버전으로 만들어졌는지 확인해야 합니다. 또 사용 중인 드라이버 파일 이름이 여러 개 있을 수 있으니 한 버전만 설치돼 있는지도 확인하세요.

JAR 파일 다운로드

  • macOS: ~/Library/Tableau/Drivers/로 복사.
  • Windows: C:\Program Files\Tableau\Drivers로 복사.
  • Linux: /opt/tableau/tableau_driver/jdbc로 복사.

PostgreSQL 방언 사용 (Using the PostgreSQL Dialect)

간단한 작업만 필요하다면 JDBC 드라이버에 직접 연결하면서 Tableau가 제공하는 PostgreSQL 방언을 써 볼 수 있어요.

  1. 여러분의 뷰·데이터를 담은 DuckDB 파일을 만든다.
  2. Tableau를 실행한다.
  3. 연결(Connect) > 서버에 연결(To a Server) > 더 보기(More…)에서 "기타 데이터베이스(JDBC) (Other Databases (JDBC))"를 클릭한다. 연결 대화상자가 열리면 URL에 jdbc:duckdb:/User/username/path/to/database.db를 입력하고, 방언(Dialect)은 PostgreSQL을 선택한다. 나머지 항목은 무시해도 된다.

Tableau PostgreSQL

다만 이 경우 median, percentile 같은 집계 함수는 동작하지 않아요. 데이터 소스 연결을 PostgreSQL 방언과 더 잘 맞추려면 아래에서 설명할 DuckDB taco 커넥터를 사용하는 편이 좋습니다.

Tableau DuckDB 커넥터 설치 (Installing the Tableau DuckDB Connector)

Tableau가 제공하는 PostgreSQL 방언으로 DuckDB JDBC 드라이버와 통신하는 것도 가능하지만, DuckDB Taco 커넥터 사용을 강력히 권장합니다. 이 커넥터는 Tableau 방언 생성기와 함께 완전히 테스트됐고, 제공되는 PostgreSQL 방언보다 더 호환이 잘 됩니다.

커넥터 설치·사용 방법은 저장소에 문서화돼 있지만, 기본적으로는 duckdb_jdbc.taco 파일이 필요합니다. (Tableau 문서와 달리 실제 보안 위험은 Taco 파일의 아주 적은 양의 JavaScript가 아니라 JDBC 드라이버 코드에 있어요.)

Server (Online)

Linux에서는 Taco 파일을 /opt/tableau/connectors로 복사하세요. Windows에서는 C:\Program Files\Tableau\Connectors로 복사하고, 서명 검증을 비활성화하기 위해 다음 명령을 실행합니다.

tsm configuration set -k native_api.disable_verify_connector_plugin_signature -v true
tsm pending-changes apply

마지막 명령은 서버를 새 설정으로 재시작합니다.

macOS

Taco 파일을 /Users/[User]/Documents/My Tableau Repository/Connectors 폴더로 복사하세요. 그다음 터미널에서 서명 검증을 비활성화하는 명령줄 인자와 함께 Tableau Desktop을 실행합니다.

/Applications/Tableau\ Desktop\ ⟨year⟩.⟨quarter⟩.app/Contents/MacOS/Tableau -DDisableVerifyConnectorPluginSignature=true

AppleScript로도 패키징할 수 있어요. 다음 스크립트를 쓰면 됩니다.

do shell script "\"/Applications/Tableau Desktop 2023.2.app/Contents/MacOS/Tableau\" -DDisableVerifyConnectorPluginSignature=true"
quit

이 파일은 Script Editor(/Applications/Utilities에 있음)로 만들어 패키지 애플리케이션으로 저장하면 됩니다.

tableau-applescript

이후 더블클릭만으로 Tableau를 실행할 수 있어요. 업그레이드할 때는 스크립트의 애플리케이션 이름을 바꿔줘야 합니다.

Windows Desktop

Taco 파일을 C:\Users\[Windows User]\Documents\My Tableau Repository\Connectors 디렉토리로 복사하세요. 그다음 셸에서 -DDisableVerifyConnectorPluginSignature=true 인자와 함께 Tableau Desktop을 실행해 서명 검증을 비활성화합니다.

출력 (Output)

연결이 끝나면 데이터에 대해 자유롭게 쿼리를 실행할 수 있어요! 다음은 Parquet 테스트 파일로 실행한 첫 번째 H2O.ai 벤치마크 쿼리의 결과입니다.

tableau-parquet

더 알아보기 (Learn more)