Spanner 변경 내역에서 소스 데이터베이스로 템플릿

스트리밍 파이프라인 Spanner 변경 스트림에서 데이터를 읽고 소스에 씁니다.

템플릿 매개변수

매개변수 설명
changeStreamName 파이프라인에서 읽는 Spanner 변경 스트림의 이름입니다.
instanceId 변경 내역이 있는 Spanner 인스턴스의 이름입니다.
databaseId 변경 스트림이 모니터링하는 Spanner 데이터베이스의 이름입니다.
spannerProjectId Spanner 프로젝트의 이름입니다.
metadataInstance 변경 스트림 API 데이터 소비를 제어하기 위해 커넥터에서 사용되는 메타데이터를 저장하기 위한 인스턴스입니다.
metadataDatabase 변경 스트림 API 데이터 소비를 제어하기 위해 커넥터에 사용되는 메타데이터를 저장하기 위한 데이터베이스입니다.
sourceShardsFilePath 소스 샤드의 연결 프로필 정보가 포함된 Cloud Storage 파일의 경로입니다.
startTimestamp 선택사항: 변경사항 읽기 시작 타임스탬프입니다. 기본값은 빈 값입니다.
endTimestamp 선택사항: 변경사항 읽기의 종료 타임스탬프입니다. 타임스탬프가 제공되지 않으면 무기한 읽습니다. 기본값은 빈 값입니다.
shadowTablePrefix 선택사항: 섀도우 테이블의 이름을 지정하는 데 사용되는 접두사입니다. 기본값: shadow_
sessionFilePath 선택사항: HarbourBridge의 매핑 정보가 포함된 Cloud Storage의 세션 경로입니다.
filtrationMode 선택사항: 필터링 모드입니다. 기준에 따라 특정 레코드를 삭제하는 방법을 지정합니다. 지원되는 모드는 none (필터링 안 함), forward_migration (전방 이전 파이프라인을 사용하여 작성된 레코드 필터링)입니다. 기본값은 forward_migration입니다.
shardingCustomJarPath 선택사항: 샤드 ID를 가져오는 맞춤설정 로직이 포함된 Cloud Storage의 맞춤 JAR 파일 위치입니다. 이 매개변수를 설정하는 경우 shardingCustomJarPath 매개변수를 설정합니다. 기본값은 빈 값입니다.
shardingCustomClassName 선택사항: 맞춤 샤드 ID 구현이 있는 정규화된 클래스 이름입니다. shardingCustomJarPath가 지정된 경우 이 매개변수는 필수입니다. 기본값은 빈 값입니다.
shardingCustomParameters 선택사항: 커스텀 샤딩 클래스에 전달할 커스텀 매개변수가 포함된 문자열입니다. 기본값은 빈 값입니다.
sourceDbTimezoneOffset 선택사항: 소스 데이터베이스의 UTC와의 시간대 오프셋입니다. 값 예시: +10:00 기본값은 +00:00입니다.
dlqGcsPubSubSubscription 선택사항: 일반 모드에서 실행할 때 DLQ 재시도 디렉터리의 Cloud Storage 알림 정책에 사용 중인 Pub/Sub 구독입니다. 이름은 projects/<project-id>/subscriptions/<subscription-name> 형식이어야 합니다. 설정하면 deadLetterQueueDirectory 및 dlqRetryMinutes가 무시됩니다.
skipDirectoryName 선택사항: 역 복제에서 건너뛴 레코드는 이 디렉터리에 기록됩니다. 기본 디렉터리 이름은 skip입니다.
maxShardConnections 선택사항: 특정 샤드에서 허용할 수 있는 최대 연결 수입니다. 기본값은 10000입니다.
deadLetterQueueDirectory 선택사항: 오류 큐 출력을 저장할 때 사용되는 경로입니다. 기본 경로는 Dataflow 작업의 임시 위치 아래에 있는 디렉터리입니다.
dlqMaxRetryCount 선택사항: 임시 오류를 데드 레터 큐를 통해 다시 시도할 수 있는 최대 횟수입니다. 기본값은 500입니다.
runMode 선택사항: 실행 모드 유형입니다. 지원되는 값은 regular, retryDLQ입니다. 기본값: regular retryDLQ를 지정하면 심각한 비활성 메일 큐 레코드만 재시도됩니다.
dlqRetryMinutes (선택사항): 데드 레터 큐 재시도 간격(분)입니다. 기본값은 10입니다.

