Spark SQL
여러 저장소를 섞거나, 수억 행을 훑어야 할 때 씁니다. Aster TSDB · PostgreSQL · Iceberg(RustFS) 를 한 SQL 로 조인할 수 있습니다.
| 항목 | 값 |
|---|---|
| SQL 게이트웨이 | Kyuubi — 10000 (thrift) · 10099 (웹 UI) |
| Spark 마스터 | 7077, 마스터 UI 4440 |
| 메타스토어 | Hive Metastore 9083 |
| Iceberg 카탈로그 | Gravitino REST 19001 |
| 계정 | PP_SPARK_USER / PP_SPARK_PASSWORD |
시작 비용이 있습니다
세션 하나를 여는 데 수 초가 걸립니다. 짧은 조회를 여기로 보내지 마십시오 — 그런 것은 CQL 이나 PostgreSQL 이 훨씬 빠릅니다.
붙기
beeline (Kyuubi 경유 — 권장)
docker exec -it plantpulse-datalake bash -c \
'/opt/kopens/plantpulse-platform/plantpulse-analytics/spark/bin/beeline \
-u "jdbc:hive2://127.0.0.1:10000/default" \
-n "$PP_SPARK_USER" -p "$PP_SPARK_PASSWORD"'
세션 격리와 큐잉이 붙습니다. DBeaver · Tableau 같은 외부 SQL 클라이언트도 같은 JDBC URL 로 붙습니다.
spark-sql (직접 — 디버그용)
docker exec -it plantpulse-datalake \
/opt/kopens/plantpulse-platform/plantpulse-analytics/spark/bin/spark-sql \
--master spark://127.0.0.1:7077
예제
카탈로그와 테이블 보기
SHOW CATALOGS;
SHOW DATABASES;
SHOW TABLES IN default;
DESCRIBE TABLE default.tm_tag_point;
대량 집계 — CQL 로는 못 하는 것
파티션 키 없이 전체를 훑는 집계는 여기서 합니다.
SELECT tag_id, count(*) AS points, avg(value) AS avg_value
FROM tm_tag_point
WHERE timestamp >= '2026-07-01' AND timestamp < '2026-08-01'
GROUP BY tag_id
ORDER BY points DESC
LIMIT 50;
저장소를 섞어 조인
시계열(Aster TSDB)과 설비 메타데이터(PostgreSQL)를 한 번에 봅니다.
SELECT e.equipment_name,
count(*) AS points,
avg(p.value) AS avg_value
FROM tm_tag_point p
JOIN tm_equipment e ON e.equipment_id = p.equipment_id
WHERE p.timestamp >= '2026-07-01' AND p.timestamp < '2026-08-01'
GROUP BY e.equipment_name
ORDER BY points DESC;
아카이브(Iceberg) 조회
콜드 티어로 내려간 과거 데이터는 Iceberg 테이블로 남습니다.
-- 스냅샷 이력
SELECT * FROM iceberg.pp.tm_tag_point.snapshots ORDER BY committed_at DESC LIMIT 10;
-- 특정 시점의 모습 (타임 트래블)
SELECT count(*) FROM iceberg.pp.tm_tag_point
TIMESTAMP AS OF '2026-07-01 00:00:00';
아카이브 잡의 상태는 pd retention 의 cold_tier · archive_job 줄로 봅니다.
알아둘 것
- 🔴 계층화된 Aster TSDB 테이블을 파티션 키 없이 집계할 때는 Spark 를 쓰십시오. CQL 의 전체 스캔 집계는 청크를 병합하지 않아 틀린 값이 나옵니다 (계층형 저장).
- 마스터 UI 는 4440 입니다(8080 이 아닙니다).
PP_SPARK_PASSWORD는 Kyuubi 접속 인증에 쓰이고hive-auth.properties가 만듭니다.- 아카이버(
plantpulse-warehouse-web)는 데이터레이크 밖, 플랫폼 이미지에서 돕니다 → warehouse 모듈.
함께 보기
- plantpulse-analytics (분석 계층) — Spark · Hive · Gravitino · Kyuubi 구성
- 데이터 쿼리 개요 — 셋 중 무엇을 쓸지