유틸리티 모듈
플랫폼 운영을 지원하는 보조 모듈 모음. 상시 실행되지 않고 필요 시 실행 하는 방식입니다.
컨테이너 이미지에 들어가는 모듈은 정해져 있고, 아래 표의 상당수는 현행 이미지에 포함되지 않습니다. 컨테이너 안에서 해당 경로를 찾으면 없습니다.
| 모듈 | 용도 | 현행 출하본 |
|---|---|---|
| backup | 통합 백업 (PG / Cassandra / 파일) | ✅ 데이터레이크 컨테이너에 포함 |
| mirror-maker | 데이터 복제 (HA / DR) | ✅ 별도 컨테이너 — mirror 프로파일로 기본 꺼짐 |
| api | REST API 클라이언트 라이브러리 | ✅ 외부 Java 프로젝트에서 쓰는 라이브러리 (컨테이너와 무관) |
| setup | 초기 모델 일괄 등록 (CSV) | ❌ 이미지 미포함 |
| recovery | 데이터 복구 | ❌ 이미지 미포함 |
| exporter | 시계열 CSV 내보내기 | ❌ 이미지 미포함 |
| migrator | Cassandra 데이터 마이그레이션 | ❌ 2026-08-30 제외 |
| lab | Jupyter / Metabase 분석 환경 | ❌ 2026-08-30 제외 |
migrator 와 lab 은 «오케스트레이터가 부르지 않고, 유닛도 없고, 실제로 도는 프로세스도 없다» 는 이유로 이미지에서 명시적으로 빠졌습니다(lab 은 이미지 792MB 를 차지했습니다).
아래 절차가 필요하시면 webmaster@kopens.com 으로 문의해 주세요.
데이터레이크 컨테이너에 포함된 모듈은 컨테이너 안에서 실행합니다.
cd /opt/kopens/plantpulse-platform-docker/bin
./shell.sh
plantpulse-setup
아래는 이 모듈을 별도로 갖고 계신 환경을 위한 참고입니다.
CSV 파일 기반의 사이트 / 자산 / OPC / 태그 모델을 일괄 등록.
cd /opt/kopens/plantpulse-platform/plantpulse-setup/bin
./setup.sh \
--host ${PP_HOST_IP} --port 7003 \
--user api --password 'api123!' \
--dir /opt/kopens/plantpulse-platform/plantpulse-setup/model/_example
CSV 파일 순서:
1_SITE_LIST.csv— 사이트 목록2_ASSET_TREE.csv— 에셋 계층3_OPC_LIST.csv— OPC 서버 연결4_TAG_LIST.csv— 태그 정의
plantpulse-backup
PostgreSQL (pgBackRest), Cassandra (Medusa), 파일 (Restic) 통합 백업.
cd /opt/kopens/plantpulse-platform/plantpulse-backup/bin
./backup.sh --install # 초기 설정
./backup.sh --postgres # PG Differential (기본)
./backup.sh --postgres full # PG Full
./backup.sh --postgres incr # PG Incremental
./backup.sh --cassandra # Cassandra Differential
./backup.sh --cassandra full # Cassandra Full
./backup.sh --purge # 보관 정책 정리
./backup.sh --cron-install # 크론 자동 등록
./backup.sh --cron-remove
# 파일 백업
/opt/kopens/plantpulse-platform/plantpulse-backup/etc/run_restic.sh
상세는 백업 및 복구.
plantpulse-recovery
특정 에셋의 시계열 데이터를 기간별로 재처리.
cd /opt/kopens/plantpulse-platform/plantpulse-recovery/bin
./recovery.sh ASSET_01032 20260101 20260530
plantpulse-exporter
시계열 데이터 CSV 내보내기 + 대용량 dsbulk.
cd /opt/kopens/plantpulse-platform/plantpulse-exporter/bin
# 에셋 단위 CSV 추출
./export.sh ASSET_01032 20260101 20260530 /tmp
# 테이블 전체 벌크 언로드 (dsbulk)
./bulk-unload.sh pp tm_tag_point
# → /data1/pp-backup/cassandra/bulk/tm_tag_point.gz
# 벌크 로드 (복원)
./bulk-load.sh pp tm_tag_point
plantpulse-migrator
Spark 기반 Cassandra 서버 간 마이그레이션 (서버 교체 / 클러스터 이전).
cd /opt/kopens/plantpulse-platform/plantpulse-migrator/bin
./run.sh 192.168.0.41 192.168.0.237 pp.tm_tag_point
plantpulse-mirror-maker
데이터 복제 (HA / DR). 자기 컨테이너로 뜨며, mirror 프로파일에 묶여 있어 기본으로는 뜨지 않습니다.
cd /opt/kopens/plantpulse-platform-docker
# 켜기
docker compose -f compose/docker-compose.yml --profile mirror up -d plantpulse-mirror-maker
# 상태 · 로그
docker compose -f compose/docker-compose.yml --profile mirror ps
bin/logs.sh plantpulse-mirror-maker
설정은 다른 컨테이너와 마찬가지로 compose 의 환경변수로 넘깁니다.
plantpulse-simulator
테스트 / 데모용 시계열 데이터 시뮬레이터. RANDOM 또는 CSV 기반, 최대 10,000 MPS.
cd /opt/kopens/plantpulse-platform/plantpulse-simulator/bin
vi run.sh # TYPE, MPS, CSV 설정
./run-daemon.sh
./log-viewer.sh
./stop.sh
설정 예:
TYPE="RANDOM" # RANDOM | CSV
MPS="10000" # 초당 메시지 수
PROTOCOL="KAFKA"
# CSV 모드
CSV="/home/simul/data/20260530.csv"
SPEED="1.0" # 1.0 실시간, 2.0 2배속
plantpulse-api
PlantPulse REST API 클라이언트 Java 라이브러리.
plantpulse-api/
├── lib/ # 의존 jar
└── target/
├── plantpulse-api.jar
├── plantpulse-buffer.jar
├── plantpulse-cassandra-3.0.jar
├── plantpulse-cassandra.jar
└── plantpulse-cep-api.jar
외부 Java 프로젝트의 pom.xml / build.gradle 에 의존성 추가 후 사용. 자세한 사용법은 API 사용 매뉴얼 참고.
plantpulse-lab
Jupyter · Metabase 는 오케스트레이터가 기동하지 않았고 실제로 도는 프로세스도 없어, 이미지에서 792MB 를 차지하던 채로 빠졌습니다.
웹 콘솔에 Jupyter 카드가 아직 보일 수 있지만, 그 카드는 이 변경 이전에도 동작하지 않았습니다. 분석 환경이 필요하시면 외부에 별도로 두고 Kyuubi(10000) · PostgreSQL(5432) 로 연결하시는 편을 권합니다.
데이터 사이언티스트 / 개발자를 위한 분석 환경.
plantpulse-lab/
├── jupyter/ # Jupyter Notebook
│ ├── bin/
│ ├── logs/
│ └── notebook/ # 노트북 저장소
└── metabase/ # Metabase (BI 도구)
├── bin/
└── metabase.jar
Jupyter
cd /opt/kopens/plantpulse-platform/plantpulse-lab/jupyter/bin
./start.sh
# 기본 포트 8888
PySpark / cassandra-driver / psycopg2 가 미리 설치되어 있어 즉시 분석 가능.
Metabase
cd /opt/kopens/plantpulse-platform/plantpulse-lab/metabase/bin
./start.sh
# 기본 포트 3001
비개발자를 위한 비주얼 BI 대시보드. PostgreSQL / Kyuubi 직접 연결.