이 페이지에서는 Cloud Storage 버킷에 데이터를 쓰도록 Datastream을 구성하는 방법을 설명합니다.
Cloud Storage는 Google Cloud에 데이터를 저장하기 위한 서비스입니다. 데이터는 버킷이라는 컨테이너에 객체로 저장됩니다. Cloud Storage로 스트리밍하면 Datastream이 객체 이름과 타임스탬프별로 데이터를 정리합니다. 그런 다음 Cloud Storage API를 사용하여 데이터를 사용할 수 있습니다. 자세한 내용은 Cloud Storage 버킷 정보를 참고하세요.
API 사용 설정
대상 Cloud Storage 버킷이 Datastream과 동일한 프로젝트에 있으면 Datastream API를 사용 설정하면 충분합니다.
다른 프로젝트의 버킷에 작성하는 경우 Datastream과 연결된 서비스 계정에 이 버킷에 액세스할 수 있는 권한을 부여해야 합니다.
- 서비스 계정에 사용되는 이메일 주소를 가져옵니다. Google Cloud 콘솔 홈페이지에서 프로젝트 번호를 찾으면 됩니다. 서비스 계정의 이메일 주소는
service-[project_number]@gcp-sa-datastream.iam.gserviceaccount.com
입니다. - 이 이메일 주소에 대상 버킷에 쓸 수 있는 필수 권한(일반적으로
roles/storage.objectViewer
,roles/storage.objectCreator
및roles/storage.legacyBucketReader
권한)을 부여합니다.
대상 버킷 및 접두사 지정
스트림 구성에서 프로젝트 이름, 버킷 이름, 선택적 파일 프리픽스를 제공하여 데이터가 작성되는 위치를 결정합니다.
쓰기 동작
- 지정된 스트림에 대한 데이터는 제공된 버킷 또는 파일 프리픽스(
[bucket]/[prefix]/[object name]/yyyy/mm/dd/hh/mm/[filename(idempotent)]
)에 작성됩니다. - 데이터베이스 소스 경로의 객체 이름은 스키마 이름 다음에 테이블 이름(밑줄 '_'로 구분됨)입니다.
- 경로의 타임스탬프(hh/mm)는 이벤트 메타데이터의 소스 타임스탬프입니다.
- 백필 이벤트의 경우 타임스탬프는 백필 태스크가 시작된 시간(일반적으로 스트림이 시작되었거나 백필이 수동으로 트리거된 시간)을 나타냅니다.
- CDC 이벤트의 경우 타임스탬프는 소스에서 레코드가 변경된 시간을 나타냅니다.
- 파일은 최대 파일 크기 또는 최대 제한 시간 중 먼저 도달하는 시점마다 순환됩니다. Datastream API를 사용하여 최대 파일 크기 및 최대 제한 시간 값을 조정할 수 있습니다.
- 또한 소스 스키마 변경이 감지될 때마다 파일이 순환됩니다(예: 새 열 추가).
- 동일한 시간에 동일한 경로 내에 여러 파일이 있을 수 있습니다.
- 데이터는 Cloud Storage API에 따라 소비될 수 있습니다.
- Cloud Storage에 데이터를 스트리밍할 때 최대 이벤트 크기는 100MB입니다.
경우에 따라, 특히 스트림이 처음 실행될 때 백필과 CDC가 겹쳐 중복 이벤트가 발생할 수 있습니다. Datastream이 현재 데이터베이스 로그 파일(스트림이 시작되기 전에 생성)에서 읽기를 시작하면 이 로그 파일에는 백필에서 캡처하는 일부 이벤트도 포함됩니다. 이는 예상되는 동작이며 필요한 경우 이벤트 메타데이터를 사용하여 중복 이벤트를 삭제할 수 있습니다.
다음 단계
- Datastream을 사용하여 거의 실시간으로 데이터 변경사항을 스트리밍하는 방법을 알아보세요.