데이터베이스 모델
AI 스택이 데이터를 어디에 무슨 모양으로 담는지 정리한 문서입니다. 저장소가 넷이고 각각 역할이 다릅니다. 운영 절차는 데이터베이스 관리 를 보세요.
PostgreSQL·Cassandra 는 PlantPulse 플랫폼 설치본을 공용으로 씁니다. AI 스택이 자기 DB 를 띄우지 않습니다. 그래서 「AI 백업」과 「플랫폼 백업」이 겹칩니다 — 어느 쪽이 무엇을 받는지 정리해 두지 않으면 양쪽 다 빠지는 구간이 생깁니다.
| 저장소 | 소유 | 담는 것 |
|---|---|---|
PostgreSQL ch | AI (플랫폼 PG 안의 별도 DB) | 채팅·인시던트·설정·MCP |
Cassandra pi | AI | 피처 스토어·이상탐지 산출물 |
Cassandra pp | 플랫폼 (읽기 전용) | 원천 센서·알람·OEE |
| Neo4j | AI | 온톨로지 지식 그래프 |
| Qdrant | AI | 문서 임베딩 벡터 |
PostgreSQL ch — 대화와 운영 상태
플랫폼 PostgreSQL 안의 별도 데이터베이스 ch 입니다
(jdbc:postgresql://<플랫폼호스트>:5432/ch).
| 묶음 | 테이블 |
|---|---|
| 대화 | chats · chat_messages · prompts · prompt_history |
| 사용자 | users · user_roles · employees · web_push_subscription |
| 인시던트 | incident · incident_event · assignees |
| 이상탐지 운영 | anomaly_mute · hourly_anomaly · asset_tag_profile |
| MCP | mcp_server · mcp_tool_call_log · mcp_tool_pref |
| RAG 연동 | rag_asset_card · rag_asset_doc_sync · rag_sync_run |
| 설정 | config · config_audit_log · metadata |
2026-07 개편 전에는 Cassandra 에도 대화 이력이 있었습니다. 지금은 chat_messages
단일 소스입니다. 옛 문서를 보고 Cassandra 에서 찾지 마세요.
Cassandra pi — 피처 스토어
시계열 인사이트 서비스가 소유·생성하는 12개 테이블입니다. 접두사는 tsi_ 입니다.
| 묶음 | 테이블 |
|---|---|
| 피처 | tsi_tag_feature_hourly · tsi_tag_feature_daily · tsi_asset_feature_hourly · tsi_asset_feature_daily |
| 맥락·프로파일 | tsi_asset_context_daily · tsi_asset_profile |
| 이상·고장 | tsi_anomaly_embedding · tsi_failure_signature · tsi_precursor_alert |
| 파이프라인 | tsi_pipeline_status · tsi_pipeline_history · tsi_backfill_status |
테이블은 서비스가 기동할 때 멱등 생성합니다. 다만 키스페이스 pi 자체는 앱이 만들지
않습니다 — 설치 스크립트(provision-platform-db.sh) 소관입니다.
관리 콘솔의 이상탐지·예측 화면은 전부 이 테이블들을 읽습니다. 결과가 비어 있으면 모델이 아니라 파이프라인을 먼저 보세요 → 관리 콘솔의 Pipeline Status · Run History (AI 관리 콘솔).
pp.ti_* 는 없습니다2026-07-30 에 pp 키스페이스에서 pi 로 옮기고 옛 테이블은 DROP 했습니다.
구 이름으로 조회하면 나오지 않습니다.
Cassandra pp — 플랫폼 원천 (읽기 전용)
AI 는 플랫폼이 모은 데이터를 읽기만 합니다. 여기에 쓰지 않습니다.
| 테이블 | 쓰임 |
|---|---|
tm_asset_data_based_second / _minute / _hour | 설비 센서 시계열 |
tm_tag_point | 태그 포인트 |
tm_asset_alarm | 알람 |
tm_asset_oee_history | OEE |
tm_asset_ram · tm_asset_ems_history | RAM · EMS |
tm_monitor_platform_status | 시스템 자원 (CPU·메모리·디스크) |
파티션 키가 해상도마다 다릅니다
second : PRIMARY KEY ((asset_id, date, hour), timestamp)
minute : PRIMARY KEY ((asset_id, date), timestamp)
hour : PRIMARY KEY (asset_id, timestamp)
초 단위는 설비·날짜·시각까지 파티션에 들어갑니다. 긴 기간을 초 단위로 훑으면 파티션을
수천 개 건드립니다. 넓은 기간은 _hour, 좁은 기간만 _second 로 보세요.
플랫폼 쪽 전체 스키마는 플랫폼 데이터베이스 모델 에 있습니다.
Neo4j · Qdrant — 지식 그래프와 벡터
| 저장소 | 담는 것 |
|---|---|
| Neo4j | 온톨로지 — 설비·공정·문서의 관계 그래프 |
| Qdrant | 문서 청크의 임베딩 벡터 |
RAG 엔진(LightRAG)이 그래프는 Neo4j, 벡터는 Qdrant 에 두도록 구성되어 있습니다
(LIGHTRAG_GRAPH_STORAGE=Neo4JStorage, LIGHTRAG_VECTOR_STORAGE=QdrantVectorDBStorage).
이 둘은 원본 문서에서 만들어진 파생물입니다. 백업이 없으면 원본 파일을 다시 업로드해 색인을 새로 만드는 것 말고 복구 방법이 없습니다 — 원본 파일 보관이 사실상 백업입니다.
온톨로지 개념은 온톨로지 이해하기 를 보세요.
백업 범위 정리
| 저장소 | 누가 받나 | 없으면 |
|---|---|---|
PostgreSQL ch | AI 쪽에서 챙겨야 함 | 대화·인시던트·설정이 사라진다 |
Cassandra pi | AI 쪽에서 챙겨야 함 | 피처가 사라져 분석 화면이 빈다(재계산은 가능하나 오래 걸린다) |
Cassandra pp | 플랫폼 백업 | — |
| Neo4j · Qdrant | AI | 문서 색인이 사라진다(원본에서 재생성 가능) |
절차는 데이터베이스 관리 를 보세요.
관련 문서
- 데이터베이스 관리 — 접속·점검·운영
- AI 관리 콘솔 — 파이프라인 상태 확인
- 서비스 포트 맵
- 플랫폼 데이터베이스 모델