다음 방법 중 하나를 사용하여 대용량 데이터를 Spanner로 가져오거나 Spanner에서 내보낼 수 있습니다.
- Dataflow를 사용하여 Spanner 데이터베이스를 가져오거나 내보냅니다.
- Avro 파일 형식이나 CSV 파일 형식을 사용하여 Spanner 데이터베이스를 Cloud Storage 버킷으로 내보냅니다.
- Avro 파일이나 CSV 파일의 데이터를 새 Spanner 데이터베이스로 가져옵니다.
사용 사례
다음과 같은 사용 사례에 Spanner 가져오기 및 내보내기를 사용할 수 있습니다.
- 일괄 로드: Spanner에 데이터를 일괄적으로 가져올 수 있습니다.
장기 백업 및 보관처리: 언제든지 데이터베이스를 내보내고 장기 백업이나 보관처리를 할 수 있도록 원하는 Cloud Storage 버킷 위치에 저장할 수 있습니다. 또한 PITR(point-in-time recovery)을 사용하여 특정 이전 타임스탬프에서 데이터베이스를 내보낼 수 있습니다. 복원 속도는 빠르지만 보관 기간이 짧은 재해 복구 기법을 찾고 있다면 백업 또는 PITR(point-in-time recovery)을 사용하는 것이 좋습니다.
개발 또는 테스트 프로젝트에 데이터베이스 복사: 프로덕션 프로젝트에서 데이터베이스를 내보낸 후 통합 테스트나 다른 실험에 사용하도록 개발 또는 테스트 프로젝트로 가져올 수 있습니다.
분석 수집: 데이터베이스를 내보내 운영 데이터를 BigQuery와 같은 분석 서비스로 일괄 수집할 수 있습니다. BigQuery는 Cloud Storage 버킷에서 Avro 형식의 데이터를 자동으로 수집할 수 있으므로 운영 데이터를 더욱 간편하게 분석할 수 있습니다. 데이터를 복사하거나 이동하지 않고 Spanner 데이터를 실시간으로 분석하기 위해 BigQuery를 사용하려는 경우 Spanner 통합 쿼리를 대신 사용할 수 있습니다.
가져오기 및 내보내기와 백업 및 복원 비교
Spanner 가져오기 및 내보내기는 여러 가지 면에서 백업 및 복원과 유사합니다. 다음 표에서는 올바른 항목을 결정할 수 있도록 이들 사이의 유사점과 차이점을 설명합니다.
백업 및 복원 | 가져오기 및 내보내기 | |
---|---|---|
데이터 일관성 | 백업 및 내보낸 데이터베이스 모두 transactional consistency 및 external consistency를 갖습니다. | |
성능 영향 | 백업은 인스턴스 성능에 영향을 미치지 않습니다. Spanner는 인스턴스의 서버 리소스를 사용하지 않는 전용 작업을 사용하여 백업을 수행합니다. | 내보내기는 데이터베이스 성능에 미치는 영향을 최소화하기 위해 중간 우선순위 태스크로 실행됩니다. 자세한 내용은 태스크 우선순위를 참조하세요. |
스토리지 형식 | 빠른 복원을 위해 디자인된 고유 암호화 형식이 사용됩니다. | CSV 및 Avro 파일 형식이 모두 지원됩니다. |
이동성 | 소스 데이터베이스와 동일한 인스턴스에 백업을 create. 백업이 생성된 후 리전 간 또는 프로젝트 간 백업이 필요한 경우 다른 리전 또는 프로젝트의 인스턴스에 백업을 복사할 수 있습니다. 그런 다음 새 데이터베이스의 백업에서 동일한 프로젝트의 모든 인스턴스로 restore할 수 있습니다. 복원하려는 인스턴스는 백업이 저장된 인스턴스와 동일한 인스턴스 구성을 가져야 합니다. |
내보낸 데이터베이스는 Cloud Storage에 저장되고 데이터는 CSV 또는 Avro를 지원하는 시스템으로 마이그레이션될 수 있습니다. |
보관 | 백업은 최대 1년까지 보관할 수 있습니다. | 내보낸 데이터베이스는 Cloud Storage에 저장되며, 기본적으로 삭제되기 전까지 계속 보관됩니다. 수명 주기 및 보관 정책을 맞춤설정할 수 있습니다. |
가격 책정 | 백업은 단위 시간별로 사용된 스토리지를 기준으로 Spanner 프로젝트에 청구됩니다. 자세한 내용은 가격 책정 섹션을 참조하세요. | 가져오기 및 내보내기에 대한 청구는 Cloud Storage 및 Dataflow가 사용되므로 더욱 복잡합니다. 자세한 내용은 데이터베이스 내보내기 및 가져오기 가격 책정을 참조하세요. |
복원 시간 | 복원은 복원 및 최적화의 두 작업으로 수행됩니다. 데이터 복사 없이 데이터베이스가 백업을 직접 마운트하기 때문에 복원 작업은 빠른 첫 바이트 소요 시간을 제공합니다. 최적화하는 동안 읽기 대기 시간이 약간 더 높을 수 있지만 복원 작업이 완료된 다음에는 데이터베이스를 사용할 준비가 됩니다. 자세한 내용은 복원 작동 방법을 참조하세요. | 가져오기는 속도가 더 느립니다. 모든 데이터가 데이터베이스에 기록될 때까지 기다려야 합니다. |
파일 형식 비교
다음 표에서는 Spanner 데이터를 가져오고 내보낼 때 Avro 파일 형식과 CSV 파일 형식 간의 기능 차이를 비교합니다.
기능 | Avro 형식 | CSV 형식 |
---|---|---|
전체 데이터베이스 가져오기 또는 내보내기 | 예 | 아니요 |
데이터베이스에서 선택한 테이블만 내보내는 기능 | 예 | 예 |
이전에 내보낸 테이블을 가져오는 기능 | 예 | 예 |
이전 타임스탬프에서 내보내기 | 예 | 예 |
Google Cloud CLI를 사용하여 가져오기 또는 내보내기 | 예 | 예 |
Dataflow를 사용하여 가져오기 또는 내보내기 | 예 | 예 |
Spanner를 사용하여 가져오기 또는 내보내기 | 예 | 아니요 |
Avro 파일
Avro 형식으로 내보낼 때 내보낼 테이블 목록을 지정할 수 있습니다. 이 방법으로 내보낸 모든 하위 테이블은 상위 테이블과 함께 제공되어야 합니다. Spanner는 내보낸 파일의 전체 데이터베이스 스키마를 유지합니다.
Avro 형식에서 가져오는 경우 Spanner는 모든 테이블을 포함하여 내보낸 데이터베이스의 전체 스키마를 다시 만듭니다. 원래 내보내기에 포함된 테이블은 내보낸 모든 데이터를 수신하며 다른 모든 테이블은 비어 있습니다.
Google Cloud 콘솔의 Spanner 페이지에서는 제한된 Avro 형식 가져오기 및 내보내기 옵션을 제공합니다. 예를 들어 네트워크 및 서브네트워크 옵션을 설정할 수 없습니다. 다양한 옵션을 사용하려면 Dataflow 페이지를 대신 사용합니다.
CSV 파일
한 번에 Spanner 테이블 하나만 CSV 형식으로 내보낼 수 있습니다. 내보낼 때 스키마를 내보내지 않고 데이터만 내보냅니다.
CSV 파일에서 가져오기 전에 JSON 매니페스트 파일을 만들어야 합니다.
가격 책정
내보내기 또는 가져오기 도구의 사용에 대해서는 Spanner에서 추가 요금을 청구하지 않습니다. 데이터베이스를 Spanner로 가져오는 경우 데이터 스토리지에 해당하는 표준 요금이 청구됩니다. 그러나 다음과 같은 경우 데이터베이스 가져오기 및 내보내기와 관련하여 다른 요금이 발생할 가능성이 있습니다. 자세한 내용은 데이터베이스 내보내기 및 가져오기 가격 책정을 참조하세요.
다음 단계
- Spanner에서 Avro로 데이터베이스 내보내기
- Spanner Avro 파일 가져오기
- CSV 형식으로 데이터 가져오기 및 내보내기
- Spanner 이외의 데이터베이스에서 데이터 가져오기