Cloud Spanner change streams to Pub/Sub
Cloud Spanner change stream to Pub/Sub 템플릿은 Cloud Spanner 데이터 변경 레코드를 스트리밍하고 Dataflow Runner V2를 사용하여 Pub/Sub 주제에 쓰는 스트리밍 파이프라인입니다.
새 Pub/Sub 주제로 데이터를 출력하려면 먼저 주제를 만들어야 합니다. 만들어진 후에는 Pub/Sub에서 자동으로 구독을 생성하고 새 주제에 연결합니다. 데이터를 존재하지 않는 Pub/Sub 주제에 출력하려고 하면 Dataflow 파이프라인에서 예외가 발생하고 파이프라인이 연결을 계속 시도하므로 파이프라인이 중단됩니다.
필요한 Pub/Sub 주제가 이미 존재하면 데이터를 해당 주제로 출력할 수 있습니다.
자세한 내용은 변경 내역 정보, Dataflow를 사용하여 변경 내역 연결 빌드, 변경 내역 권장사항을 참조하세요.
파이프라인 요구사항
- 파이프라인을 실행하기 전에 Cloud Spanner 인스턴스가 있어야 합니다.
- 파이프라인을 실행하기 전에 Cloud Spanner 데이터베이스가 있어야 합니다.
- 파이프라인을 실행하기 전에 Cloud Spanner 메타데이터 인스턴스가 있어야 합니다.
- 파이프라인을 실행하기 전에 Cloud Spanner 메타데이터 데이터베이스가 있어야 합니다.
- 파이프라인을 실행하기 전에 Cloud Spanner 변경 내역이 있어야 합니다.
- 파이프라인을 실행하기 전에 Pub/Sub 주제가 있어야 합니다.
템플릿 매개변수
매개변수 | 설명 |
---|---|
spannerInstanceId |
변경 스트림을 읽어올 Cloud Spanner 인스턴스입니다. |
spannerDatabase |
변경 스트림을 읽어올 Cloud Spanner 데이터베이스입니다. |
spannerMetadataInstanceId |
변경 내역 커넥터 메타데이터 테이블에 사용할 Cloud Spanner 인스턴스입니다. |
spannerMetadataDatabase |
변경 내역 커넥터 메타데이터 테이블에 사용할 Cloud Spanner 데이터베이스입니다. |
spannerChangeStreamName |
읽어 올 Cloud Spanner 변경 스트림의 이름입니다. |
pubsubTopic |
변경 내역 출력을 위한 Pub/Sub 주제입니다. |
spannerProjectId |
(선택사항) 변경 내역을 읽어 올 프로젝트입니다. 변경 내역 커넥터 메타데이터 테이블이 생성되는 프로젝트이기도 합니다. 이 매개변수의 기본값은 Dataflow 파이프라인이 실행되는 프로젝트입니다. |
spannerMetadataTableName |
(선택사항) 사용할 Cloud Spanner 변경 내역 커넥터 메타데이터 테이블 이름입니다. 제공되지 않으면 Cloud Spanner는 파이프라인 흐름 변경 중에 스트림 커넥터 메타데이터 테이블을 자동으로 만듭니다. 기존 파이프라인을 업데이트할 때 이 매개변수를 제공해야 합니다. 다른 경우에는 이 매개변수를 사용하지 마세요. |
rpcPriority |
(선택사항) Cloud Spanner 호출의 요청 우선순위입니다. 값은 [HIGH,MEDIUM,LOW] 중 하나여야 합니다. (기본값: HIGH) |
startTimestamp |
(선택사항) 변경 내역을 읽는 데 사용할 시작 DateTime(경계 포함)입니다. 예를 들면 ex-2021-10-12T07:20:50.52Z입니다. 기본값은 파이프라인이 시작되는 시점의 타임스탬프, 즉 현재 시간입니다. |
endTimestamp |
(선택사항) 변경 내역을 읽는 데 사용할 종료 DateTime(경계 포함)입니다. 예를 들면 ex-2021-10-12T07:20:50.52Z입니다. 기본값은 미래의 무한대 시간입니다. |
outputFileFormat |
(선택사항) 출력 형식입니다. 출력은 여러 PubsubMessages로 래핑되고 Pub/Sub 주제로 전송됩니다. 허용되는 형식은 JSON 및 AVRO입니다. 기본값은 JSON입니다. |
pubsubAPI |
(선택사항)파이프라인을 구현하는 데 사용되는 Pub/Sub API입니다. 허용되는 API는 pubsubio 및 native_client 입니다. 소수의 초당 쿼리 수(QPS)에서는 native_client 지연 시간이 더 짧습니다. 많은 수의 QPS에서 pubsubio 가 더 우수하고 안정적인 성능을 제공합니다. 기본값은 pubsubio 입니다. |
템플릿 실행
콘솔
- Dataflow 템플릿에서 작업 만들기 페이지로 이동합니다. 템플릿에서 작업 만들기로 이동
- 작업 이름 필드에 고유한 작업 이름을 입력합니다.
- 선택사항: 리전 엔드포인트의 드롭다운 메뉴에서 값을 선택합니다. 기본 리전 엔드포인트는
us-central1
입니다.Dataflow 작업을 실행할 수 있는 리전 목록은 Dataflow 위치를 참조하세요.
- Dataflow 템플릿 드롭다운 메뉴에서 the Cloud Spanner change streams to Pub/Sub template을 선택합니다.
- 제공된 매개변수 필드에 매개변수 값을 입력합니다.
- 작업 실행을 클릭합니다.
gcloud
셸 또는 터미널에서 템플릿을 실행합니다.
gcloud beta dataflow flex-template run JOB_NAME \ --template-file-gcs-location=gs://dataflow-templates/VERSION/flex/Spanner_Change_Streams_to_PubSub \ --region REGION_NAME \ --parameters \ spannerInstanceId=SPANNER_INSTANCE_ID,\ spannerDatabase=SPANNER_DATABASE,\ spannerMetadataInstanceId=SPANNER_METADATA_INSTANCE_ID,\ spannerMetadataDatabase=SPANNER_METADATA_DATABASE,\ spannerChangeStreamName=SPANNER_CHANGE_STREAM,\ pubsubTopic=PUBSUB_TOPIC
다음을 바꿉니다.
JOB_NAME
: 선택한 고유한 작업 이름VERSION
: 사용할 템플릿 버전다음 값을 사용할 수 있습니다.
latest
: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.- 버전 이름(예:
2021-09-20-00_RC00
): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
REGION_NAME
: Dataflow 작업을 배포할 리전 엔드포인트(예:us-central1
)SPANNER_INSTANCE_ID
: Cloud Spanner 인스턴스 IDSPANNER_DATABASE
: Cloud Spanner 데이터베이스SPANNER_METADATA_INSTANCE_ID
: Cloud Spanner 메타데이터 인스턴스 IDSPANNER_METADATA_DATABASE
: Cloud Spanner 메타데이터 데이터베이스SPANNER_CHANGE_STREAM
: Cloud Spanner 변경 내역PUBSUB_TOPIC
: 변경 내역 출력을 위한 Pub/Sub 주제
API
REST API를 사용하여 템플릿을 실행하려면 HTTP POST 요청을 전송합니다. API 및 승인 범위에 대한 자세한 내용은 projects.templates.launch
를 참조하세요.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch { "launch_parameter": { "jobName": "JOB_NAME", "parameters": { "spannerInstanceId": "SPANNER_INSTANCE_ID", "spannerDatabase": "SPANNER_DATABASE", "spannerMetadataInstanceId": "SPANNER_METADATA_INSTANCE_ID", "spannerMetadataDatabase": "SPANNER_METADATA_DATABASE", "spannerChangeStreamName": "SPANNER_CHANGE_STREAM", "pubsubTopic": "PUBSUB_TOPIC" }, "containerSpecGcsPath": "gs://dataflow-templates/VERSION/flex/Spanner_Change_Streams_to_PubSub", } }
다음을 바꿉니다.
PROJECT_ID
: Dataflow 작업을 실행할 Cloud 프로젝트 IDJOB_NAME
: 선택한 고유한 작업 이름VERSION
: 사용할 템플릿 버전다음 값을 사용할 수 있습니다.
latest
: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.- 버전 이름(예:
2021-09-20-00_RC00
): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
LOCATION
: Dataflow 작업을 배포할 리전 엔드포인트(예:us-central1
)SPANNER_INSTANCE_ID
: Cloud Spanner 인스턴스 IDSPANNER_DATABASE
: Cloud Spanner 데이터베이스SPANNER_METADATA_INSTANCE_ID
: Cloud Spanner 메타데이터 인스턴스 IDSPANNER_METADATA_DATABASE
: Cloud Spanner 메타데이터 데이터베이스SPANNER_CHANGE_STREAM
: Cloud Spanner 변경 내역PUBSUB_TOPIC
: 변경 내역 출력을 위한 Pub/Sub 주제