Thumbnail
Braze

브레이즈 Cloud Data Ingestion으로 브레이즈와 데이터 웨어하우스 동기화하기 (with BigQuery)

Why

Wavve는 내부 데이터베이스와 브레이즈 간 데이터 정합성을 높이기 위해 REST API를 사용하여 브레이즈 데이터를 업데이트했습니다. 그러나 API 서버 관리에 많은 개발 리소스가 필요해 새롭고 효율적인 데이터 업데이트 방법이 필요했습니다.

Action Item

Wavve는 이미 빅쿼리를 적극적으로 활용하고 있었습니다. 이에 Cloud Data Ingestion 기능으로 브레이즈와 빅쿼리를 연동하여 빅쿼리의 데이터를 브레이즈로 전송하기로 했습니다.

Impact

빅쿼리 연동으로 기존의 API 관리 리소스를 절감함과 동시에, 브레이즈와 내부 데이터베이스 간의 데이터 정합성을 효과적으로 높일 수 있었습니다.

💡 이런 고민이 있는 분께 이 페이퍼를 추천해요

이런 목표가 있는 분께 이 페이퍼를 추천해요

  • Braze(브레이즈)에 내부 데이터베이스의 데이터를 업데이트 하고자하는 고객사

  • REST API 이외의 방법으로 브레이즈 데이터를 업데이트 하려는 고객사

  • Snowflake, Amazon Redshift, Google BigQuery, Databricks와 같은 데이터 웨어하우스를 사용하거나 Amazon S3와 같은 파일 스토리지를 활용하는 고객사


배경

Wavve 웨이브

출처: 웨이브

출처: 웨이브

Wavve는 한국에서 가장 다양한 콘텐츠를 제공하는 OTT 플랫폼입니다.

오리지널 콘텐츠는 물론, 매일 업데이트 되는 방송, 콘텐츠, HBO, NBCU 등 글로벌 스튜디오의 독점 해외 시리즈, 최신 영화와 애니메이션까지 수많은 콘텐츠를 제공합니다. 또한 미주 지역 OTT 'KOCOWA' 인수를 통해 글로벌 시장을 향해 발돋움하고 있습니다.

⏩️ Wavve 바로가기

Needs

Wavve는 브레이즈의 사용자 속성 정보를 내부 데이터베이스와 동기화하여 활용하고자 했습니다. 이를 위해 별도로 API 서버를 구축하여 내부 데이터베이스의 사용자 속성 정보를 브레이즈로 전송하고 있었습니다.

그러나 사용자 정보를 업데이트하기 위해 별도로 마련된 API 서버를 점검하고 관리하는 것은, 지속적으로 내부 인력 공수가 드는 일이었습니다. Wavve에서는 이 문제를 브레이즈의 Cloud Data Ingestion 기능을 통해 해결했습니다.


액션 아이템

Strategy

Wavve는 데이터 웨어하우스로써 활발하게 사용하고 있던 구글 빅쿼리를, Cloud Data Ingestion을 통해 브레이즈와 연동하였습니다. 이를 통해 내부 데이터베이스에 존재하는 사용자 속성 정보를 손쉽게 브레이즈로 전송해 CRM에 활용할 수 있었습니다.

Cloud Data Ingestion

Cloud Data Ingestion은 고객사의 데이터 웨어하우스 또는 파일 스토리지와 브레이즈로 연동하여 데이터를 동기화할 수 있는 기능입니다. 동기화된 데이터는 API를 통해 서버 투 서버로 수집된 데이터처럼, 브레이즈에서 메시지 개인화, 이벤트 트리거, 세그먼트에 활용할 수 있습니다.

아래 데이터 웨어하우스와 파일 스토리지를 지원합니다.

Cloud Data Ingestion에 대한 보다 자세한 내용은 브레이즈 유저 가이드를 확인해 주세요.

주의 사항

Cloud Data Ingestion으로 동기화한 이벤트는 API와 마찬가지로 브레이즈 인앱메시지의 이벤트 트리거로 활용할 수 없습니다. 푸시 알림, 이메일, 웹훅 등 다른 채널에서는 이벤트 트리거로 활용할 수 있습니다. 활용에 반드시 참고해주세요.


How to do

[STEP 1] 데이터 타입 및 비용 확인하기

연동하기 전, 빅쿼리에서 브레이즈로 데이터를 전송할 때 지원되는 데이터 형식과 데이터 전송 시 두 솔루션에서 사용되는 비용을 확인합니다.

지원하는 데이터 타입

