들어가며
현대 비즈니스 운영환경에서 CRM 데이터와 모바일, 웹 데이터 등 다양한 소스 어플리케이션에서 파생되는 데이터를 통합하여 고객의 인사이트 즉, Customer 360뷰를 얻고자 하는 운영 인프라 관리는 거의 필수적이라고 할 수 있습니다. 그러나 많은 경우 그 인프라를 구축하는 엔지니어 조직과 비즈니스 어플리케이션을 운영하는 세일즈, 마케팅과 같은 유저들 사이에는 많은 간극이 존재하여 올바른 데이터 분석을 수행하기에는 여전히 많은 어려움이 따릅니다. 특히 멀티 소스 데이터를 통합하여 보는 과정에서 초기에는 아래와 같은 이슈들이 빈번히 발생합니다:
- 중복 데이터 문제: 동일한 내용임에도 복수의 중복 데이터가 존재하여 분석의 신뢰도를 떨어뜨림
- 원천 데이터 탐색: 원천 데이터를 받았음에도 어디서부터 수치가 잘못되었는지 파악이 어려움
- 수동 데이터 처리: 신뢰도가 떨어지는 데이터를 추출하여 수기로 엑셀과 같은 툴로 전처리 수행
그럼에도 CDP 즉, 고객 데이터 플랫폼을 구성하는 것은 현대 데이터 분석 환경에서 매우 중요한 과제이고 이를 세일즈포스, 허브스팟, 컨택센터와 같은 멀티 소스 데이터부터 데이터 웨어하우스에 적재 그리고 분석환경까지 dbt Cloud를 활용해 자동화된 CRM 데이터 파이프라인 구축을 하는 방법에 대해 알아보고자 합니다.
비즈니스 유저의 AWS 기반 데이터 파이프라인 구축 어려움
일반적으로 AWS를 활용한 데이터 파이프라인은 강력한 기능을 제공합니다. 데이터는 Source -> Ingestion -> (Load <-> Transform) -> Serving의 단계를 거쳐 처리됩니다.
CRM, 마케팅 캠페인, 설문지(Form), 그리고 컨택 센터 데이터는 각기 다른 시스템에서 생성되어 구조와 형식이 다양합니다. 이 데이터를 정형화하여 통합된 공간에서 일관된 데이터 뷰를 제공받을 수 있도록 스노우플레이크와 같은 데이터 웨어하우스로 자동화된 데이터 흐름을 만들어야 할 텐데요. AWS에서 제공하는 Glue와 같은 분석 도구를 사용해 파이프라인을 구성하면 많은 경우의 데이터 통합 및 전처리 요건을 수행할 수 있습니다.
하지만 AWS 환경에 비즈니스 유저가 직접 액세스하여 인프라를 구축한다는 것은 비즈니스 유저에게 큰 허들로 작용하게 될 뿐만 아니라 도움을 받아 구축을 하였다 하더라도 운영에 대한 부담이 크게 남습니다. 따라서 최소한의 영역들만 남기고 비즈니스 유저가 시민 데이터 분석가의 역할을 할 수 있는 파이프라인을 고민하게 되었습니다.
ELT 방식과 Airflow 및 dbt를 활용한 개선
위 그림과 같은 ETL(Extract, Transform, Load) 방식으로 파이프라인을 구축하게 되면 가장 먼저 최종 사용자인 비즈니스 유저가 데이터에 엑세스하는데 어려움이 발생합니다. 아울러 데이터 변환이 완료된 데이터가 적재됨에 따라 멀티소스 데이터를 각 사용자의 입맛에 맞게 요리하는데도 유연성이 떨어질 수 있습니다.
최소한의 인프라 구축을 엔지니어 조직에 맡기면서 최종 사용자가 시민 데이터 분석가의 역할을 수행하기 위한 파이프라인을 구축하기 위해 몇가지 툴에 변화를 줄 수 있는데요, 데이터를 로드하기 위한 Airflow(MWAA 혹은 Astronomer)와 데이터 변환 도구인 dbt Cloud를 사용해 보았습니다.
dbt는 SQL 기반으로 데이터 변환과 모델링을 손쉽게 수행할 수 있는 도구이며, dbt의 운영을 간소화하기 위한 SaaS 솔루션으로 dbt Labs사의 dbt Cloud를 사용할 수 있습니다. 그리고 Airflow와 dbt를 통합하여 사용했을 때 크게 3가지의 개선점을 뽑을 수 있습니다:
- 직관적인 DAG(Directed Acyclic Graph) 관리: Airflow를 활용해 워크플로우를 시각화하고 관리.
- SQL 기반 데이터 변환: dbt를 통해 비즈니스 유저가 SQL로 데이터 모델링 및 변환을 수행.
- 자동화된 테스트와 문서화: dbt의 자동화 기능으로 데이터 품질 보장.
dbt Cloud를 통한 운영 간소화
dbt와 같은 SQL 기반의 툴을 사용해 단계별 쿼리로 데이터를 변환하는 파이프라인을 구축하면 각 변환 단계가 명확히 정의되고 시각화되므로, 데이터가 어떻게 변화하고 있는지 추적하기 쉽습니다. 또한 각 단계는 독립적인 쿼리로 구성되므로, 특정 데이터를 변환하거나 재사용하기가 쉬워 유연하게 새로운 데이터 모델로 변환할 수 있습니다.
dbt Cloud와 같은 SaaS 솔루션을 사용하게 되면 데이터 엔지니어와 비즈니스 유저 모두 데이터의 흐름을 직관적으로 이해할 수 있고 GUI를 통해 협업과 워크플로우 구성을 가능하게 하여 비즈니스 유저와 엔지니어 간의 협업을 더욱 강화할 수 있습니다.
Airflow와 dbt를 파이프라인에 적용하면 위 이미지와 같은 데이터의 배치성 흐름을 만들 수 있는데요. 이를 통해 만들어진 데이터 파이프라인의 결과물인 스노우플레이크 테이블의 데이터 리니지를 아래 이미지와 같이 예시로 살펴볼 수 있을 것 같습니다.
dbt Semantic Layer Connector로 데이터 Serving
마지막으로, 협업 관점에서 도드라지는 또다른 dbt Cloud의 장점은 Semantic Layer Connector를 활용하여 친숙한 BI툴을 통해 데이터 Serving이 구현 가능하다는 것인데요. 이는 비즈니스 유저가 최신 데이터에 쉽게 접근할 수 있도록 돕는 중요한 도구입니다.
Semantic Layer Connector를 사용하면 이전 파이프라인에서 단계별로 변환된 데이터 모델과 수치연산을 매번 새로운 데이터가 로드될때마다 최신화하여 BI툴로 연동을 시킬 수 있어 다음과 같은 장점을 가집니다:
- Single Source of Truth: 데이터의 일관성을 보장.
- 사용자 친화적인 인터페이스: 엑셀, 대시보드 등 친숙한 도구를 통해 데이터 액세스.
- 실시간 데이터 제공: 준 실시간으로 최신 데이터를 제공하여 빠른 의사결정 지원.
커넥터는 Excel, Spreadsheet, Tableau와 같이 일반적으로 많이 사용하는 툴에 연동 기능을 제공하고 있어 비즈니스 유저에게 친숙한 포맷으로 데이터 Serving을 가능케 합니다.
따라서 사용자에게 친숙하지 않은 툴에서 데이터를 추출하여 수기로 파일을 저장하고 다시 입력하는 반복적인 작업을 줄여줄 뿐만 아니라 일관된 데이터 흐름이 보장되어 추출 결과물로부터 신뢰성 있는 작업을 수행할 수 있습니다.
마치며
본 글에서는 비즈니스 유저가 직면하는 데이터 파이프라인 구축의 어려움을 dbt Cloud라는 SaaS 솔루션을 활용하여 효과적으로 빌드할 수 있는 사례에 대해 다루었습니다. 이를 통해 데이터 엔지니어와 비즈니스 유저 간의 협업을 강화하고, 데이터 자동화를 통해 실질적인 비즈니스 가치를 창출할 수 있음을 확인하였습니다. 앞으로도 이러한 도구와 방법론을 통해 데이터 기반 의사결정을 촉진하고, 보다 효율적이고 신뢰성 있는 데이터 활용 환경을 조성하는 데 기여할 수 있을 것입니다.