Bigtable 구독

Bigtable 구독을 사용하면 Pub/Sub 메시지를 Bigtable 테이블에 쓸 수 있습니다. 이 문서에서는 구독 워크플로, 전송 시맨틱, 오류 처리를 비롯한 Bigtable 구독을 간략하게 설명합니다.

Bigtable 구독을 만들려면 Bigtable 구독 만들기를 참고하세요.

개요

Bigtable 구독은 수신되는 메시지를 기존 Bigtable 테이블에 기록하는 내보내기 구독 유형입니다. 내보내기 구독을 사용하면 별도의 구독자 클라이언트를 구성할 필요가 없습니다.

Bigtable에 메시지를 쓰고 메시지에 추가 처리가 필요하지 않거나 단일 메시지 변환 (SMT)으로 처리를 실행할 수 있는 경우 Bigtable 구독을 사용하는 것이 좋습니다.

Bigtable에 메시지를 쓰기 전에 더 복잡한 변환을 실행해야 하는 경우 풀 구독을 사용하여 Dataflow 파이프라인을 사용하는 것이 좋습니다. 자세한 내용은 Pub/Sub에서 Dataflow로 읽기를 참고하세요.

Pub/Sub 구독 유형 선택에 대한 자세한 내용은 구독 유형 선택을 참고하세요.

Bigtable 구독 워크플로

다음은 Bigtable 구독과 Bigtable 간의 워크플로를 보여주는 이미지입니다.

Bigtable 구독은 Bigtable 테이블에 씁니다.

워크플로는 다음 단계로 구성됩니다.

  1. 게시자가 Pub/Sub 주제에 메시지를 전송합니다.

  2. Pub/Sub이 메시지를 Bigtable 구독으로 전달합니다.

  3. 구독이 Bigtable에 쓰기 요청을 보냅니다. 쓰기 요청에서 구독은 단일 클러스터 라우팅을 사용하는 앱 프로필을 지정합니다.

  4. Bigtable은 테이블이 포함된 Bigtable 클러스터로 메시지를 라우팅합니다.

  5. 쓰기 요청이 테이블에 커밋됩니다.

  6. 쓰기 작업이 성공적으로 완료되면 Bigtable API가 성공 응답을 반환합니다.

쓰기 작업이 실패하면 다음과 같이 처리됩니다.

  1. Pub/Sub 메시지가 부정적으로 확인됩니다.

  2. Pub/Sub이 메시지를 다시 전송합니다.

  3. 메시지가 충분히 실패하고 구독에 데드 레터 주제가 구성된 경우 메시지는 데드 레터 주제로 이동합니다.

전송 시맨틱스

Bigtable 구독은 최소 한 번 전송을 지원합니다. 메시지의 정확한 중복 삭제가 필요한 경우 Bigtable에서 잠재적인 중복을 처리하는 다운스트림 프로세스를 구현하거나 Dataflow의 정확히 한 번 처리 기능을 사용하는 것이 좋습니다.

메시지 처리 실패

Pub/Sub 메시지를 Bigtable에 쓸 수 없으면 메시지를 확인할 수 없습니다. 이러한 전달할 수 없는 메시지를 전달하려면 Bigtable 구독에서 데드 레터 주제를 구성합니다. 데드 레터 주제로 전달된 Pub/Sub 메시지에는 쓰기 실패 이유가 포함된 CloudPubSubDeadLetterSourceDeliveryErrorMessage라는 속성이 포함됩니다.

Pub/Sub가 Bigtable에 메시지를 쓸 수 없으면 Pub/Sub는 푸시 백오프 동작과 비슷한 방식으로 메시지 전송을 중단합니다.

할당량 및 한도

Pub/Sub에는 리전별 Bigtable 구독자 처리량에 할당량 제한이 있습니다. 자세한 내용은 Pub/Sub 할당량 및 한도를 참조하세요.

Bigtable 한도에 대한 자세한 내용은 Bigtable 문서의 할당량 및 한도를 참고하세요.

가격 책정

Bigtable 구독의 가격 책정에 대해 알아보려면 Pub/Sub 가격 책정 페이지를 참고하세요.

다음 단계