跳到主要内容

plantpulse-warehouse (数据仓库 / 湖仓)

角色​

将 Aster TSDB 的时序数据以 Apache Iceberg 格式归档至 RustFS 的湖仓模块。用于长期存储、分析查询性能优化以及与其他 BI 工具集成。

项目值
模块名plantpulse-warehouse-web
安装路径/opt/kopens/plantpulse-platform/plantpulse-warehouse/
端口9600
格式Apache Iceberg V2
存储RustFS (S3)

组成​

目录结构​

plantpulse-warehouse/
├── app/ # 웨어하우스 서비스
├── bin/start.sh stop.sh log-viewer.sh
├── config/
├── etc/ # PID 관리
├── lib/ # Spark JAR
├── logs/system.log
└── s3/
├── archive.sh # 아카이빙
└── optimize.sh # 테이블 최적화

归档 (archive.sh)​

# 전일 데이터 아카이빙 (기본)
/opt/kopens/plantpulse-platform/plantpulse-warehouse/s3/archive.sh

# 특정 날짜
/opt/kopens/plantpulse-platform/plantpulse-warehouse/s3/archive.sh 2026-05-29
  • 约 60 秒处理 1,000,000 条数据
  • 对象:Aster TSDB tm_tag_point → RustFS plantpulse-iceberg/warehouse/tag_point/
  • 分区:dt=YYYY-MM-DD/hh=HH/

Iceberg 表优化 (optimize.sh)​

合并小文件、删除过期快照、清理元数据。

/opt/kopens/plantpulse-platform/plantpulse-warehouse/s3/optimize.sh

建议执行周期:每周 1 次,夜间执行。几乎无需手动操作 — Temporal 已在 PP-S3-OPTIMIZER-WEEKLY(周日 04:00)自动运行,上述脚本即该工作流所调用的内容。时间设置为 OP_TIME。

运维命令​

cd /opt/kopens/plantpulse-platform/plantpulse-datalake-cli/bin

./restart-warehouse.sh
./pd status # 9600 RUNNING 확인

# 표준 헬스체크 (익명, 순수 liveness — 공통 3개 필드 + 시스템/JVM 메트릭 포함)
curl -fsS http://127.0.0.1:9600/api/health
# → {"status":"UP","service":"plantpulse-warehouse-s3","ts":..., ...}

常见问题​

症状原因处理措施
归档 Job 失败Spark / Hive 未就绪执行 pd restart analytics 后重试
小文件激增未运行 optimize.sh每周定期执行 1 次
RustFS 磁盘不足未设置保留策略执行 Iceberg 过期快照删除 + 生命周期策略
Kyuubi 查询 OOM大表 / 分区缺失显式指定 WHERE dt = '...'

SQL 查询示例​

USE iceberg;

-- 메타데이터
DESCRIBE TABLE EXTENDED tag_point;

-- 5월 집계
SELECT tag_id, count(*) AS rows, min(time), max(time)
FROM tag_point
WHERE dt BETWEEN '2026-05-01' AND '2026-05-31'
GROUP BY tag_id
ORDER BY rows DESC
LIMIT 100;

-- 스냅샷 이력
SELECT * FROM tag_point.snapshots;
SELECT * FROM tag_point.history;

相关文档​