데이터 웨어하우스 현대화를 성공적으로 달성한 MLB 팬 데이터팀

Rob Goretsky
VP, Data Engineering, Major League Baseball
* 본 아티클의 원문은 2020년 8월 12일 Google Cloud 블로그(영문)에 게재되었습니다.
편집자 주: 이 블로그 게시물에서는 MLB의 데이터 엔지니어링 부문 부사장인 로브 코렛스키가 데이터 웨어하우스 현대화 여정에 대한 자세한 내용을 설명합니다. Next OnAir 세션에서 MLB의 데이터 웨어하우스 현대화 전문을 확인해 보세요. 그리고 MLB가 BigQuery를 이용하여 팬 데이터의 하위 집합을 MLB 구단과 공유하는 방법에 대한 실시간 데모를 시청해 보세요.
MLB에서는 팬들의 디지털 활동과 경기장 내의 트랜잭션 및 상호작용으로 생성된 데이터를 통해 제품 기능을 신속하게 반복하고, 콘텐츠와 혜택을 맞춤설정하며, 팬과 스포츠가 연결될 수 있도록 합니다. MLB의 팬 데이터 엔지니어링팀은 제3자와 내부 소스로부터 데이터를 수집하고 이 데이터를 엔터프라이즈 데이터 웨어하우스(EDW)에서 중앙화하기 위해 350개 이상의 데이터 파이프라인을 관리하는 업무를 담당하고 있습니다. EDW는 내부 제품, 마케팅, 재무, 티켓 판매, 매장, 분석, 데이터 과학 부서와 30곳의 모든 MLB 구단에서 데이터 관련 이니셔티브를 진행하는 데 중심적인 역할을 합니다. 이러한 이니셔티브의 예는 다음과 같습니다.
팬이 응원하는 팀에 맞춰 MLB.com에 표시되는 뉴스 기사를 맞춤설정합니다.
관람하려는 경기가 시작되기 전에 팬에게 관련 정보를 전달합니다.
MLB.tv 구독자에 대한 수익 예상 및 이탈률 분석을 진행합니다.
팬의 구매 행동을 예측할 ML 모델을 빌드합니다.
MLB 본사에서 30곳의 MLB 구단까지 팬의 트랜잭션 및 참여 데이터를 공유하여 각 구단에서 정보에 입각하여 자체적으로 의사 결정을 내릴 수 있도록 지원합니다.
2018년, 기술 평가 후 MLB는 EDW를 Teradata에서 Google Cloud의 BigQuery로 마이그레이션하기로 결정했습니다. 2019년 초에 개념 증명을 성공적으로 완료했으며 2019년 5월부터 2019년 11월까지 Teradata에서 BigQuery로 완전히 마이그레이션하는 프로젝트를 진행했습니다. (맞아요, 마이그레이션을 완료하는 데 7개월이 걸렸습니다.) 마이그레이션이 완료됨에 따라 MLB는 현대적인 클라우드 우선 데이터 웨어하우스 플랫폼으로 마이그레이션함으로써 얻을 수 있는 다양한 이점을 누리게 되었습니다. 그 방법을 소개해 드리겠습니다.
MLB가 BigQuery로 마이그레이션한 방법
MLB에서는 Teradata에서 BigQuery로 마이그레이션하기 위해 여러 개의 작업 흐름을 동시에 실행했습니다.
복제: Teradata에서 BigQuery로 데이터를 복사하기 위해 Teradata에서 정기적으로 업데이트되는 약 1,000개의 테이블 각각에 대해 Apache Airflow를 사용하여 데이터 복제 작업을 배포했습니다. 각 작업은 해당하는 업스트림 소스에서 Teradata로 데이터가 채워진 후에만 복제를 트리거하도록 구성되었습니다. 즉, 데이터는 BigQuery에서도 Teradata에서와 같이 항상 최신 상태를 유지합니다. BigQuery의 최신 데이터를 통해 데이터의 모든 다운스트림 소비자(비즈니스 인텔리전스, 분석, 데이터 과학, 마케팅팀의 구성원 포함)는 대부분의 ETL 변환이 완료되기 전의 프로젝트 초기에 BigQuery에서 완전히 새로운 프로세스를 빌드 및 분석하고 보고서를 작성할 수 있었습니다.
ETL 변환: 350개가 넘는 ETL 작업을 Airflow와 Informatica에서 실행했으며 각 작업은 BigQuery와 상호작용을 위해 변환해야 하는 각 데이터를 Teradata에 채우거나 Teradata에서 데이터를 추출하는 것으로 이루어졌습니다. 이렇게 변환하고 작업을 마이그레이션하는 순서를 정하기 위해 종속 항목 맵을 작성하여 어떤 테이블과 ETL 작업이 다른 것에 대해 업스트림인지, 다운스트림인지 파악했습니다. 다운스트림 종속 항목 수가 적어 의존도가 덜 한 작업을 먼저 마이그레이션할 수 있었습니다. CompilerWorks의 SQL Transpiler 도구는 한 언어에서 다른 언어로의 SQL 기계 번역을 처리해주기 때문에 도움이 많이 됐습니다. 데이터 엔지니어는 이 도구의 출력을 개별적으로 확인하고, 결과를 검증하고, 필요한 경우 쿼리 로직을 알맞게 조정해야 했습니다. 검증 작업을 돕기 위해 BigQuery에서 실행되는 테이블 비교 도구를 만들어 ETL 작업의 출력 데이터와 비교했습니다.
보고서 변환: Looker 및 다른 기존 도구를 이용하여 최종 사용자를 위한 보고서를 생성했습니다. 비즈니스 인텔리전스팀은 정확성을 보장하기 위해 각 보고서에 대해 SQL 로직을 변환하고 보고서 출력을 검토했습니다. Teradata에서 BigQuery로 직접 복제된 데이터를 이용할 수 있으므로 이러한 작업 흐름은 ETL 변환 작업 흐름과 별개로 실행할 수 있었습니다.
최종 사용자 학습: 마케팅, 데이터 과학, 분석팀 내의 사용자는 프로젝트 초기에 BigQuery로 온보딩되어 Teradata에서 복제되는 데이터를 활용했습니다. 따라서 팀에서 BigQuery 구문을 학습하고 BigQuery에 도구를 연결할 수 있는 충분한 시간을 확보할 수 있었습니다.
보안 구성: G Suite를 통해 MLB의 기존 SSO 설정을 활용하여 사용자가 데스크톱 및 이메일 액세스에 사용하는 것과 동일한 사용자 인증 정보를 사용하여 BigQuery에 액세스할 수 있도록 프로비저닝했습니다. 사용자 인증 정보를 별도의 집합으로 설정할 필요는 없었으며 조직을 떠난 사용자의 데이터 액세스 권한은 즉시 연결 해제했습니다.
마이그레이션으로 MLB가 얻은 이점
가격: BigQuery의 주문형 가격 책정 모델을 통하여 최소한의 비용과 무약정으로 성능 테스트를 나란히 실행할 수 있었습니다. 이러한 테스트에는 가장 크고 다양한 데이터 세트를 복사하는 작업과 실행 시간을 비교하기 위해 실제 SQL 쿼리를 실행하는 내용이 포함되었습니다. MLB에서 마이그레이션 작업을 수행함에 따라 BigQuery 비용은 마이그레이션된 워크로드 수에 비례하여 증가했습니다. BigQuery Reservations를 통해 주문형 가격 책정에서 정액제로 전환함으로써 비용을 고정하고, 예상치 못한 초과분(실수로 가장 큰 테이블에서 ‘SELECT * FROM’을 실행하는 경우)을 방지하며, 사용하지 않은 용량을 데이터 과학팀 및 분석팀을 비롯한 조직의 다른 부서와 공유할 수 있었습니다.
데이터 민주화: 사용자에게 Teradata에 대한 직접 액세스를 제공하는 것은 불가능하지는 않았으나 네트워크 연결 제한 및 클라이언트 소프트웨어 설정 문제로 인해 번거로웠습니다. 반면 BigQuery에서는 버튼 클릭으로 간단하고 안전하게 모든 G Suite 사용자 또는 그룹과 데이터 세트를 공유할 수 있었습니다. 사용자는 BigQuery의 웹 콘솔에 액세스하여 즉시 검토하고 공유된 데이터에 SQL 쿼리를 실행할 수 있습니다. 또한 Connected Sheets를 사용하여 대규모 데이터 세트를 익숙한 인터페이스의 피벗 테이블로 분석할 수 있습니다. 이와 더불어 파일 및 다른 데이터베이스에서 데이터를 가져오고 이러한 비공개 데이터 세트를 엔지니어링팀이 중앙에서 공유한 데이터와 조인할 수 있습니다.
MLB의 본사는 여러 데이터 소스의 데이터 수집과 처리를 다루며 내부적으로는 'Wheelhouse'라고 알려진 이니셔티브에 따라 각 구단에게 구단별 데이터를 공유합니다. 이전 Wheelhouse 데이터 공유 인프라에서는 데이터 세트당 하나의 클럽으로 Teradata에서 S3로 덤프되는 일일 데이터가 포함되며 지연 시간과 동기화 문제가 발생했습니다. 새로운 Wheelhouse 인프라는 BigQuery의 승인된 뷰를 활용하여 구단에서 관련 데이터의 특정 행에 실시간으로 액세스할 수 있도록 합니다. 예를 들어 MLB는 30곳의 모든 구단으로부터 티켓 판매 데이터를 받고 각 구단이 자신의 팀에 대한 판매 데이터만 볼 수 있도록 구단별 승인된 뷰를 설정합니다. BigQuery의 서버리스 인프라 덕분에 한 사용자가 의도치 않게 다른 모든 사용자의 성능에 영향을 미칠 경우를 염려하지 않아도 됩니다. 이러한 아키텍처의 간소화는 다음 다이어그램에서 확인할 수 있습니다.



