数据网关概述
分析人员 · 外部系统 · 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://<server-ip>:5501/ | 人员在浏览器中 — 数据网关控制台 |
Java 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 中的哪一个