대상

개요

Datastream의 스트림 대상은 Cloud Storage입니다.

이 섹션에서는 다음에 관해 설명합니다.

  • 이 스트림 대상 설정 중
  • 대상에서 데이터를 쓸 위치를 결정하기 위해 대상 버킷 및 프리픽스 지정
  • 대상 위치에 기록된 데이터와 관련된 동작

설정

대상 Cloud Storage 버킷이 Datastream과 동일한 프로젝트에 있는 경우 Datastream API를 사용 설정하면 충분합니다.

다른 프로젝트의 버킷에 작성하는 경우 Datastream과 연결된 서비스 계정에 이 버킷에 액세스할 수 있는 권한을 부여해야 합니다.

  1. 서비스 계정에 사용되는 이메일 주소를 가져옵니다. Cloud Console 홈페이지에서 프로젝트 번호를 찾으면 됩니다. 서비스 계정의 이메일 주소는 service-[project_number]@gcp-sa-datastream.iam.gserviceaccount.com입니다.
  2. 이 이메일 주소에 대상 버킷에 쓸 수 있는 필수 권한(일반적으로 roles/storage.objectViewer, roles/storage.objectCreatorroles/storage.legacyBucketReader 권한)을 부여합니다.

대상 버킷 및 프리픽스 지정

스트림 구성에 프로젝트 이름, 버킷 이름, 파일 이름(선택사항)을 입력하여 데이터가 기록되는 위치를 결정합니다.

쓰기 동작

  • 지정된 스트림의 데이터는 [bucket]/[prefix]/[object name]/yyyy/mm/dd/hh/mm/[filename(idempotent)]에서 제공된 버킷 또는 파일 프리픽스에 기록됩니다.
  • 데이터베이스 소스 경로의 객체 이름은 스키마 이름 다음에 테이블 이름(밑줄 '_'로 구분됨)입니다.
  • 경로의 타임스탬프(hh/mm)는 이벤트 메타데이터의 소스 타임스탬프입니다.
    • 백필 이벤트의 경우 타임스탬프는 백필 태스크가 시작된 시간을 나타냅니다. 일반적으로 스트림이 시작되거나 백필이 수동으로 트리거된 시간을 나타냅니다.
    • CDC 이벤트의 경우 타임스탬프는 소스에서 레코드가 변경된 시기를 나타냅니다.
  • 최대 파일 크기 또는 최대 제한 시간에 도달하면(둘 중 빠른 시점 적용) 파일이 순환됩니다.
  • 또한 소스 스키마 변경이 감지될 때마다 파일이 순환됩니다(예: 새 열 추가).
  • 동일한 경로 내에 1분 동안 여러 파일이 있을 수 있습니다.
  • Cloud Storage API에 따라 데이터를 사용할 수 있습니다.

경우에 따라 가장 먼저 스트림 실행이 처음 실행되면 백필과 CDC가 겹쳐 중복 이벤트가 발생합니다. 이는 Datastream이 현재 데이터베이스 로그 파일(스트림이 시작되기 전에 생성됨)에서 읽기를 시작할 때 발생하며, 이 로그 파일에는 백필로 캡처되는 일부 이벤트도 포함됩니다. 이는 예상되는 동작이며, 필요한 경우 이벤트 메타데이터를 사용하여 중복 이벤트를 제거할 수 있습니다.