콘텐츠로 이동

스키마

스키마는 인터랙션 데이터의 구조를 정의합니다. 데이터를 저장하기 전에 엣지가 어떻게 구조화되어 있는지, 어떤 프로퍼티를 가지는지, 그리고 어떻게 쿼리할 수 있는지 정의해야 합니다.

자세한 내용은 핵심 개념을 참조하세요.

Service (v3: Database)
├── Label (v3: Table)
│ ├── Schema (src, tgt, fields)
│ └── Indices (v3: Indexes)
└── Alias
  • 서비스는 관련된 레이블과 별칭을 그룹화합니다
  • 레이블은 엣지에 대한 스키마를 정의합니다
  • 별칭은 레이블에 대한 대체 이름을 제공합니다

레이블과 별칭을 포함하는 네임스페이스입니다.

프로퍼티설명
name서비스 식별자 (예: myservice)
desc설명 (v3: 코멘트)
active활성화 여부

Example: an e-commerce service might contain labels for likes, recent_views, and purchases.

엣지의 스키마—src, tgt, 필드, 인덱스를 정의합니다.

프로퍼티설명
name형식: service.label
desc설명 (v3: 코멘트)
type레이블 타입 (INDEXED, HASH, MULTI_EDGE)
schema엣지 구조 (src, tgt, fields)
dirType방향 타입 (v3: direction)
storage스토리지 URI (예: datastore://<namespace>/<table>)
indices쿼리용 인덱스 (v3: indexes)
active활성화 여부
  • src (v3: source): 소스 타입 (STRING, LONG) — 누가
  • tgt (v3: target): 타겟 타입 (STRING, LONG) — 무엇을
  • fields (v3: properties): 각각 name, type, nullable 포함

Example: Recent Views

src: user_id (LONG)
tgt: product_id (LONG)
fields:
- created_at (LONG)
dirType: BOTH

Example: Reactions

src: user_id (LONG)
tgt: product_id (LONG)
fields:
- created_at (LONG)
- reaction_type (STRING)
dirType: BOTH

인덱스는 효율적인 쿼리를 가능하게 합니다. 각 인덱스는 이름과 정렬 순서를 갖는 필드 목록을 가집니다.

indices:
- name: by_created_at
fields: [created_at DESC]
- name: by_type_and_time
fields: [reaction_type ASC, created_at DESC]

인덱스는 쓰기 시점에 미리 계산됩니다. 자세한 내용은 쿼리를 참고하세요.

레이블의 대체 이름입니다.

프로퍼티설명
name형식: service.alias
desc설명 (v3: comment)
target가리키는 레이블
active활성화 여부

점진적 마이그레이션이나 도메인별 네이밍에 유용합니다.

유형형식예시
서비스간단한 식별자myservice
레이블service.labelmyservice.likes
별칭service.aliasmyservice.friends

v2와 v3는 거의 1:1로 매핑됩니다.

v2 (현재)v3 (미래)
servicedatabase
레이블테이블
src소스
tgt타겟
ts버전
fields프로퍼티
dirType방향
indices인덱스
desc코멘트

(이 문서는 Kanana-2로 번역되었습니다. 번역 기여를 환영합니다!)