.sh
파일인 shell script를 작성합니다. 동일하게, SQL 쿼리들을 파일에 모아 일괄적으로 실행하려는 경우에는 .sql
파일을 작성하게 되는데 보통은 적용하려는 RDBMS의 SHELL 환경에 접속하여 CLI 형태로 dump 작업을 진행하게 됩니다..sql
파일에 저장된 많은 양의 쿼리를 구글 클라우드의 데이터베이스 서비스인 Cloud SQL에 적용될 수 있도록 해 볼 것입니다.dump.sql
파일을 Cloud SQL(MySQL 버전)에 적용하여 DB내에 테이블 생성이 될 수 있도록 하는 것입니다..sql
파일을 GCS 버킷의 특정 경로에 저장합니다.Cloud SQL 생성하는 구체적인 과정은 '인스턴스 만들기 | Cloud SQL for MySQL' 문서를 참고바랍니다.
gs://sprintda03_hyunsoo_bucket/sprint_dataset/dump-hackle-202411211621.sql
gs://sprintda03_hyunsoo_bucket/sprint_dataset/dump-votes-202412161403.sql
> gcloud auth list
--- 출력 예시 ---
Credentialed Accounts
ACTIVE: *
ACCOUNT: hyunsoo@codeit.com
roles/storage.admin
또는 roles/storage.objectViewer
권한이 필요합니다.> gcloud storage buckets get-iam-policy gs://[BUCKET_NAME]
--- 출력 예시 ---
bindings:
- members:
- projectEditor:sprintda03-hyunsoo
- projectOwner:sprintda03-hyunsoo
role: roles/storage.legacyBucketOwner
- members:
- projectViewer:sprintda03-hyunsoo
role: roles/storage.legacyBucketReader
- members:
- projectEditor:sprintda03-hyunsoo
- projectOwner:sprintda03-hyunsoo
role: roles/storage.legacyObjectOwner
- members:
- projectViewer:sprintda03-hyunsoo
role: roles/storage.legacyObjectReader
etag: CAU=
roles/storage.objectViewer
권한을 추가합니다.> gcloud storage buckets add-iam-policy-binding gs://[BUCKET_NAME] \
--member=user:[사용중인 계정의 email] \
--role=roles/storage.objectViewer
> gcloud sql instances describe [DB INSTANCE_NAME] --format="value(serviceAccountEmailAddress)"
--- 출력 예시 ---
cloud-sql-123456@gcp-sa-cloud-sql.iam.gserviceaccount.com
roles/storage.objectViewer
)을 추가해주어야 합니다.> gcloud storage buckets add-iam-policy-binding gs://[BUCKET_NAME] \
--member=serviceAccount:[SERVICE_ACCOUNT_EMAIL] \
--role=roles/storage.objectViewer
Cloud SQL
> Databases
> CREATE DATABASE
탭에서 생성이 가능합니다.> gcloud sql import sql [DB INSTANCE_NAME] \
[GCS의 .sql 파일 경로]\
--database=[생성한 DB NAME] \
--project=[PROJECT ID]
--- 예시 코드---
> gcloud sql import sql [DB INSTANCE_NAME] \
gs://sprintda03_hyunsoo_bucket/sprint_dataset/dump-votes-202412161403.sql \
--database=hackle \
--project=sprintda03-hyunsoo