본문으로 건너뛰기
온톨로지 모델러 코스

기반 데이터셋 매핑 — 컬럼을 속성으로 잇기

직전 레슨에서 정의한 엔티티에 실제 데이터셋을 연결합니다. 컬럼과 속성의 1:1 매핑, Identity Keys 매핑, 백엔드 sink 자동 동기화, 그리고 같은 데이터셋이 여러 엔티티를 떠받칠 수 있는가의 결정까지.

10분

직전 레슨에서 엔티티의 모양을 정의했습니다. 본 레슨은 그 모양 안에 실제 데이터가 흐르도록 데이터셋을 연결합니다. 매핑이 끝나면 백엔드 sink 가 그래프 데이터베이스에 인스턴스를 자동 적재하고, 다음 레슨의 그래프 탐색기에서 노드가 처음 보이기 시작합니다.

기반 데이터셋 한 줄 정의

엔티티/관계는 의미 레이어입니다. 기반 데이터셋(backing dataset) 은 그 의미 레이어를 떠받치는 실제 표 데이터입니다.

  • 한 엔티티는 한 기반 데이터셋을 가집니다.
  • 기반 데이터셋의 References 탭에는 이 엔티티가 자동 등록됩니다 — 데이터셋 시점으로 들어와도 나를 떠받침으로 쓰는 엔티티가 누구인지 한눈에 보입니다.
  • 데이터셋은 같은 컬렉션 안에 있어야 매핑 드롭다운에 노출됩니다. 1 컬렉션 = 1 온톨로지 스코프 규칙의 연속.

매핑 절차

직전 레슨의 IOT_Machine 엔티티를 같은 컬렉션의 machines 데이터셋에 잇는 흐름입니다.

  1. 빌더 캔버스에서 IOT_Machine 노드를 클릭해 인스펙터를 엽니다.
  2. 인스펙터의 Data Source (또는 Mapping) 탭을 선택합니다.
  3. 데이터셋 선택 드롭다운에서 같은 컬렉션의 machines 데이터셋을 고릅니다. 다른 컬렉션의 데이터셋은 의도적으로 보이지 않습니다.
  4. 필드 매핑 영역에서 엔티티 속성 한 줄씩 옆에 데이터셋 컬럼 드롭다운이 뜹니다. 1:1 로 맞춥니다.
  5. Identity Keys 매핑 — 직전 레슨에서 체크한 machine_id 옆에 데이터셋의 PK 역할 컬럼을 명시합니다. 이 매핑이 명시돼야 인스턴스 단위 조회가 가능해집니다.

IOT_Machine 의 매핑은 컬럼명이 그대로 일치하므로 다음처럼 정리됩니다.

엔티티 속성데이터셋 컬럼비고
machine_id (Identity Key, Display)machine_idPK 역할
sensor_countsensor_count
reading_countreading_count
latest_recorded_atlatest_recorded_atTimestamp(ms)
anomaly_countanomaly_count
latest_health_scorelatest_health_scoreFloat (0–1)

같은 컬렉션의 운영 DB 미러가 IOT_Sensor 엔티티의 backing 으로 들어가는 그림을 함께 그려 두면, 02 레슨에서 만든 그래프의 다음 노드가 자연스럽게 자리 잡습니다(sensor_id 가 Identity Key).

컬럼명이 일치하지 않으면

운영 데이터셋의 컬럼명이 도메인 어휘와 다를 때(예: mch_id, ts_ms)가 흔합니다. 이 표면에서 컬럼명을 바꾸지 않습니다 — 매핑 드롭다운에서 어느 컬럼이 어느 속성에 들어갈지만 결정합니다. 데이터셋 컬럼명 자체를 바꿔야 한다면 두 가지 길이 있습니다.

  • 엔지니어 코스 03 레슨의 컬럼 선택/이름 바꾸기 노드 — 파이프라인 상류에서 한 번 정리해 마트 데이터셋을 만들고, 그 마트를 backing 으로 매핑.
  • 엔지니어 코스 04 레슨의 코드 노드 — 더 복잡한 변환(타입 캐스팅, 단위 정규화) 후 마트로 떨어뜨림.

이 표면은 매핑 화면으로 깔끔히 유지하고, 컬럼 정리는 엔지니어 표면에 위임합니다.

Sink — 매핑이 끝나면 자동

매핑이 완료된 시점에 다음이 일어납니다.

  • 백엔드 sink 인프라가 기반 데이터셋의 행을 그래프 데이터베이스 노드로 자동 동기화합니다.
  • 이전 버전의 EntitySink / RelationSink UI 는 제거됐습니다. sink 는 사용자가 직접 트리거하지 않는 인프라 단계입니다.
  • 매핑 직후 그래프 탐색기에서 해당 라벨(예: IOT_Machine) 옆 노드 개수가 채워지기 시작합니다.

인스턴스 Data 탭 — 행 단위 확인

매핑이 끝났으면 인스펙터의 Data 탭을 열어 봅니다. 기반 데이터셋의 행이 페이지 단위로 보이고, 다음이 자동으로 적용됩니다.

  • Identity Keys 기반 fetch — PK 컬럼 기준 행 단위 조회. 행 클릭 시 인스턴스 상세 패널이 열립니다.
  • Display Column 우선 정렬 — 표시명이 1차 컬럼, 시스템 이름은 보조.
  • 컬럼 필터 · 정렬 — 다른 데이터셋의 Data 탭과 같은 UX.
  • 인스턴스 직접 편집은 지원하지 않습니다 — 편집은 기반 데이터셋 또는 파이프라인에서 합니다. 의미 레이어와 데이터 출처의 책임 경계를 표면이 강제하는 형태입니다.

같은 데이터셋이 여러 엔티티를 떠받칠 수 있는가

가능합니다. 흔한 패턴 두 가지를 미리 알아 두면 본인 도메인에서 머무는 시간이 짧아집니다.

  • 부모/자식 분리 — 한 거래 데이터셋이 주문 엔티티와 주문 라인 엔티티의 backing 으로 동시에 잡힙니다. Identity Keys 만 다르게 잡으면 됩니다(order_id vs (order_id, line_no)).
  • 다른 시점의 같은 표 — 한 매장 마스터가 지점 엔티티와 부지 엔티티의 backing 으로 동시에 잡힙니다. 속성 부분집합만 다르게 매핑.

다만 관계의 기반 데이터셋으로 동시에 쓰는 경우는 신중하게 — 다음 레슨에서 관계의 backing 패턴을 따로 다룹니다.

자가 점검

  • 엔티티 인스펙터의 Data 탭에 기반 데이터셋의 행이 페이지 단위로 보이는가
  • 그래프 탐색기 좌측 메타데이터 패널에서 해당 라벨 옆 노드 개수가 0 이 아닌가 (몇 초 ~ 분 대기)
  • 기반 데이터셋 자체 페이지의 References 탭에 본 엔티티가 등록됐는가
  • Identity Keys 매핑이 비어 있지 않은가 — 비어 있으면 03 단계로 돌아가 한 줄 채움

다음 레슨

다음 레슨은 두 엔티티를 잇는 관계를 빌더 캔버스에서 드래그로 만듭니다. 카디널리티(1:1 · 1:N · N:N), 명명 규칙(verb_phrase), 그리고 관계도 기반 데이터셋을 가질 수 있다는 점까지 다룹니다.