데이터 게이트웨이 개요
분석가 · 외부 시스템 · BI · AI 에이전트는 저장소에 직접 붙지 않습니다. 데이터 게이트웨이(:5500 · TLS :5501)가 네 가지 질의 언어를 한 엔드포인트로 받고, 스키마를 바꾸는 문장을 막고, 결과를 제한하고, 모든 질의를 기록합니다.
| 언어 | 무엇에 붙나 | 무엇을 보나 |
|---|---|---|
| PQL | PostgreSQL | 메타데이터 — 자산 · 태그 · 사용자 · 설정 |
| CQL | Aster TSDB | 센서 원시값 · 집계 · BLOB 메타 |
| SQL | Kyuubi(Spark) | Iceberg 콜드 계층 · 웨어하우스 |
| TQL | 시계열 엔진(TSE) | 메트릭 · 롤업 |
열되 다치지 않게
게이트웨이는 «막는 문» 이 아니라 «통제된 문» 입니다. 읽기는 넓게 열려 있고, 구조를 바꾸는 문장과 과도한 결과만 막습니다.
구성
AI 에이전트도 같은 문으로 들어옵니다
플랫폼의 MCP 도구는 내부적으로 이 게이트웨이와 같은 권한 · 같은 로그 · 같은 상한 아래에서 실행됩니다. 에이전트라고 더 볼 수 있는 길이 없습니다.
세 가지 진입 방법
| 방법 | 언제 |
|---|---|
REST POST /api/v1/query · /query/stream | 외부 시스템 · 스크립트 · 에이전트 |
SQL 콘솔 https://<서버IP>:5501/ | 사람이 브라우저에서 — 데이터 게이트웨이 콘솔 |
자바 SDK plantpulse-data-gateway-client | 애플리케이션에 내장 — 데이터 게이트웨이 클라이언트 |
저장소에 직접 붙어야 하는 BI 도구용으로는 JDBC 드라이버 셋이 따로 있습니다 — 데이터 쿼리.
5분 만에 한 줄 돌려 보기
# 1. 살아 있나 (익명 readiness — 이 경로만 HTTPS 강제에서 빠집니다)
curl -fsS http://127.0.0.1:5500/api/health
# {"status":"UP","service":"plantpulse-data-gateway-web",…,
# "checks":{"database":true,"inmemory":true,"query_log":true}}
# 2. 메타데이터 한 줄 (PQL)
curl -fsS -X POST -H "X-API-Key: ${PP_DATA_GATEWAY_API_KEY}" -H "X-Lang: PQL" \
-H "Content-Type: application/json" \
-d "SELECT tablename FROM pg_tables WHERE schemaname='pp'" \
http://127.0.0.1:5500/api/v1/query
# 3. 큰 결과는 스트림으로 (NDJSON)
curl -fsS -X POST -H "X-API-Key: ${PP_DATA_GATEWAY_API_KEY}" -H "X-Lang: CQL" \
-H "Content-Type: application/json" \
-d "SELECT * FROM pp.tm_tag_value WHERE tag_id='TAG_001' LIMIT 100" \
http://127.0.0.1:5500/api/v1/query/stream
이 섹션의 구성
| 페이지 | 언제 보나 |
|---|---|
| API | 엔드포인트 · 헤더 · 파라미터 바인딩 · 오류 계약 |
| 통제와 한계 | 무엇이 막히고 무엇이 기록되는가 — DDL · 레이트리밋 · 상한 |
관련 문서
plantpulse-data-gateway컴포넌트 — 모듈 · 경로 · 설정 파일- 데이터 게이트웨이 콘솔
- 데이터 게이트웨이 클라이언트
- 데이터 쿼리 — PQL · CQL · Spark SQL 중 무엇을 쓸지