BigQuery로 마이그레이션으로 이룬 IT 결과 보기
개선된 성능: BigQuery에서의 쿼리 완료 시간은 Teradata와 비교하여 일반적으로 50% 빠릅니다. Teradata에서 타임아웃 또는 실패로 인해 프로세스 중 전체 시스템에 영향을 주거나 Teradata에 로딩 자체를 할 수 없었던 쿼리는 대부분 BigQuery에서 문제없이 실행됩니다. 웹사이트와 앱의 조회 수준 클릭 스트림 데이터로 구성되는 연간 150TB 이상의 대규모 데이터 세트의 경우에 특히 그렇습니다. 이전에 이 데이터 세트는 데이터 웨어하우스 외부에 저장되고 Hadoop 생태계에서 별도의 도구로 처리되어야 했으며 이로 인해 분석가는 이 데이터를 다른 트랜잭션 데이터 세트와 조인하는 데 어려움을 겪었습니다.
통합으로 얻은 다양한 정보: BigQuery Data Transfer Service를 사용하여 현재 MLB가 사용하는 여러 서비스(Google Ads, Google Campaign Manager, Firebase 등)와의 통합 설정이 간편해졌습니다. 이전에는 이러한 종류의 통합을 설정하는 데 직접 코딩과 많은 시간이 소요되는 ETL 프로세스가 포함되었습니다. 비즈니스 인텔리전스 도구인 Looker는 BigQuery와 원활하게 통합되고 비즈니스 사용자가 데이터에 액세스하고 자세히 살펴볼 수 있도록 고성능의 깔끔한 인터페이스를 제공합니다. BigQuery는 제3자 공급업체에도 강력한 지원을 제공합니다. 예를 들어 마케팅 분석팀은 Google Ads에서 수집된 데이터를 사용하여 광고 지출 및 게재위치 결정 정보를 제공할 수 있습니다.
운영 오버헤드 감소: Teradata를 사용할 때 MLB에서는 잘못된 쿼리, 백업 문제, 공간 할당, 사용자 권한 등 데이터베이스 문제를 처리하기 위해 연중무휴 24시간 운영 지원을 담당하는 전일제 DBA팀이 필요했습니다. BigQuery를 사용하면서 MLB에는 이러한 역할이 필요하지 않게 되었습니다. Google Cloud의 지원은 모든 주요 서비스 문제를 다루며 테이블 백업 복원과 같은 이전의 관리 작업을 이제 최종 사용자가 간편하게 처리할 수 있어 IT팀은 전략적인 작업에 보다 집중할 수 있습니다.
개발자 만족도 상승: Teradata를 사용하는 데이터 엔지니어링, 데이터 과학, 분석 직원은 문서 부족 및 알 수 없는 오류로 어려움을 겪었습니다. Teradata는 주로 대규모 엔터프라이즈 배포에 사용되었으므로 Stack Overflow와 같은 사이트의 온라인 문서는 제한적이었습니다. 반면에 BigQuery는 문서화가 잘 되어 있고 진입장벽이 없으므로(Google Cloud 사용자라면 무료 체험 가능) 온라인에서 문제를 해결하고, 문제에 대한 답을 얻고, 제품 기능에 대해 알아보는 데 사용 가능한 리소스를 이미 많이 보유하고 있습니다.
가치를 더 빠르게 실현: BigQuery 엔지니어링팀이 제공하는 새롭고 유용하며 정기적으로 추가되는 기능을 즉시 활용하는 데 다운타임이나 업그레이드가 필요하지 않습니다.
BigQuery로 인한 비즈니스 영향 보기
BigQuery로 마이그레이션이 완료된 후 더 폭넓고 원활한 방법으로 팬과 리그를 위해 팬 데이터를 활용할 수 있게 되었습니다. BigQuery로 이전하여 원활히 수행된 프로젝트는 다음과 같습니다.
OneView: 데이터 플랫폼 제품팀이 출시한 새 이니셔티브로, 다운스트림 개인 맞춤설정 및 세분화 이니셔티브를 추진하기 위해 30개가 넘는 관련 데이터 소스를 팬 한 명당 한 행씩 단일 테이블로 컴파일합니다. 이전에는 이러한 테이블을 채우기 위해 증분 로드 프로세스를 개발하고 문제를 해결하는 데 오랜 시간이 소요되었지만 이제는 BigQuery의 막강한 기능을 통해 이 테이블의 전체 재빌드를 정기적으로 수행할 수 있으며, 이 작업은 신속하게 완료되고 다른 데이터 워크로드에 악영향을 미치지 않습니다. 또한 BigQuery의 Array 및 Struct 데이터 유형을 활용하여 반복되는 데이터 요소를 이 테이블의 단일 열로 중첩하여 사용자가 조회나 조인없이 특정 데이터를 자세히 살펴볼 수 있게 되었습니다. OneView 테이블은 이미 뉴스 기사 맞춤설정을 지원하는 데 사용되고 있습니다.
실시간 양식 제출 보고: Pub/Sub에서 BigQuery로 데이터를 실시간으로 스트림하기 위해 Google 제공 Dataflow 템플릿을 사용하여 'Opening Day Pick ‘Em' 콘테스트와 같은 이니셔티브의 양식 제출에 대한 실시간 보고 기능을 갖춘 Looker 대시보드를 만들 수 있습니다. 이를 통해 편집팀은 결과에 대한 최신 분석을 만들 수 있습니다.
현대적인 데이터 웨어하우스를 실행하여 데이터 이해관계자에게 최상의 서비스를 제공할 수 있게 되었습니다. 새로운 데이터 기반 능력을 활용하여 MLB의 팬들을 위해 더 나은 온라인 및 대면 경험을 계속 제공할 수 있어 매우 기쁩니다.