데이터 업데이트 시 참고 사항

  • 비용을 최소화하기 위해 업데이트가 필요한 데이터만 전송해주세요.

  • 모든 데이터의 타임스탬프(Timestamp)를 UTC 타임존 기준으로 업데이트해주세요.

  • 연동할 수 있는 빅쿼리 테이블 개수에는 제한이 없습니다.

  • 연동할 수 있는 행(row) 개수에는 제한이 없습니다.

데이터 업데이트 시 참고할 다른 사항은 브레이즈 유저 가이드를 참고해주세요.

비용

1. 브레이즈 데이터 포인트

Cloud Data Ingestion으로 데이터를 전송할 때, 데이터 유형에 따라 일부 사용자 속성 및 이벤트의 경우 브레이즈 데이터 포인트가 차감될 수 있습니다. 데이터 포인트 차감 기준은 브레이즈 유저 가이드에서 확인할 수 있습니다.

2. 빅쿼리 비용

빅쿼리에서도 일부 비용이 발생할 수 있습니다. 빅쿼리에서 발생하는 비용은 내부 개발팀과 확인해 주세요.

[STEP 2] 빅쿼리에서 테이블 생성하기

빅쿼리에서 브레이즈로 전송할 테이블을 생성합니다. 테이블은 전송하려는 브레이즈 데이터 타입별로 생성해야 합니다. 예를 들어 사용자 속성과 커스텀 이벤트를 전송하려면 사용자 속성을 위한 테이블과 커스텀 이벤트를 위한 테이블을 각각 생성해야 합니다.

동일한 타입의 서로 다른 데이터를 별도로 관리하기 위해 테이블을 여러 개 생성할 수도 있습니다. 예를 들어 사용자 속성 A는 1시간마다, 사용자 속성 B는 30분마다 전송되도록 별도로 테이블을 구성할 수 있습니다.

테이블 형식

사용자 속성을 기준으로 연동할 때 테이블은 아래 칼럼을 필수로 포함해야 합니다. 자세한 내용은 브레이즈 유저 가이드를 참고해 주세요.

1. UPDATED_AT

개별 데이터가 동기화된 시간입니다. 브레이즈에서는 UPDATED_AT 칼럼을 활용해 가장 마지막 동기화 시점 이후에 업데이트된 데이터만 가져옵니다. 동기화할 데이터가 없으면 타임스탬프의 기본값으로 적용됩니다. (1970-01-01 09:00)

2. USER IDENTIFIER

브레이즈에서는 아래 세 가지 식별자를 기준으로 사용자를 식별하며, 세 가지 중 반드시 하나 이상의 식별자를 포함해 전송해야 합니다. EXTERNAL_ID 사용을 권장합니다.

Cloud Data Ingestion 테이블 데이터 (출처: 브레이즈 가이드)

Cloud Data Ingestion 테이블 데이터 (출처: 브레이즈 가이드)

3. PAYLOAD

PAYLOAD 칼럼에는 추가 또는 업데이트할 사용자 속성 데이터를 입력합니다. 데이터는 JSON 형식으로 제공되어야 합니다. 기존 데이터를 삭제하려면 해당 데이터의 값을 null로 설정합니다.

USER IDENTIFIER 칼럼과 PAYLOAD 칼럼을 꼭 분리해 주세요. 가령 사용자 식별자로 EXTERNAL_ID를 사용하는 경우, 테이블은 아래의 예시와 같이 구성되어야 합니다.

Cloud Data Ingestion 테이블 예시 (출처: 브레이즈 가이드)

Cloud Data Ingestion 테이블 예시 (출처: 브레이즈 가이드)

[STEP 3] 브레이즈가 빅쿼리에 접근할 수 있도록 권한 설정하기

구글 클라우드 플랫폼에서 브레이즈가 빅쿼리 테이블에 접근할 수 있도록 권한을 설정합니다. 각 데이터 웨어하우스 별 권한 설정에 대한 자세한 사항은 브레이즈 유저 가이드를 참고해 주세요.

[STEP 4] 브레이즈 대시보드에서 빅쿼리 연동 진행하기

브레이즈 대시보드에서 빅쿼리 연동을 진행합니다. 연동에 필요한 정보는 빅쿼리에서 확인합니다.

커넥션 설정

연동할 빅쿼리 테이블 정보를 입력합니다. 최초 연동 시 빅쿼리 인증서 업로드가 필요합니다.

연동 세부 사항 설정

연동 세부 사항을 설정합니다.

알림 설정

데이터 동기화 후 성공 및 에러 메시지 알림을 설정합니다.

테스트 연결

