Tableau
Tableau
JDBC를 사용해 Tableau에서 Pinot에 연결하는 방법을 자세히 설명해요.
Tableau는 엔터프라이즈 비즈니스 인텔리전스를 위한 인기 있는 데이터 시각화 도구예요. 이 섹션에서는 Pinot의 JDBC 클라이언트를 사용해 Tableau Desktop에서 실시간 또는 오프라인 테이블을 연결하고 쿼리하는 방법을 다룰 거예요.
출처: 문서
본문
소스에서 Pinot JDBC 클라이언트 빌드
Pinot 오픈소스 배포의 일부로, 소스 코드에서 빌드해야 하고 아직 바이너리로 제공되지 않는 JDBC 클라이언트를 제공해요. 가까운 시일 내에 JDBC 클라이언트를 바이너리로 지원을 확장할 계획이에요. 이 섹션에서는 소스에서 Pinot 프로젝트를 빌드하고 Tableau Desktop에서 Pinot에 연결하는 데 필요한 바이너리를 찾는 방법을 살펴볼 거예요.
GitHub에서 Pinot 클론
첫 번째 단계는 GitHub에서 Apache Pinot를 클론하는 것으로, git 저장소에서 가장 최근 Pinot 스냅샷을 받아와요. 터미널에서 공식 Apache Pinot 저장소를 로컬 디스크에 클론하세요.
$ git clone https://github.com/apache/pinot.git
Maven으로 Pinot 빌드
git으로 Pinot 소스를 클론한 후 Apache Maven으로 프로젝트를 빌드해야 해요.
Apache Pinot의 Java 바이너리를 빌드하려면 JDK 11+와 최신 버전의 Apache Maven이 설치되어 있어야 해요.
이제 터미널에서 클론된 Apache Pinot 소스 코드를 포함하는 최상위 폴더로 디렉토리를 변경하세요. 이제 소스에서 Pinot를 빌드하려면 다음 명령을 실행하세요.
$ mvn clean install -DskipTests -Pbin-dist
올바른 사전 요구 사항이 설치되어 있다면 빌드는 머신 리소스에 따라 5-10분 내에 성공적으로 완료돼요. 빌드가 완료되면 Maven이 로컬 머신에 필요한 바이너리를 설치했을 거예요.
로컬 Maven 저장소 찾기
로컬 머신에는 m2라는 Maven 저장소가 있으며, 여기에는 소스에서 빌드되거나 호스트된 Maven 저장소에서 클론된 Java 바이너리 캐시가 있어요. 이 디렉토리를 찾으려면 터미널에서 다음 명령을 실행하세요.
mvn help:evaluate -Dexpression=settings.localRepository
이 명령을 실행하면 다음과 유사한 출력이 보여야 해요.
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------< org.apache.maven:standalone-pom >-------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] --- maven-help-plugin:3.2.0:evaluate (default-cli) @ standalone-pom ---
[INFO] No artifact parameter specified, using 'org.apache.maven:standalone-pom:pom:1' as project.
[INFO]
/Users/user/.m2/repository
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.698 s
[INFO] Finished at: 2021-11-09T12:50:48-05:00
[INFO] ------------------------------------------------------------------------
위 출력의 10번째 줄에서 macOS 사용자의 로컬 Maven 저장소 예시 폴더 위치를 볼 수 있어요. 이 안내에서 사용할 폴더 위치는 /Users/user/.m2/repository예요.
Windows 사용자의 Maven 저장소 폴더 위치는 다르겠지만, 두 운영 체제에서
m2저장소의 바이너리와 폴더 구조는 동일해요.
Tableau Desktop용 Pinot JDBC 설치
Tableau가 Pinot에 연결할 수 있게 하는 데 필요한 바이너리는 세 개예요. 각 바이너리는 소스에서 Pinot를 빌드한 머신의 m2 저장소 안에 있어요. 이전 단계를 완료한 후 m2 저장소의 폴더 위치(이 예시에서는 /Users/user/.m2/repository)를 사용해 해당 바이너리를 찾아야 해요.
바이너리를 복사할 디렉토리는 운영 체제에 따라 달라져요. Tableau Desktop 설치 시 macOS인지 Windows인지에 따라 달라지는 Drivers 디렉토리가 생성돼요. 각 운영 체제의 폴더 위치는 아래에 나열돼 있어요.
macOS: ~/Library/Tableau/Drivers
Windows: C:\Program Files\Tableau\Drivers
macOS에서 Tableau Desktop용 Pinot 설치
이전 섹션에서 macOS의 Tableau Desktop 설치에 대한 Driver 디렉토리를 찾았어요. 이제 세 개의 Pinot 바이너리를 각 m2 저장소 위치에서 Tableau의 Drivers 디렉토리로 복사해 봐요. 아래 명령의 출력은 Maven에서 설치한 가장 최근 Pinot 스냅샷 버전을 환경 변수로 식별하고 저장할 거예요.
PINOT_VERSION=$(ls -td ~/.m2/repository/org/apache/pinot/pinot/*/ | head -1 | grep -o "\d*\.\d*\.\d*-SNAPSHOT")
Maven으로 Pinot가 머신에 올바르게 설치됐는지 확인하려면 다음 명령을 실행하세요.
echo $PINOT_VERSION
명령 출력은 #.#.#-SNAPSHOT처럼 보여야 해요. 그렇다면 같은 터미널 창에서 다음 명령을 실행해 Pinot 바이너리를 Tableau Desktop에 설치할 수 있어요.
cd ~/Library/Tableau/Drivers
cp ~/.m2/repository/com/ning/async-http-client/1.9.21/async-http-client-1.9.21.jar .
cp ~/.m2/repository/org/apache/pinot/pinot-jdbc-shaded/$PINOT_VERSION/pinot-jdbc-shaded-$PINOT_VERSION.jar .
또한 calcite-core를 다운로드해 ~/Library/Tableau/Drivers 디렉토리에도 복사해야 해요.
이제 Drivers 디렉토리에 바이너리가 있는지 확인하세요.
ls ~/Library/Tableau/Drivers
...
async-http-client-1.9.21.jar calcite-core-1.34.0.jar
pinot-jdbc-shaded-0.13.0-SNAPSHOT.jar
이전 스니펫의 첫 번째 줄 명령 출력이 여기에 나열된 JAR 파일과 일치하면 Tableau Desktop용 Pinot 커넥터를 성공적으로 설치한 거예요.
Windows에서 Tableau Desktop용 Pinot 설치
프로세스는 위 macOS 단계를 그대로 따르며 PowerShell 창을 열고 다음 명령을 실행해요.
1. Maven이 설치한 Pinot 스냅샷 버전 찾기
$PINOT_VERSION = (Get-ChildItem "$env:USERPROFILE\.m2\repository\org\apache\pinot\pinot" -Directory |
Sort-Object LastWriteTime -Descending |
Select-Object -First 1).Name
Write-Host $PINOT_VERSION
출력은 1.5.0-SNAPSHOT(또는 빌드한 버전)처럼 보여야 해요.
2. Tableau Drivers 폴더에 JDBC 바이너리 복사
$M2 = "$env:USERPROFILE\.m2\repository"
$TABLEAU_DRIVERS = "C:\Program Files\Tableau\Drivers"
Copy-Item "$M2\com\ning\async-http-client\1.9.21\async-http-client-1.9.21.jar" $TABLEAU_DRIVERS
Copy-Item "$M2\org\apache\pinot\pinot-jdbc-shaded\$PINOT_VERSION\pinot-jdbc-shaded-$PINOT_VERSION.jar" $TABLEAU_DRIVERS
3. calcite-core 다운로드
calcite-core-1.34.0.jar를 다운로드해 C:\Program Files\Tableau\Drivers에 복사하세요.
4. 드라이버 확인
Get-ChildItem "C:\Program Files\Tableau\Drivers" -Filter "*.jar"
예상 출력:
async-http-client-1.9.21.jar
calcite-core-1.34.0.jar
pinot-jdbc-shaded-1.5.0-SNAPSHOT.jar
세 JAR 모두 있으면 Windows에서 Tableau Desktop용 Pinot 커넥터를 성공적으로 설치한 거예요. Tableau Desktop을 다시 시작하고 Tableau Desktop에서 Pinot에 연결의 단계를 따르세요.
Tableau Desktop에서 Pinot 연결
이제 Pinot JDBC 커넥터 바이너리를 Tableau Desktop 설치에 설치했으므로 Pinot를 데이터 소스로 사용할 수 있어요. 이전 단계에서 Drivers 디렉토리에 복사한 Pinot JDBC 커넥터 파일을 찾아 사용할 수 있도록 머신에서 Tableau를 다시 시작해야 해요.
Tableau Desktop이 다시 시작되면 다음 단계로 Pinot에 새 JDBC 연결을 만들 수 있어요.
File > New메뉴 옵션으로 새 Tableau Book 생성- 새 Book에서
Data > New Data Source메뉴 옵션 사용 - 결과 창에서
Other Databases (JDBC)옵션 찾기 - Pinot JDBC 연결 URL(
jdbc:pinot://localhost:9000) 추가 - dialect로
SQL92선택 Sign In클릭
이전 단계의 결과는 Pinot에 대한 성공적인 연결이 돼야 해요. 연결이 실패하면 결과 오류 메시지를 기록하세요. Pinot에 연결할 수 없다면 머신에서 Pinot controller나 broker에 네트워크 접근이 없을 가능성이 높아요. Tableau가 Pinot를 쿼리하려면 controller(기본값 localhost:9000)와 broker(기본값 localhost:8000) 둘 다 머신에서 접근 가능한지 확인해야 해요.
다른 오류 메시지나 연결 문제가 있으면 커뮤니티 Slack에 연락해 Troubleshooting 채널에 문제를 보고하세요.