Trino
Trino
Full SQL로 임시 쿼리를 위해 Trino와 통합해요.
사전 구축된 Trino Pinot 커넥터가 있는 Trino 이미지를 시작하세요.
출처: 문서
본문
Kubernetes
1. Pinot 설치
아래 명령을 실행해 HelmCharts로 Pinot를 설치하세요.
helm repo add pinot https://raw.githubusercontent.com/apache/pinot/master/helm
kubectl create ns pinot-quickstart
helm install pinot pinot/pinot -n pinot-quickstart --set cluster.name=pinot
pinot 바이너리 디렉토리에 있다면 아래 명령으로 예시 테이블을 만들 수 있어요.
PR https://github.com/trinodb/trino/pull/7630이 머지되기 전에는 테이블 conf/schema 및 ingestion job spec에 대해 Pinot 테이블 이름을 모두 소문자로 변경하세요.
bin/pinot-admin.sh BootstrapTable -dir examples/batch/airlineStats
2. Trino 설치
아래 명령을 실행해 Trino Helm 저장소를 추가하고 기본 helm 구성 파일을 가져오세요.
helm repo add trino https://trinodb.github.io/charts/
helm inspect values trino/trino > /tmp/trino.yaml
/tmp/trino.yaml 파일을 편집해 pinot 카탈로그를 추가하세요. 여기에서 pinot가 pinot-quickstart 네임스페이스에 배포되므로 controller URL은 pinot-controller.pinot-quickstart:9000이에요.
additionalCatalogs:
pinot: |
connector.name=pinot
pinot.controller-urls=pinot-controller.pinot-quickstart:9000
구성 파일로 Trino HelmCharts를 설치하세요.
helm create ns trino-quickstart
helm install my-trino trino/trino --version 0.2.0 --values /tmp/trino.yaml -n trino-quickstart
3. Trino 연결
Trino 클라이언트를 다운로드하세요.
curl -L https://repo1.maven.org/maven2/io/trino/trino-cli/363/trino-cli-363-executable.jar -o /tmp/trino && chmod +x /tmp/trino
아직 노출되지 않았다면 Trino 서비스를 로컬로 포트 포워딩하세요.
export POD_NAME=$(kubectl get pods --namespace trino-quickstart -l "app=trino,release=my-trino,component=coordinator" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl port-forward $POD_NAME 8080:8080 --namespace trino-quickstart
Trino 콘솔 클라이언트로 Trino 서비스에 연결하세요.
/tmp/trino --server localhost:8080 --catalog pinot --schema default
그런 다음 자신만의 쿼리를 작성하세요.
trino:default> show tables;
Table
---------------
airlinestats
baseballstats
(2 rows)
Query 20211022_214646_00003_gmppt, FINISHED, 3 nodes
Splits: 36 total, 36 done (100.00%)
0.44 [2 rows, 59B] [4 rows/s, 133B/s]
trino:default> select count(*) as flights_from_ca_to_ny from airlinestats where originstate='CA' and deststate='NY';
flights_from_ca_to_ny
-----------------------
68
(1 row)
Query 20211022_215024_00007_gmppt, FINISHED, 1 node
Splits: 17 total, 17 done (100.00%)
2.14 [1 rows, 9B] [0 rows/s, 4B/s]
trino:default> select * from airlinestats limit 1;
flightnum | origin | quarter | ...
-----------+--------+---------+-------------------
24 | SFO | 1 | ...
(1 row)
Query 20211022_215050_00008_gmppt, FINISHED, 2 nodes
Splits: 48 total, 19 done (39.58%)
1.90 [2 rows, 1.65KB] [1 rows/s, 887B/s]
한편 Trino Cluster UI에 접근해 쿼리 통계를 볼 수 있어요.
(고지: Trino는 Apache Software Foundation의 일부가 아닌 서드파티 소프트웨어예요.)