이 페이지에서는 Dataproc Metastore 관리형 마이그레이션을 시작하고 관리하는 방법을 보여줍니다.
Dataproc Metastore API를 사용하여 마이그레이션을 구성할 수 있습니다.
시작하기 전에
- 관리형 마이그레이션의 작동 방식을 이해합니다.
- 관리형 마이그레이션 기본 요건을 설정합니다.
이전 시작
마이그레이션 시작을 실행하면 Dataproc Metastore는 Cloud SQL에 연결하고 Cloud SQL을 백엔드 데이터베이스로 사용합니다. 이 프로세스 중에 Dataproc Metastore는 Cloud SQL에서 자체 데이터베이스(Spanner)로 데이터를 복사하는 파이프라인을 실행합니다.
Dataproc Metastore는 계속해서 Cloud SQL을 백엔드로 사용하고 전체 마이그레이션 프로세스가 호출될 때까지 데이터를 복제합니다.
마이그레이션을 시작하기 전에 관리형 마이그레이션 기본 요건을 설정했는지 확인하세요.
마이그레이션 시작 고려사항
Dataproc Metastore 서비스는 한 번에 하나의 마이그레이션만 실행할 수 있습니다.
마이그레이션은 마이그레이션 프로세스를 완료할 때까지 활성 상태로 유지됩니다. 마이그레이션을 완료하는 데는 기한이 없습니다. 예를 들어 마이그레이션에는 1일, 30일, 1년이 걸릴 수 있습니다.
예약된 백업은 마이그레이션 중에 제한되지 않습니다. 하지만 백업이 완료되지 않을 수 있습니다. 문제를 방지하려면 마이그레이션이 진행되는 동안 예약된 백업을 사용 중지하세요.
마이그레이션을 시작하면 다음과 같은 상태 변경이 트리거됩니다.
- Dataproc Metastore가
MIGRATING
상태로 이동합니다. - 마이그레이션 실행 상태가
RUNNING
으로 이동합니다. 마이그레이션 실행 단계가
REPLICATION
으로 이동합니다.
Console
시작하기
Google Cloud 콘솔에서 Dataproc Metastore 페이지를 엽니다.
Dataproc Metastore 페이지에서 마이그레이션하려는 서비스 이름을 클릭합니다.
서비스 세부정보 페이지가 열립니다.
페이지 상단에서 데이터 마이그레이션을 클릭합니다.
마이그레이션 만들기 페이지가 연결 탭에 열리고 Dataproc Metastore용 Cloud SQL 데이터베이스 구성 구성 설정이 표시됩니다.
DPMS용 Cloud SQL 데이터베이스 구성
인스턴스 연결 이름에 Cloud SQL 데이터베이스의 인스턴스 연결 이름을
project_id:region:instance_name
형식으로 입력합니다.IP 주소 필드에 Cloud SQL 인스턴스에 연결하는 데 필요한 IP 주소를 입력합니다.
포트 필드에 3306을 입력합니다.
Hive 데이터베이스 이름에 자체 관리형 Hive Metastore의 백엔드로 사용할 데이터베이스의 이름을 입력합니다.
사용자 이름 필드에 Cloud SQL을 Hive Metastore에 연결하는 데 사용하는 사용자 이름을 입력합니다.
비밀번호 필드에 Cloud SQL을 Hive Metastore에 연결하는 데 사용할 비밀번호를 입력합니다.
SOCKS5 프록시 서비스
프록시 서브넷 필드에 일반 유형의 서브넷을 입력합니다. 서브네트워크는 Cloud SQL VPC 네트워크에 있어야 합니다. 이 서브넷은 중간 SOCKS5 프록시 서비스를 배포하는 데 사용됩니다.
NAT 서브넷 필드에 Private Service Connect 유형의 서브넷을 입력합니다. 이 서브네트워크는 Cloud SQL VPC 네트워크에 있어야 하며 Private Service Connect를 사용하여 SOCKS5 프록시 서비스를 게시하는 데 사용됩니다.
계속을 클릭합니다.
변경 데이터 캡처(CDC) 탭이 열리고 Datastream용 Cloud SQL 데이터베이스 구성 구성 설정이 표시됩니다.
데이터 스트림에 대한 Cloud SQL 데이터베이스 구성
사용자 이름 필드에 Datastream에서 사용하는 Cloud SQL CDC에 로그인하기 위해 사용하는 사용자 이름을 입력합니다.
비밀번호 필드에 Datastream에서 사용하는 Cloud SQL CDC에 로그인하는 데 사용하는 비밀번호를 입력합니다.
VPC 네트워크 필드에서 Datastream이 CDC에 비공개 연결을 설정하는 데 사용하는 Cloud SQL 인스턴스와 동일한 VPC 네트워크에 네트워크를 입력합니다.
서브넷 IP 범위 필드에
/29
이상의 서브넷 IP 범위를 입력합니다. Datastream은 이 IP를 사용해서 VPC 네트워크에 대한 피어링을 설정합니다.리버스 프록시 서브넷 필드에 Cloud SQL과 동일한 VPC 네트워크에서 만든 서브네트워크를 입력합니다. Datastream은 이 서브네트워크를 사용합니다. 서브네트워크는 Datastream CDC에 대한 리버스 프록시 연결을 호스팅하기 위해 사용됩니다. 서브넷은 Dataproc Metastore 서비스와 동일한 리전에 구성되어 있어야 합니다.
GCS 구성
버킷 ID의 경우 마이그레이션 중 CDC 데이터를 저장할 Cloud Storage 경로를 선택합니다.
루트 경로 필드에 Cloud Storage 버킷 내 루트 경로를 입력합니다. 스트림 이벤트 데이터가 이 경로에 기록됩니다.
만들기를 클릭합니다.
REST
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type:application/json" \
-X POST -d \
'{
"migration_execution": {
"cloud_sql_migration_config": {
"cloud_sql_connection_config": {
"instance_connection_name": INSTANCE_CONNECTION_NAME,
"hive_database_name": "HIVE_DATABASE_NAME",
"ip_address": "IP_ADDRESS",
"port": 3306,
"username": "CONNECTION_USERNAME",
"password": "CONNECTION_PASSWORD",
"proxy_subnet": "PROXY_SUBNET",
"nat_subnet": "NAT_SUBNET"
},
"cdc_config": {
"username": "CDC_USENAME",
"password": "CDC_PASSWORD",
"vpc_network": "VPC_NETWORK",
"subnet_ip_range": "SUBNET_IP_RANGE",
"reverse_proxy_subnet": "REVERSE_PROXY_SUBNET_ID",
"bucket": "BUCKET_NAME",
"root_path": "ROOT_PATH",
}
}
}
}' \
https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/SERVICE:startMigration
다음을 바꿉니다.
SERVICE
: Dataproc Metastore 서비스의 이름 또는 ID입니다.PROJECT_ID
: Dataproc Metastore 서비스가 있는 Google Cloud 프로젝트의 프로젝트 ID입니다.LOCATION
: Dataproc Metastore 서비스가 있는 Google Cloud 리전입니다.
Cloud SQL 마이그레이션 구성
INSTANCE_CONNECTION_NAME
: Cloud SQL 데이터베이스의 인스턴스 연결 이름이며 형식은PROJECT_ID/LOCATION/CLOUDSQL_INSTANCE_ID
입니다.HIVE_DATABASE_NAME
: Cloud SQL에 연결된 자체 관리형 Hive 데이터베이스의 이름입니다.IP_ADDRESS
: Cloud SQL 인스턴스에 연결하는 데 필요한 IP 주소입니다.CONNECTION_USERNAME
: Cloud SQL을 Hive Metastore에 연결하는 데 사용하는 사용자 이름입니다.CONNECTION_PASSWORD
: Cloud SQL을 Hive Metastore에 연결하는 데 사용하는 비밀번호입니다.PROXY_SUBNET
: Cloud SQL VPC 네트워크에서 사용되는 서브네트워크입니다. 이 서브네트워크는 중간 프록시를 호스팅하여 전환 네트워크 간의 연결을 제공합니다.NAT_SUBNET
: Dataproc Metastore 서비스에서 중간 프록시에 액세스하기 위한 연결을 제공하는 Private Service Connect 서브넷입니다. 서브넷 크기의 프리픽스 길이는 /29 이상이고 IPv4 범위에 있어야 합니다.
CDC 구성
CDC_USERNAME
: Datastream 서비스가 Cloud SQL에 로그인하기 위해 사용하는 사용자 이름입니다.CDC_PASSWORD
: Datastream 서비스가 Cloud SQL에 로그인하기 위해 사용하는 비밀번호입니다.VPC_NETWORK
: Datastream에서 CDC에 대한 비공개 연결을 설정하는 데 사용되는 Cloud SQL 인스턴스와 동일한 VPC 네트워크에 있는 네트워크입니다.SUBNET_IP_RANGE
: Datastream에서 VPC 네트워크에 피어링을 설정하는 데 사용되는 /29 이상의 서브넷 IP 범위입니다.REVERSE_PROXY_SUBNET_ID
: Datastream에서 사용하는 Cloud SQL 인스턴스와 동일한 VPC 네트워크에 있는 서브네트워크입니다. 서브네트워크는 Datastream CDC에 대한 리버스 프록시 연결을 호스팅하기 위해 사용됩니다. 서브넷은 Dataproc Metastore 서비스와 동일한 리전에 구성되어 있어야 합니다.BUCKET_NAME
: 마이그레이션 중 CDC 데이터를 저장할 Cloud Storage 경로입니다.ROOT_PATH
: Cloud Storage 버킷 내 루트 경로입니다. 스트림 이벤트 데이터가 이 경로에 기록됩니다.
이전 완료
마이그레이션을 완료하면 Dataproc Metastore가 Spanner에 연결하고 Spanner를 백엔드 데이터베이스로 사용하기 시작합니다.
마이그레이션이 완료되면 다음과 같은 상태 변경이 트리거됩니다.
- Dataproc Metastore가 다시
ACTIVE
상태로 전환됩니다. 마이그레이션 실행 상태가
SUCCEEDED
로 이동합니다.
Console
Google Cloud 콘솔에서 Dataproc Metastore 페이지를 엽니다.
페이지 상단에서 데이터 마이그레이션을 클릭합니다.
데이터 마이그레이션 페이지가 열리고 완료된 관리형 마이그레이션이 표시됩니다.
REST
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type:application/json" \
-X POST -d '' \
https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/SERVICE:completeMigration
다음을 바꿉니다.
SERVICE
: Dataproc Metastore 서비스의 이름 또는 ID입니다.PROJECT_ID
: Dataproc Metastore 서비스가 있는 Google Cloud 프로젝트의 프로젝트 ID입니다.LOCATION
: Dataproc Metastore 서비스가 있는 Google Cloud 리전입니다.
이전 취소
마이그레이션을 취소하면 Dataproc Metastore는 모든 변경사항을 되돌리고 Spanner 데이터베이스 유형을 백엔드 데이터베이스로 사용하기 시작합니다. 마이그레이션 중에 전송된 모든 데이터가 삭제됩니다.
마이그레이션을 취소하면 다음과 같은 상태 변경이 트리거됩니다.
- Dataproc Metastore가 다시
ACTIVE
상태로 전환됩니다. 마이그레이션 실행 상태가
CANCELLED
로 이동합니다.
Console
Google Cloud 콘솔에서 Dataproc Metastore 페이지를 엽니다.
페이지 상단에서 데이터 마이그레이션을 클릭합니다.
데이터 마이그레이션 페이지가 열리고 취소된 관리형 마이그레이션이 표시됩니다.
REST
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type:application/json" \
-X POST -d '' \
https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/SERVICE:cancelMigration
다음을 바꿉니다.
SERVICE_NAME
: Dataproc Metastore 서비스의 이름 또는 ID입니다.PROJECT_ID
: Dataproc Metastore 서비스가 있는 Google Cloud 프로젝트의 프로젝트 ID입니다.LOCATION
: Dataproc Metastore 서비스가 있는 Google Cloud 리전입니다.
마이그레이션 세부정보 가져오기
단일 관리형 마이그레이션에 대한 세부정보를 가져옵니다.
Console
Google Cloud 콘솔에서 Dataproc Metastore 페이지를 엽니다.
페이지 상단에서 데이터 마이그레이션을 클릭합니다.
데이터 마이그레이션 페이지가 열리고 관리형 마이그레이션이 표시됩니다.
마이그레이션 세부정보를 더 가져오려면 관리형 마이그레이션의 이름을 클릭합니다.
REST
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-X GET \
https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/SERVICE/migrationExecutions/MIGRATION_ID
다음을 바꿉니다.
SERVICE
: Dataproc Metastore 서비스의 이름 또는 ID입니다.PROJECT_ID
: Dataproc Metastore 서비스가 있는 Google Cloud 프로젝트의 프로젝트 ID입니다.LOCATION
: Dataproc Metastore 서비스가 있는 Google Cloud 리전입니다.MIGRATION_ID
: Dataproc Metastore 마이그레이션의 이름 또는 ID입니다.
마이그레이션 나열
관리형 마이그레이션을 나열합니다.
Console
Google Cloud 콘솔에서 Dataproc Metastore 페이지를 엽니다.
페이지 상단에서 데이터 마이그레이션을 클릭합니다.
데이터 마이그레이션 페이지가 열리고 관리형 마이그레이션이 표시됩니다.
명령어가 마이그레이션을 나열하는지 확인합니다.
REST
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-X GET \
https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/SERVICE/migrationExecutions/MIGRATION_ID
다음을 바꿉니다.
SERVICE
: Dataproc Metastore 서비스의 이름 또는 ID입니다.PROJECT_ID
: Dataproc Metastore 서비스가 있는 Google Cloud 프로젝트의 프로젝트 ID입니다.LOCATION
: Dataproc Metastore 서비스가 있는 Google Cloud 리전입니다.
마이그레이션 삭제
관리형 마이그레이션을 삭제합니다.
콘솔
Google Cloud 콘솔에서 Dataproc Metastore 페이지를 엽니다.
페이지 상단에서 데이터 마이그레이션을 클릭합니다.
데이터 마이그레이션 페이지가 열리고 관리형 마이그레이션이 표시됩니다.
마이그레이션을 선택하고 삭제를 클릭합니다.
REST
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-X DELETE \
https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/SERVICE/migrationExecutions/MIGRATION_ID
다음을 바꿉니다.
SERVICE
: Dataproc Metastore 서비스의 이름 또는 ID입니다.PROJECT_ID
: Dataproc Metastore 서비스가 있는 Google Cloud 프로젝트의 프로젝트 ID입니다.LOCATION
: Dataproc Metastore 서비스가 있는 Google Cloud 리전입니다.MIGRATION_ID
: Dataproc Metastore 마이그레이션의 이름 또는 ID입니다.