소스 Mongo 데이터베이스에서 가져오기

이 페이지에서는 Datastream 스트림을 사용하여 MongoDB 호환 소스 데이터베이스의 콘텐츠를 캡처하고 Cloud Storage 버킷으로 전송하는 마이그레이션 프로세스의 첫 번째 단계를 설명합니다.

스트림의 YAML 구성 파일 만들기

스트림을 만들려면 일반적인 명령줄 플래그 외에도 YAML 형식의 구성 파일 두 개가 필요합니다.

  • mongo_source_config.yaml 파일은 데이터베이스 이름과 같은 마이그레이션할 특정 리소스의 선택을 구성합니다. 호스트 이름, 사용자 이름, 비밀번호와 같은 Mongo 연결 매개변수는 모두 연결 프로필의 속성입니다. 하지만 데이터베이스 (및 해당 데이터베이스 내의 특정 컬렉션)는 스트림의 속성입니다.

  • gcs_dst_config.yaml 파일은 Cloud Storage 내의 데이터 배치를 구성합니다. Cloud Storage 버킷과 버킷 내의 루트 경로는 연결 프로필의 속성입니다. 하지만 데이터 형식과 Cloud Storage 버킷 구조 내의 데이터 배치 방식은 스트림의 속성입니다.

다음 명령 예시에서는 이러한 파일을 만들고 이전에 설정한 환경 변수의 값으로 파일을 채웁니다. 또는 텍스트 편집기에서 이러한 파일을 만들고 값을 수동으로 대체할 수 있습니다.

echo "$(cat <<EOF
includeObjects:
  databases:
  - database: ${MONGODB_DATABASE_NAME}
EOF
)" > mongo_source_config.yaml

echo "$(cat <<EOF
path: "/${GCS_BUCKET_SUB_PATH}"
avroFileFormat: {}
EOF
)" > gcs_dst_config.yaml

이전 예에서는 마이그레이션을 위해 $MONGODB_DATABASE_NAME의 전체 콘텐츠를 구성합니다. 데이터베이스 내의 특정 컬렉션으로 마이그레이션을 제한할 수도 있습니다. 예를 들어 userschats 컬렉션만 이전하려면 다음을 사용합니다.

includeObjects:
  databases:
  - database: ${MONGODB_DATABASE_NAME}
    collections:
      - collection: users
      - collection: chats

Datastream 스트림 만들기

그런 다음 소스와 대상을 연결하는 스트림을 만듭니다.

gcloud datastream streams create "$DATASTREAM_NAME" \
--display-name="$DATASTREAM_NAME" \
--location="$LOCATION" \
--source="$SRC_CONNECTION_PROFILE_NAME" \
--destination="$DST_CONNECTION_PROFILE_NAME" \
--mongodb-source-config=./mongo_source_config.yaml \
--gcs-destination-config=./gcs_dst_config.yaml \
--backfill-all

Datastream 스트림 생성 모니터링에 관한 자세한 내용은 문제 해결을 참고하세요.

Datastream 스트림 활성화

마지막으로 새 스트림을 활성화합니다.

스트림이 Mongo 소스에서 데이터를 가져오고 변경사항을 스트리밍하기 시작하면 연결 프로필과 스트림에 구성된 경로 아래 Cloud Storage 버킷에 생성된 새 디렉터리와 파일을 확인할 수 있습니다.

스트림을 활성화하려면 다음 명령어를 실행합니다.

gcloud datastream streams update "$DATASTREAM_NAME" \
--location="$LOCATION" \
--state=RUNNING \
--update-mask=state

다음 단계

대상 데이터베이스에 데이터 쓰기로 진행합니다.