Notion은 사용자가 노트, 일정, 프로젝트 등을 관리할 수 있게 도와주는 올인원 도구로, 최근 몇 년간 급격한 성장을 이루어냈습니다. 하지만 이처럼 빠르게 성장하는 기업은 데이터를 어떻게 효율적으로 관리하고 있을까요? 오늘은 Notion이 데이터 레이크를 구축하고 확장해 나가며 성공적인 데이터 관리를 이룬 이야기를 공유해보려 합니다.
Notion의 데이터는 지난 3년 동안 10배 증가했으며, 사용자와 콘텐츠의 증가로 6~12개월마다 2배씩 증가해왔습니다. 이러한 급격한 성장은 Notion이 데이터 관리 시스템을 새롭게 구축하고 확장할 필요성을 불러일으켰습니다. 특히 최근 Notion AI 기능을 비롯한 주요 제품과 분석 사용 사례에 대한 데이터 요구 사항을 충족시키기 위해서는 더 효율적인 데이터 인프라가 필요했습니다.
데이터 증가와 그에 따른 문제점
Notion에서 모든 데이터는 “블록” 엔터티로 모델링되어 Postgres 데이터베이스에 저장됩니다. 2021년 초에는 200억 개 이상의 블록이 있었지만 현재는 2,000억 개 이상의 블록이 존재합니다. 이처럼 엄청난 데이터 양은 여러 문제를 야기했습니다.
- 운영 가능성: 480개의 Fivetran 커넥터를 모니터링하고 관리하는 데 많은 오버헤드가 발생했습니다.
- 속도와 비용: Notion의 업데이트 중심 워크로드로 인해 Snowflake로 데이터를 수집하는 속도가 느려지고 비용이 증가했습니다.
- 유스케이스 지원: 데이터 변환 로직이 복잡해져 표준 SQL 인터페이스의 기능을 능가하는 문제들이 발생했습니다.
데이터 레이크 구축을 통한 문제 해결
Notion은 이러한 문제들을 해결하기 위해 데이터 레이크를 구축했습니다. 데이터 레이크의 주요 목표는 다음과 같습니다:
- 원시 데이터와 처리된 데이터를 대규모로 저장할 수 있는 데이터 저장소 설립
- Notion의 업데이트 중심 블록 데이터에 대해 빠르고 확장 가능하며 운영 가능하고 비용 효율적인 데이터 수집 및 계산 가능
- AI, 검색 및 비정규화된 데이터가 필요한 기타 제품에 대한 유스케이스 지원
이를 위해 Notion은 다양한 기술을 도입했습니다. Fivetran을 사용해 Postgres WAL에서 Snowflake로 데이터를 수집하는 ELT 파이프라인을 시작으로, Debezium CDC 커넥터를 사용해 Postgres에서 Kafka로 증분 업데이트된 데이터를 수집한 다음, Apache Hudi를 사용해 이러한 업데이트를 S3로 씁니다. 또한, S3를 데이터 저장소 및 레이크로 사용하여 모든 원시 및 처리된 데이터를 저장합니다.
성공적인 데이터 레이크 구축의 결과
Notion은 2022년 봄에 데이터 레이크 인프라를 개발하기 시작해 그해 가을에 완료했습니다. 이를 통해 2022년에만 100만 달러 이상의 순 절감 효과를 얻었으며, 2023년과 2024년에는 비례적으로 더 높은 절감 효과를 기대하고 있습니다. 또한, Postgres에서 S3 및 Snowflake로의 엔드투엔드 수집 시간이 하루 이상에서 작은 테이블의 경우 몇 분, 큰 테이블의 경우 최대 몇 시간으로 단축되었습니다.
이러한 데이터 레이크를 통해 Notion은 2023년과 2024년에 Notion AI 기능을 성공적으로 출시할 수 있었습니다.
결론: 데이터 관리의 중요성
Notion의 사례는 데이터 관리의 중요성을 잘 보여줍니다. 급격한 성장과 데이터 증가에도 불구하고, 효율적인 데이터 레이크 구축을 통해 비용 절감과 성능 향상을 동시에 이룰 수 있었습니다. 이러한 성공 사례는 다른 기업들에게도 큰 교훈을 줄 수 있습니다.
데이터 관리에 대해 더 알고 싶다면, Notion의 데이터 레이크 구축 과정을 자세히 살펴보는 것도 좋은 방법입니다. 데이터 관리는 어렵고 복잡할 수 있지만, 올바른 접근법을 통해 효율적으로 관리할 수 있습니다.
참고 자료: Notion, “Building and scaling Notion’s data lake”