이 문서에서는 데이터 및 애플리케이션을 Spanner Graph로 마이그레이션하는 프로세스를 설명합니다. 소스 데이터베이스와 기타 요소에 따라 마이그레이션 단계와 각 단계에 권장되는 도구에 대해 설명합니다.
Spanner Graph로 그래프를 마이그레이션하는 데에는 다음과 같은 중요 단계가 포함됩니다.
- 애플리케이션 요구사항 수집
- Spanner Graph 스키마 설계
- Spanner Graph로 애플리케이션 마이그레이션
- Spanner Graph 테스트 및 조정
- Spanner Graph로 데이터 마이그레이션
- 데이터 마이그레이션 검증
- 컷오버 및 장애 조치 메커니즘 구성
성능을 위해 스키마 및 애플리케이션 최적화하기 위해서는 스키마 설계, 애플리케이션 빌드, Spanner Graph 테스트 및 조정을 반복해야 할 수 있습니다.
애플리케이션 요구사항 수집
애플리케이션 요구를 충족하는 스키마를 설계하기 위해 다음 요구사항을 수집합니다.
- 데이터 모델링
- 일반 쿼리 패턴
- 지연 시간 및 처리량 요구사항
Spanner Graph 스키마 설계
Spanner Graph 스키마 설계 방법을 알아보려면 Spanner Graph 스키마 개요에서 기본 개념을 확인하고 Spanner Graph 스키마 만들기, 업데이트, 삭제에서 추가 예시를 확인하세요. 일반 쿼리 패턴에 맞게 스키마를 최적화하려면 Spanner Graph 스키마 설계 권장사항을 참조하세요.
Spanner Graph로 애플리케이션 마이그레이션
먼저 애플리케이션 마이그레이션에 대한 일반적인 Spanner 안내를 읽고 이 섹션의 안내에 따라 Spanner Graph 애플리케이션 마이그레이션 방법을 알아봅니다.
Spanner Graph에 연결
Spanner Graph와 프로그래매틱 방식으로 연결하는 방법은 Spanner Graph 스키마 만들기, 업데이트, 삭제 및 Spanner Graph 쿼리 개요를 참조하세요.
쿼리 마이그레이션
Spanner Graph 쿼리 인터페이스는 ISO GQL과 호환되며 추가적인 openCypher 구문 지원을 포함합니다. 자세한 내용은 openCypher 사용자를 위한 Spanner Graph 참조를 확인하세요.
변형 마이그레이션
애플리케이션의 변형 논리를 마이그레이션하려면 Spanner 테이블 변형 메커니즘을 사용하면 됩니다. 자세한 내용은 Spanner Graph 데이터 삽입, 업데이트 또는 삭제를 참조하세요.
Spanner Graph 테스트 및 조정
스키마 및 애플리케이션 성능 테스트 및 조정 방법에 대한 Spanner 안내가 Spanner Graph에 적용됩니다. Spanner Graph 성능 최적화 권장사항을 알아보려면 Spanner Graph 스키마 설계 권장사항 및 Spanner Graph 쿼리 조정 권장사항을 참조하세요.
Spanner Graph로 데이터 마이그레이션
관계형 데이터베이스에서 데이터를 이동하려면 데이터 마이그레이션을 참조하세요.
그래프 데이터베이스 또는 비관계형 데이터베이스에서 데이터를 이동하려면 소스 데이터베이스의 데이터를 파일에 저장하고, 파일을 Cloud Storage에 업로드한 후 Dataflow를 사용해서 파일을 가져올 수 있습니다. 권장되는 파일 형식에는 AVRO 및 CSV가 포함됩니다. 자세한 내용은 대량 마이그레이션의 권장 형식을 참조하세요.
제약조건 처리
스키마에 입력 테이블에 대해 제약조건이 정의되어 있으면 데이터 가져오기 중 이러한 제약조건을 위반하지 않도록 해야 합니다. 제약조건에는 다음이 포함됩니다.
- 외래 키: 외래 키 제약조건은 노드의 에지 참조에 대해 정의될 수 있습니다.
- 인터리브 처리: 에지 입력 테이블이 노드 입력 테이블에 인터리브 처리될 수 있습니다. 이러한 인터리브 처리는 하위 항목을 생성하기 전 상위 항목이 존재해야 한다는 암시적 제약조건과 함께 상위-하위 항목 관계를 정의합니다.
인터리브 처리된 구성의 상위 항목과 외래 키 제약조건에 있는 참조 항목을 먼저 로드해야 합니다. 즉, 먼저 그래프의 노드를 로드한 후 에지를 로드해야 합니다. 에지가 연결되는 노드를 로드하기 전에 에지를 로드하면 로드 프로세스 중 특정 키가 없음을 나타내는 오류가 발생할 수 있습니다.
가져오기 순서를 올바르게 지키려면 Google에서 제공된 템플릿을 사용하여 각 단계의 개별 Dataflow 작업을 정의한 후 순서에 따라 작업을 실행합니다. 예를 들어 노드를 가져오는 하나의 Dataflow 작업을 실행한 후 에지를 가져오는 다른 Dataflow 작업을 실행할 수 있습니다. 또는 가져오기 순서를 관리하는 커스텀 Dataflow 작업을 작성할 수 있습니다.
Google 제공 템플릿에 대한 자세한 내용은 다음을 참조하세요.
잘못된 순서로 가져오면 작업이 실패하거나 데이터 중 일부만 마이그레이션될 수 있습니다. 데이터 중 일부만 마이그레이션되었으면 마이그레이션을 다시 수행합니다.
데이터 로드 효율성 향상
데이터 로드 효율성을 향상시키기 위해서는 보조 색인을 만들고 데이터를 Spanner로 가져온 후 외래 키를 정의합니다. 이 접근 방법은 초기 대량 로드 또는 다운타임이 있는 마이그레이션 중에만 가능합니다.
데이터 마이그레이션 검증
데이터를 마이그레이션한 후 기본 쿼리를 수행해서 데이터가 올바른지 확인합니다. 소스 및 대상 데이터베이스 모두에서 다음 쿼리를 실행하여 결과가 일치하는지 확인합니다.
- 노드 및 에지 수를 계산합니다.
- 라벨당 노드 및 에지 수를 계산합니다.
- 각 노드와 에지 속성의 통계(count, sum, avg, min, max)를 계산합니다.