템플릿 실행

콘솔

  1. Dataflow 템플릿에서 작업 만들기 페이지로 이동합니다.
  2. 템플릿에서 작업 만들기로 이동
  3. 작업 이름 필드에 고유한 작업 이름을 입력합니다.
  4. (선택사항): 리전 엔드포인트의 드롭다운 메뉴에서 값을 선택합니다. 기본 리전은 us-central1입니다.

    Dataflow 작업을 실행할 수 있는 리전 목록은 Dataflow 위치를 참조하세요.

  5. Dataflow 템플릿 드롭다운 메뉴에서 the Spanner Change Streams to Source Database template을 선택합니다.
  6. 제공된 매개변수 필드에 매개변수 값을 입력합니다.
  7. 작업 실행을 클릭합니다.

gcloud CLI

셸 또는 터미널에서 템플릿을 실행합니다.

gcloud dataflow flex-template run JOB_NAME \
    --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/flex/Spanner_to_SourceDb \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    --parameters \
       changeStreamName=CHANGE_STREAM_NAME,\
       instanceId=INSTANCE_ID,\
       databaseId=DATABASE_ID,\
       spannerProjectId=SPANNER_PROJECT_ID,\
       metadataInstance=METADATA_INSTANCE,\
       metadataDatabase=METADATA_DATABASE,\
       sourceShardsFilePath=SOURCE_SHARDS_FILE_PATH,\

다음을 바꿉니다.

  • JOB_NAME: 선택한 고유한 작업 이름
  • VERSION: 사용할 템플릿 버전

    다음 값을 사용할 수 있습니다.

  • REGION_NAME: Dataflow 작업을 배포할 리전(예: us-central1)
  • CHANGE_STREAM_NAME: 읽을 변경 내역의 이름입니다.
  • INSTANCE_ID: Cloud Spanner 인스턴스 ID
  • DATABASE_ID: Cloud Spanner 데이터베이스 ID
  • SPANNER_PROJECT_ID: Cloud Spanner 프로젝트 ID
  • METADATA_INSTANCE: changestream에서 읽을 때 메타데이터를 저장할 Cloud Spanner 인스턴스입니다.
  • METADATA_DATABASE: changestream에서 읽을 때 메타데이터를 저장할 Cloud Spanner 데이터베이스입니다.
  • SOURCE_SHARDS_FILE_PATH: 소스 샤드 세부정보가 포함된 GCS 파일의 경로입니다.

API

REST API를 사용하여 템플릿을 실행하려면 HTTP POST 요청을 전송합니다. API 및 승인 범위에 대한 자세한 내용은 projects.templates.launch를 참조하세요.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch
{
   "launchParameter": {
     "jobName": "JOB_NAME",
     "parameters": {
       "changeStreamName": "CHANGE_STREAM_NAME",
       "instanceId": "INSTANCE_ID",
       "databaseId": "DATABASE_ID",
       "spannerProjectId": "SPANNER_PROJECT_ID",
       "metadataInstance": "METADATA_INSTANCE",
       "metadataDatabase": "METADATA_DATABASE",
       "sourceShardsFilePath": "SOURCE_SHARDS_FILE_PATH",
     },
     "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/Spanner_to_SourceDb",
     "environment": { "maxWorkers": "10" }
  }
}

다음을 바꿉니다.

  • PROJECT_ID: Dataflow 작업을 실행하려는 Google Cloud 프로젝트 ID
  • JOB_NAME: 선택한 고유한 작업 이름
  • VERSION: 사용할 템플릿 버전

    다음 값을 사용할 수 있습니다.

  • LOCATION: Dataflow 작업을 배포할 리전(예: us-central1)
  • CHANGE_STREAM_NAME: 읽을 변경 내역의 이름입니다.
  • INSTANCE_ID: Cloud Spanner 인스턴스 ID
  • DATABASE_ID: Cloud Spanner 데이터베이스 ID
  • SPANNER_PROJECT_ID: Cloud Spanner 프로젝트 ID
  • METADATA_INSTANCE: changestream에서 읽을 때 메타데이터를 저장할 Cloud Spanner 인스턴스입니다.
  • METADATA_DATABASE: changestream에서 읽을 때 메타데이터를 저장할 Cloud Spanner 데이터베이스입니다.
  • SOURCE_SHARDS_FILE_PATH: 소스 샤드 세부정보가 포함된 GCS 파일의 경로입니다.