이 문서에서는 Spanner Studio에서 Spanner Graph 스키마를 시각적으로 관리하는 방법을 안내합니다. 시각적 모델링을 사용하면 수동 DDL 문을 만드는 대신 직관적인 인터페이스를 통해 노드와 에지를 매핑하여 그래프 설계를 간소화할 수 있습니다. 이 기능을 사용하면 다른 사용자와 함께 설계하고 이해하고 공동작업하는 것이 더 쉬워집니다. 또한 이 접근 방식은 Spanner Graph 스키마 권장사항을 자동으로 적용하여 처음부터 최적화되도록 합니다.
Spanner Graph 스키마는 DDL을 사용하여 생성하고 수정할 수도 있습니다. 속성 그래프 스키마에 대한 자세한 내용은 Spanner Graph 스키마 개요를 참고하세요. 속성 그래프 스키마를 만들 때 오류가 발생하면 Spanner Graph 문제 해결을 참고하세요.

그래프 만들기
시작하려면 Spanner Studio로 이동하여 홈페이지에서 그래프 만들기를 클릭합니다. 그래프 모델링 도구를 사용하면 다음과 같은 여러 방법으로 그래프를 빌드할 수 있습니다.
처음부터: 시각적 인터페이스를 통해 노드와 에지를 완전히 설계합니다. Spanner는 필요한 DDL과 성능 최적화 스키마 객체를 자동 생성합니다.
기존 테이블에서: 서로 연결되어 있는 경우 현재 관계형 테이블을 그래프 모델에 직접 매핑합니다.
하이브리드 접근 방식: 기존 테이블에서 다른 요소를 매핑하는 동안 일부 요소를 처음부터 모델링합니다.
모델 노드
그래프에 노드를 추가하려면 다음 단계를 따르세요.
처음부터
새 노드를 만들면 Spanner에서 자동으로 데이터베이스 테이블을 생성합니다. 노드의 속성과 키를 정의하면 Spanner에서 테이블의 열과 기본 키를 구성합니다.
- Spanner Studio에서 그래프 모델링 캔버스를 엽니다.
- 그래프에 노드를 추가하고 데이터 소스로 새 항목을 선택합니다.
- 노드에 이름을 할당합니다. 이 노드에 대해 생성된 테이블의 이름은 이 값에 따라 지정됩니다.
- 노드에 라벨을 할당합니다. 기본적으로 이 라벨은 노드의 이름과 일치하지만 변경할 수 있습니다.
- 이름과 데이터 유형을 비롯해 라벨과 연결된 속성을 정의합니다. 하나 이상의 속성에 대해 요소 키를 선택하여 키로 지정합니다. null 값을 허용하지 않으려면 null이 아님을 선택합니다.
기존 테이블에서
노드를 기존 테이블에 매핑하면 Spanner는 테이블의 스키마를 기반으로 사용합니다. 라벨, 속성, 키는 테이블에서 자동으로 상속되지만 재정의할 수 있습니다.
- Spanner Studio에서 그래프 모델링 캔버스를 엽니다.
- 그래프에 노드를 추가하고 데이터 소스로 기존 데이터 소스를 선택합니다.
- 노드에 라벨을 할당합니다. 기본적으로 이 라벨은 노드의 이름과 일치하지만 변경할 수 있습니다.
- 라벨과 연결된 속성을 정의합니다. Spanner는 테이블의 열을 속성에 매핑하고 기본 키를 요소 키에 매핑합니다. 다음 중 한 가지 방법으로 이 설정을 맞춤설정할 수 있습니다.
- 새 속성 만들기: 새 속성을 추가하면 Spanner가 테이블에 기본 열을 자동으로 만듭니다.
- 속성 삭제: 이 노드에 필요하지 않은 매핑된 열을 삭제합니다.
모델 가장자리
그래프에 에지를 추가하려면 다음 단계를 따르세요.
처음부터
처음부터 새 가장자리를 만들면 기본 테이블이 자동으로 생성됩니다. 소스 및 대상 노드를 정의하면 Spanner가 백그라운드에서 필요한 기본 키와 참조 열을 구성합니다.
Spanner Studio에서 그래프 모델링 캔버스를 엽니다.
그래프에 에지를 추가하고 데이터 소스로 New를 선택합니다. 에지 이름을 입력합니다.
소스 및 대상 노드를 선택합니다. Spanner는 소스 및 대상 요소 키를 식별하는 데 필요한 속성을 생성하고 이를 가장자리의 기본 요소 키로 사용합니다.
기본적으로 Spanner는 소스 및 대상 노드 요소 키를 사용하여 각 에지를 고유하게 식별하므로 두 특정 노드 사이에 단일 에지만 존재할 수 있습니다. 동일한 두 노드 사이에 여러 개의 에지가 필요한 경우 (일반적인 실제 사용 사례) 추가 속성을 정의하고 요소 키임을 선택하여 각 에지를 고유하게 유지합니다.
가장자리에 라벨을 할당합니다. 기본적으로 이는 가장자리의 이름과 일치합니다.
테두리에 대한 추가 속성을 정의합니다.
에지를 완료하면 Spanner에서 에지 순회를 최적화하는 데 필요한 DDL 문을 자동으로 생성합니다. 자세한 내용은 DDL 검토 및 생성을 참고하세요.
기존 테이블에서
기존 테이블에 에지를 매핑하면 Spanner는 테이블의 스키마를 기반으로 사용합니다. 라벨, 속성, 키는 테이블에서 자동으로 상속되지만 이를 재정의하거나 새 속성을 추가할 수 있습니다.
Spanner Studio에서 그래프 모델링 캔버스를 엽니다.
그래프에 에지를 추가하고 데이터 소스로 기존 테이블을 선택합니다.
소스 및 대상 노드를 선택합니다. 소스 및 대상 참조 열을 정의합니다.
가장자리에 라벨을 할당합니다. 기본적으로 이는 가장자리의 입력 테이블 이름과 일치합니다.
라벨과 연결된 속성을 정의합니다. Spanner는 테이블의 열을 속성에, 기본 키를 에지 요소 키에 자동으로 매핑합니다. 다음과 같은 방법으로 이 설정을 수정할 수 있습니다.
- 새 속성 만들기: 새 속성을 추가하면 Spanner가 테이블에 기본 열을 만듭니다.
- 속성 삭제: 이 가장자리에 필요하지 않은 매핑된 열을 삭제합니다.
기존 테이블에서 생성된 에지의 경우 Spanner는 에지 순회를 최적화하는 DDL 문을 생성하지 않습니다. 스키마 권장사항을 참고하여 최적화를 수동으로 적용하세요.
그래프 수정
기존 속성 그래프를 Spanner Studio에 로드하여 구조를 업데이트할 수 있습니다.
- 객체 탐색기에서 수정할 그래프를 찾아 옵션 더보기 메뉴에서 시각적으로 보기/수정을 선택합니다.
- 새 노드나 가장자리를 처음부터 추가하거나 기존 테이블에서 매핑합니다.
- 기존 노드 및 에지의 속성을 업데이트합니다. 기본 테이블의 사용 가능한 열을 사용하거나 새 속성을 추가하면 해당 열이 기본 테이블에 자동으로 추가됩니다.
- 그래프 정의에서 노드 또는 에지를 삭제합니다.
DDL 검토 및 생성
모델링이 완료되면 Spanner에서 모델을 기반으로 다음 DDL 문을 생성합니다.
CREATE OR REPLACE PROPERTY GRAPH: 그래프 정의를 만들거나 업데이트합니다.CREATE TABLE: 처음부터 빌드된 노드 또는 에지의 기본 테이블을 만듭니다.ALTER TABLE ADD COLUMN: 기존 테이블에서 매핑된 노드 또는 에지에 새 속성 열을 추가합니다.ALTER TABLE ADD CONSTRAINT: 순방향 에지 순회를 최적화하기 위해 외래 키 제약 조건을 만듭니다.CREATE INDEX: 역방향 에지 순회를 최적화하기 위해 역방향 에지 색인을 만듭니다.
다음 단계에 따라 그래프 변경사항을 커밋합니다.
- DDL 생성 버튼을 눌러 스키마를 생성합니다. 앞서 설명한 필수 DDL 문이 생성됩니다.
- Spanner Studio 편집기에서 생성된 DDL 문을 검토합니다. 문은 실행을 위해 올바른 순서로 표시되며 각 스키마 객체를 설명하는 주석이 포함됩니다. 계속하기 전에 명세서를 수정할 수 있습니다.
- 데이터베이스에 변경사항을 커밋하는 문을 실행합니다.
제한사항
- 추가 변경사항만: 안전을 위해 이 도구는
DROP TABLE또는DROP COLUMN문을 생성하지 않습니다. 노드, 에지 또는 속성을 삭제하면PROPERTY GRAPH정의만 업데이트됩니다. 기본 테이블과 열은 삭제되지 않습니다. - 지원되지 않는 스키마 객체: 이 도구는 가능한 모든 스키마 객체, 열 데이터 유형 또는 한정자를 자동으로 생성하지 않습니다. 하지만 커밋하기 전에 편집기에서 생성된 DDL 문을 수동으로 수정할 수 있습니다.
- 초안 저장 미지원: 그래프를 모델링할 때 페이지를 닫으면 진행 상황이 저장되지 않습니다.
- 스키마가 없는 데이터는 지원되지 않음: 이 도구는 공식 구조가 있는 그래프만 생성합니다. 사용 사례에 스키마 없는 데이터가 필요한 경우 이 스키마 예시를 기반으로 스키마 없는 데이터 그래프를 만들 수 있습니다.
- 뷰 및 이름이 지정된 스키마 테이블 미지원: 노드와 가장자리를 기존 데이터 소스에 매핑할 때 데이터베이스 뷰 또는 이름이 지정된 스키마 테이블을 데이터 소스로 선택할 수 없습니다.
- 매핑된 에지 제약 조건 또는 색인 없음: 이 도구는 기존 테이블에서 매핑된 에지에 대해 외래 키 제약 조건이나 역방향 에지 색인을 생성하지 않습니다. 수동 생성에 대한 권장사항을 참고하세요.