이 문서에서는 CSV 파일 형식의 데이터 소량을 Spanner에 로드하는 방법을 안내합니다. 프로덕션 데이터 마이그레이션을 수행하기 전에 샘플 데이터를 로드하여 스키마, 쿼리, 애플리케이션을 테스트할 수 있습니다.
시작하기 전에
- Google Cloud CLI를 설치하거나 필요한 모든 도구가 사전 설치된 Cloud Shell을 사용합니다. 
- 
  
  
  
  
  
  
  
    
    
    
    
    
    
      
      
        
        
      
      
    
    
    
    
    
  
  
  
    
    
    
    
    
    
      
      
        
        
      
      
    
    
    
    
    
  
  
  
    
    
    
    
    
    
      
      
        
        
      
      
    
    
    
    
    
  
  BigQuery 데이터를 Spanner로 내보내는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요. - 
            BigQuery 테이블에서 데이터 내보내기: BigQuery 데이터 뷰어(roles/bigquery.dataViewer)
- 
            내보내기 작업 실행: BigQuery 사용자(roles/bigquery.user)
- 
            Spanner 테이블에 데이터 쓰기: Spanner 데이터베이스 사용자(roles/spanner.databaseUser)
 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요. 
- 
            BigQuery 테이블에서 데이터 내보내기: BigQuery 데이터 뷰어(
Spanner에 샘플 데이터 로드
다음 안내는 BigQuery 역방향 ETL 워크플로와 Google Cloud CLI를 통해 수행됩니다.
- 다음 명령어를 사용하여 gcloud CLI에서 기본 프로젝트를 설정합니다. - gcloud config set project PROJECT_ID 
- 소스 데이터를 CSV 파일 형식으로 내보냅니다. PostgreSQL 데이터베이스의 경우 - pg_dump를, MySQL 데이터베이스 도구의 경우- mysqldump를 사용하여 샘플 데이터를 CSV 파일 형식으로 변환하는 것이 좋습니다.
- 다음 - bq명령어를 사용하여 데이터를 BigQuery에 로드합니다.- BigQuery 데이터 세트를 만듭니다. - bq mk BQ_DATASET 
- 데이터를 새 BigQuery 테이블에 일괄 로드합니다. - bq load \ --source_format=CSV \ --autodetect \ --allow_quoted_newlines \ BQ_DATASET.BQ_TABLE /path/to/file - 또는 Cloud Storage 파일에서 데이터를 일괄 로드할 수 있습니다. - bq load \ --source_format=CSV \ --autodetect \ --allow_quoted_newlines \ BQ_DATASET.BQ_TABLE gs://BUCKET/FILE 
 
- 다음 명령어를 사용하여 가져온 BQ_TABLE과 일치하는 Spanner 스키마를 만듭니다. - gcloud spanner databases ddl update SPANNER_DATABASE \ --instance=SPANNER_INSTANCE \ --ddl="CREATE TABLE SPANNER_TABLE ..." - 자세한 내용은 Spanner 스키마 업데이트를 참조하세요. 
- 다음 명령어를 사용하여 BigQuery에서 Spanner로 데이터를 내보냅니다. - bq --use_legacy_sql=false 'EXPORT DATA OPTIONS( uri="https://spanner.googleapis.com/projects/PROJECT_ID/instances/SPANNER_INSTANCE/databases/SPANNER_DATABASE" format='CLOUD_SPANNER' spanner_options="""{ "table": "SPANNER_TABLE" }""" ) AS SELECT * FROM BQ_DATASET.BQ_TABLE;'