이 문서에서는 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;'