본문으로 건너뛰기

데이터베이스 모델

AI 스택이 데이터를 어디에 무슨 모양으로 담는지 정리한 문서입니다. 저장소가 넷이고 각각 역할이 다릅니다. 운영 절차는 데이터베이스 관리 를 보세요.

대부분은 AI 가 소유한 것이 아닙니다

PostgreSQL·Cassandra 는 PlantPulse 플랫폼 설치본을 공용으로 씁니다. AI 스택이 자기 DB 를 띄우지 않습니다. 그래서 「AI 백업」과 「플랫폼 백업」이 겹칩니다 — 어느 쪽이 무엇을 받는지 정리해 두지 않으면 양쪽 다 빠지는 구간이 생깁니다.

저장소소유담는 것
PostgreSQL chAI (플랫폼 PG 안의 별도 DB)채팅·인시던트·설정·MCP
Cassandra piAI피처 스토어·이상탐지 산출물
Cassandra pp플랫폼 (읽기 전용)원천 센서·알람·OEE
Neo4jAI온톨로지 지식 그래프
QdrantAI문서 임베딩 벡터

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
MCPmcp_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_historyOEE
tm_asset_ram · tm_asset_ems_historyRAM · 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 chAI 쪽에서 챙겨야 함대화·인시던트·설정이 사라진다
Cassandra piAI 쪽에서 챙겨야 함피처가 사라져 분석 화면이 빈다(재계산은 가능하나 오래 걸린다)
Cassandra pp플랫폼 백업
Neo4j · QdrantAI문서 색인이 사라진다(원본에서 재생성 가능)

절차는 데이터베이스 관리 를 보세요.


관련 문서