メインコンテンツまでスキップ

plantpulse-warehouse (データウェアハウス / レイクハウス)

役割

Cassandra の時系列 データを Apache Iceberg 形式で MinIO にアーカイブする レイクハウス モジュール。長期保存、分析クエリ性能、他の BI ツール連携のために使用します。

項目
モジュール名plantpulse-warehouse
インストールパス/opt/kopens/plantpulse-platform/plantpulse-warehouse/
ポート9600
形式Apache Iceberg V2
ストレージMinIO (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
  • 1,000,000 件基準 約 60 秒
  • 対象: Cassandra tm_tag_point → MinIO plantpulse-iceberg/warehouse/tag_point/
  • パーティション: dt=YYYY-MM-DD/hh=HH/

Iceberg テーブル最適化 (optimize.sh)

小ファイルの統合、期限切れスナップショット削除、メタデータ クリーンアップ。

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

推奨周期: 週 1 回 夜間。Kestra ワークフローで自動化可能。

運用コマンド

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":..., ...}

よくある問題

症状原因対応
アーカイブ ジョブ失敗Spark / Hive 未準備pd restart analytics 後に再試行
小ファイル激増optimize.sh 未実行週 1 回 定期実行
MinIO ディスク不足retention 未設定Iceberg expire snapshots + ライフサイクル ポリシー
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;

関連ドキュメント