대부분의 스트리밍 데이터 파이프라인에는 데이터 변환이 필요합니다. 일부 사용자는 추출, 로드, 변환 (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는 다음과 같은 광범위한 사용 사례를 지원합니다.
데이터 마스킹 및 수정: 신용카드 번호 또는 PII와 같은 필드를 마스킹하거나 수정하여 민감한 정보를 보호하고 데이터 개인 정보 보호 규정을 준수합니다.
데이터 형식 변환: 서로 다른 형식 간에 데이터를 변환하여 다운스트림 시스템과의 호환성을 보장합니다.
메시지 필터링: 콘텐츠 또는 속성을 기반으로 원치 않는 메시지를 필터링하여 관련 메시지만 처리합니다. SMT를 사용하면 Pub/Sub의 기본 필터보다 더 복잡한 필터링 조건을 사용할 수 있습니다.
간단한 데이터 변환: 문자열 조작, 날짜 형식 지정, 수학 연산과 같은 기본 데이터 조작 작업을 수행합니다.
SMT 유형
Pub/Sub는 다음 SMT를 지원합니다.
- AI 추론: 에이전트 플랫폼 모델에서 Pub/Sub 메시지에 대한 추론을 가져옵니다.
- 사용자 정의 함수: JavaScript 사용자 정의 함수 (UDF)를 호출하여 Pub/Sub 메시지에 맞춤 변환을 수행합니다.
SMT의 샘플 메시지 흐름
이 이미지는 주제 및 구독 수준 모두에 SMT가 적용된 Pub/Sub 시스템의 예를 보여줍니다.
다음 절차에서는 Pub/Sub 시스템에서 메시지가 흐르는 방식을 보여줍니다.
게시자 애플리케이션 게시자 1 과 게시자 2 는 각각 메시지 A 와 B 를 Pub/Sub 주제에 게시합니다.
주제의 SMT는 메시지 A 와 B 를 각각 메시지 A' 와 B' 로 변환합니다.
스키마가 주제에 연결되어 있으면 변환된 메시지 A' 및 B'가 스키마에 대해 검증됩니다. 예를 들어 A'가 스키마와 일치하지 않으면 메시지 A의 게시가 오류와 함께 실패합니다.
변환된 메시지 A' 와 B' 가 Pub/Sub 스토리지에 기록됩니다.
Pub/Sub는 메시지 A' 와 B' 를 연결된 모든 구독에 전달합니다. 이미지에 표시된 대로 구독 1 과 구독 2 입니다.
구독 1에 필터가 구성되어 있으면 메시지 A'와 B'가 필터에 대해 평가됩니다. 필터와 일치하는 메시지만 다음 단계로 진행됩니다. 다른 메시지는 Pub/Sub에서 자동으로 확인합니다.
구독 2에 필터가 구성되어 있으면 메시지 A'와 B'가 필터에 대해 평가됩니다. 필터와 일치하는 메시지만 다음 단계로 진행됩니다. 다른 메시지는 Pub/Sub에서 자동으로 확인합니다.
구독 1의 SMT는 메시지 A'와 B'를 변환합니다. A' 는 A''가 되고 B'는 B''가 됩니다.
구독 2의 SMT는 메시지 A'와 B'를 변환합니다. A' 는 A'로 유지되고 B'는 필터링됩니다.
구독 1 이 페이로드 래핑 해제 가 사용 설정된 푸시 구독인 경우 메시지 A'' 와 B'' 가 래핑 해제됩니다. 구독 2 가 페이로드 래핑 해제가 사용 설정된 푸시 구독인 경우 A' 가 래핑 해제됩니다.
구독자 1 은 메시지 B'' 를 수신하고 구독자 2 는 메시지 A'' 를 수신하며 구독자 3 는 메시지 A' 를 수신합니다.
구독자는 수신된 메시지를 확인합니다.
Pub/Sub는 확인된 메시지를 스토리지에서 삭제합니다.
제한사항
주제 또는 구독에서 최대 5개의 SMT를 사용 설정할 수 있습니다.
SMT는 단일 Pub/Sub 메시지에서 작동합니다. 여러 Pub/Sub 메시지를 집계할 수 없습니다.