단일 메시지 변환 (SMT) 개요

대부분의 스트리밍 데이터 파이프라인에는 데이터 변환이 필요합니다. 일부 사용자는 추출, 로드, 변환 (ELT) 파이프라인에서 데이터가 대상에 도달한 후 변환하는 것을 선호하는 반면, 다른 사용자는 추출, 변환, 로드 (ETL) 파이프라인에서 데이터 수집 전에 변환하는 것을 선택합니다. 지금까지 이 아키텍처에서는 데이터 변환을 수행하기 위해 Dataflow 또는 Apache Flink와 같은 도구가 포함된 복잡한 파이프라인이 필요했습니다.

Pub/Sub는 스트리밍 파이프라인의 데이터 변환을 간소화하기 위해 단일 메시지 변환 (SMT)을 제공합니다. SMT를 사용하면 Pub/Sub 내에서 직접 메시지 데이터와 속성을 가볍게 수정할 수 있습니다. SMT를 사용하면 추가 데이터 처리 단계 또는 별도의 데이터 변환 제품이 필요하지 않습니다.

SMT가 실행되면 메시지 데이터와 속성을 포함하여 Pub/Sub 메시지를 입력으로 사용합니다. 출력은 데이터 또는 속성이 수정된 변환된 Pub/Sub 메시지입니다. SMT는 Pub/Sub API에 통합되어 있으므로 주제 또는 구독 구성의 일부로 관리할 수 있습니다.

SMT 사용 사례

고객이 웹사이트를 탐색할 때 맞춤형 제품 추천을 제공하려는 온라인 상점을 설계한다고 가정해 보겠습니다. 이렇게 하려면 Pub/Sub를 사용하여 사이트의 고객 활동에 관한 실시간 데이터를 수집하면 됩니다. 여기에는 조회된 제품, 장바구니에 추가된 제품, 제품에 부여된 평점에 관한 데이터가 포함됩니다.

하지만 이 원시 데이터는 추천을 생성하는 데 사용하기 전에 조정이 필요한 경우가 많습니다. 예를 들어 원시 데이터에는 사용 사례와 관련이 없는 불필요한 세부정보가 포함될 수 있습니다. 이러한 세부정보의 예로는 고객의 브라우저 유형 또는 사이트를 방문한 시간이 있습니다. 데이터가 추천 시스템에 필요한 형식이 아닐 수도 있습니다. 예를 들어 타임스탬프가 서로 다른 형식일 수 있거나 제품 ID를 다른 유형으로 변환해야 할 수 있습니다.

Pub/Sub SMT를 사용하여 다음과 같은 데이터 변환을 수행할 수 있습니다.

  • 성명, 주소와 같은 개인 식별 정보 (PII)를 삭제하여 고객 개인 정보를 보호합니다.

  • 제품 조회 및 구매와 같이 추천과 관련된 이벤트만 유지하고 고객 프로필 변경과 같은 다른 이벤트는 삭제합니다.

  • 모든 타임스탬프, 통화 값, 제품 ID가 추천 시스템과 호환되는 일관된 형식과 유형을 준수하는지 확인합니다.

  • 장바구니 총액 또는 제품 페이지 체류 시간과 같은 원시 데이터에서 새 데이터 필드를 생성합니다.

  • Gemini Enterprise 에이전트 플랫폼 모델의 추론을 분류, 예측, 감정, 임베딩과 같은 이벤트 데이터에 추가합니다.

요약하자면 SMT는 다음과 같은 광범위한 사용 사례를 지원합니다.

SMT 유형

Pub/Sub는 다음 SMT를 지원합니다.

  • AI 추론: 에이전트 플랫폼 모델에서 Pub/Sub 메시지에 대한 추론을 가져옵니다.
  • 사용자 정의 함수: JavaScript 사용자 정의 함수 (UDF)를 호출하여 Pub/Sub 메시지에 맞춤 변환을 수행합니다.

SMT의 샘플 메시지 흐름

이 이미지는 주제 및 구독 수준 모두에 SMT가 적용된 Pub/Sub 시스템의 예를 보여줍니다.

주제 SMT 및 구독 SMT로 메시지가 어떤 영향을 받는지 보여주는 그림입니다.
그림 1 SMT로 메시지를 변환하는 방법

다음 절차에서는 Pub/Sub 시스템에서 메시지가 흐르는 방식을 보여줍니다.

  1. 게시자 애플리케이션 게시자 1게시자 2 는 각각 메시지 AB 를 Pub/Sub 주제에 게시합니다.

  2. 주제의 SMT는 메시지 AB 를 각각 메시지 A'B' 로 변환합니다.

  3. 스키마가 주제에 연결되어 있으면 변환된 메시지 A'B'가 스키마에 대해 검증됩니다. 예를 들어 A'가 스키마와 일치하지 않으면 메시지 A의 게시가 오류와 함께 실패합니다.

  4. 변환된 메시지 A'B' 가 Pub/Sub 스토리지에 기록됩니다.

  5. Pub/Sub는 메시지 A'B' 를 연결된 모든 구독에 전달합니다. 이미지에 표시된 대로 구독 1구독 2 입니다.

  6. 구독 1에 필터가 구성되어 있으면 메시지 A'B'가 필터에 대해 평가됩니다. 필터와 일치하는 메시지만 다음 단계로 진행됩니다. 다른 메시지는 Pub/Sub에서 자동으로 확인합니다.

  7. 구독 2에 필터가 구성되어 있으면 메시지 A'B'가 필터에 대해 평가됩니다. 필터와 일치하는 메시지만 다음 단계로 진행됩니다. 다른 메시지는 Pub/Sub에서 자동으로 확인합니다.

  8. 구독 1의 SMT는 메시지 A'B'를 변환합니다. A'A''가 되고 B'B''가 됩니다.

  9. 구독 2의 SMT는 메시지 A'B'를 변환합니다. A'A'로 유지되고 B'는 필터링됩니다.

  10. 구독 1 이 페이로드 래핑 해제 가 사용 설정된 푸시 구독인 경우 메시지 A''B'' 가 래핑 해제됩니다. 구독 2 가 페이로드 래핑 해제가 사용 설정된 푸시 구독인 경우 A' 가 래핑 해제됩니다.

  11. 구독자 1 은 메시지 B'' 를 수신하고 구독자 2 는 메시지 A'' 를 수신하며 구독자 3 는 메시지 A' 를 수신합니다.

  12. 구독자는 수신된 메시지를 확인합니다.

  13. Pub/Sub는 확인된 메시지를 스토리지에서 삭제합니다.

제한사항

  • 주제 또는 구독에서 최대 5개의 SMT를 사용 설정할 수 있습니다.

  • SMT는 단일 Pub/Sub 메시지에서 작동합니다. 여러 Pub/Sub 메시지를 집계할 수 없습니다.

다음 단계