먼저 테스트 연결을 통해 데이터가 정상적으로 전송됐는지 확인합니다.

[STEP 5] 실제 연동하기

테스트 연결에서 정상적으로 연동되는 것을 확인한 후 실제 연동을 진행합니다. 연동이 성공하면 Status가 Active로 표시됩니다.

[STEP 6] 연동 히스토리 및 오류 메시지 확인하기

동기화 현황은 Sync History에서 확인할 수 있습니다. 오류 발생 시 Details 칼럼에서 오류 메시지를 확인할 수 있습니다.


Impact

다음은 Wavve 데이터 개발팀의 강태윤 님, 조용현 님과의 인터뷰 내용입니다.

Q. Cloud Data Ingestion 기능이 실무에서 어떤 식으로 도움이 되었나요?

A. Wavve에서는 이런 효과를 느꼈습니다.

브레이즈 데이터 관리 리소스 감소

기존에 사용자 속성 정보를 업데이트하기 위해 API를 활용할 때는 백엔드 개발팀에서 지속해서 API 서버를 관리 및 모니터링해야 했습니다. 또한 신규 데이터를 추가할 때 필요한 리소스의 범위가 너무 넓어, 리소스 확보에 어려움이 있었습니다.

그러나 Cloud Data Ingestion을 도입한 이후로 데이터 팀에서 편리하게 관리할 수 있게 되었고, 데이터 관리 및 추가 수집에 필요한 리소스가 대폭 감소하였습니다.

또한 Cloud Data Ingestion에서 발생한 오류는 브레이즈 대시보드에서 손쉽게 확인할 수 있고 상세하게 제공되기 때문에 연동 초기에 데이터 포맷 관련 오류가 발생했을 때 빠르게 수정할 수 있었습니다.

쉬운 연동 과정

이미 내부적으로 빅쿼리를 잘 활용하고 있었기 때문에 별도의 학습 없이 손쉽게 연동을 진행할 수 있었습니다. 또한 연동 속도가 매우 빠르고 한 번에 처리할 수 있는 양이 많아 마이그레이션 과정에서 매우 편리했습니다. 정말 좋은 기능이라고 생각합니다.

Cloud Data Ingestion 기능은 연동 과정이 단순하여 이미 데이터 웨어하우스를 사용하고 있다면 연동이 어렵지 않을 것으로 생각합니다. 특히 최근에 Amazon S3 연동이 추가된 만큼 사용이 활용성이 더욱 늘어날 것으로 기대됩니다.

또한 도입 과정에서 웨이브 담당 CSM 안상현 매니저님의 많은 도움으로 시행착오를 최소화할 수 있었습니다.

더욱 정확한 브레이즈 데이터

브레이즈 데이터를 내부 데이터와 동기화했기 때문에 브레이즈 데이터와 내부 데이터가 완전하게 일치한다고 믿고 사용할 수 있게 되었습니다. 이에 따라 브레이즈로 캠페인을 운영하는 마케터분들이 정확한 데이터를 활용해 캠페인을 운영할 수 있게 되었습니다.

추가 활용 계획

현재는 사용자 속성 데이터만 Cloud Data Ingestion을 활용하고 있으며, 이벤트 데이터는 여전히 API를 사용하고 있습니다. 추후 가능한 범위 내에서 이벤트 데이터도 Cloud Data Ingestion을 통해 관리할 계획입니다.


Key Takeaways

CSM's Insight

“데이터 웨어하우스를 사용하고 있다면 Cloud Data Ingestion 기능은 브레이즈 데이터를 관리하는 가장 효과적인 방법이 될 수 있습니다. Cloud Data Ingestion 기능을 통해 더욱 정확한 정보를 기반으로 효과적으로 캠페인을 운영해보세요.”

Cloud Data Ingestion 기능과 아래 기능을 함께 사용해 브레이즈를 더욱 스마트하게 활용해보세요.

  • 커런츠(Currents) : 브레이즈 로우 데이터(Raw Data)를 외부로 내보내 활용해보세요.

AUTHORS

안상현 Sanghyun Ahn ∙ AB180 ∙ Customer Success Manager

안상현 Sanghyun Ahn ∙ AB180 ∙ Customer Success Manager

AB180의 Customer Success Manager로서 Airbridge, Braze, Amplitude를 활용하는 다양한 버티컬의 고객사를 담당하고 있습니다. 데이터 설계, 솔루션 연동, Full Cycle 마케팅 전략, 리텐션 개선 전략까지 솔루션 도입과 활용을 전문적으로 지원합니다.