사용자 데이터 연결이 NoSQL 데이터베이스와 하둡의 결합을 이끌고 있습니다.
AOL 어드버타이징은 수억 명의 사람들에게 매월 수십억 개의 광고 노출을 제공하는 가장 큰 규모의 온라인 광고 서빙 운영 중 하나를 운영하고 있습니다. AOL은 광고 서빙 플랫폼을 구축하는 과정에서 다음과 같은 세 가지 데이터 관리 과제에 직면했습니다.
- 수억 개의 “쿠키 프로필”로 요약되는 인구통계학적, 심리통계학적, 행동적 특성을 유추하기 위해, 정형 데이터와 비정형 데이터가 혼합된 수십억 건의 사용자 관련 이벤트를 분석하는 방법”
- 수백만 개의 쿠키 프로필을 1밀리초 미만의 무작위 읽기 지연 시간으로 광고 타겟팅 플랫폼에서 사용할 수 있도록 만드는 방법
- 사용자 프로필을 최신 상태로 유지하는 방법
해결책은 두 개의 데이터 관리 시스템, 즉 고처리량 데이터 분석에 최적화된 시스템(“분석” 시스템)과 저지연 임의 접근에 최적화된 시스템(“트랜잭션” 시스템)을 통합하는 것이었다. 대안들을 분석한 후, 최종 선택된 아키텍처는 Cloudera Distribution for Hadoop(CDH)과 Membase를 결합한 것이었다:

이 아키텍처에서는 (1) 클릭스트림 데이터 및 기타 이벤트가 다양한 소스에서 CDH로 유입되고, (2) 이 데이터는 MapReduce를 사용하여 분석되어 수억 개의 사용자 프로필을 생성하며, 그 후 실행 중인 광고 캠페인에 따라 선별된 사용자 프로필이 Membase에 로드되어, (3) 광고 타겟팅 로직이 1밀리초 미만의 지연 시간으로 Membase를 조회하여 실시간 광고 게시에 대한 최적화된 결정을 내리는 데 필요한 데이터를 얻을 수 있습니다.
AOL은 “NoSQL” 트랜잭셔널 데이터베이스 시스템을 Hadoop 분석 플랫폼과 결합하는 힘의 구체적인 예를 제공하는 동시에, 다양한 웹 애플리케이션 환경 전반에서 공통된 배포 패턴으로 부상하고 있는 사례를 보여줍니다.
점 increasingly 조직들은 이 두 가지 기술을 함께 배포하고 있습니다. 과감히 말씀드리자면, 모든 NoSQL 데이터베이스 배포는 Hadoop과 결합될 때 더욱 가치가 높아질 것입니다. 그 이유는 무엇일까요?
NoSQL 데이터베이스는 대규모로 증가하는 애플리케이션 사용자층에게 대화형 웹 애플리케이션이 서비스를 제공할 수 있도록 예외 없이 사용됩니다. 크고 증가하는 사용자 집합은 직접 및 간접적으로, 구조화 및 비구조화된 데이터를 자연스럽게 많이 생성합니다. Hadoop은 많은 데이터를 저장, 처리 및 분석할 수 있습니다. 그 결과 분석은 사용자의 애플리케이션 경험을 더욱 향상시키는 데 사용할 수 있는 사용자 행동, 선호도 및 패턴에 대한 통찰력을 제공할 수 있습니다. 더 나은 애플리케이션은 더 많은 사용자로 이어집니다. 그리고 이 주기는 가속화됩니다.
많은 사용자들
가장 간단히 말해서, Membase, MongoDB 또는 Riak 같은 NoSQL 데이터베이스는 대화형 웹 애플리케이션에 비용 효율적이고 저지연이며 임의적인 데이터 접근을 제공하도록 설계되었습니다. 웹 애플리케이션에는 이 맥락에서 중요한 세 가지 주요 특징이 있습니다.
- 초고속 성장. 그들은 말 그대로 하룻밤 사이에 1명에서 수십만 명의 사용자로 성장할 수 있습니다. 그리고 계속해서 성장하여 수억 명의 사용자에게 서비스를 제공할 수 있습니다. 세상은 매우 넓습니다. 오늘날의 공개 웹 인터페이스는 소프트웨어 시스템을 거의 20억 명의 사람들이 이용할 수 있게 만듭니다.
- 성급한 이들을 만족시키기. 인간이 이러한 시스템을 사용한다. 수십 년간의 연구는 속도가 중요하다는 것을 보여주었다. 사람들은 기다리는 것을 좋아하지 않는다. 사용자가 기다리게 만드는 기술 스택의 어떤 부분이라도 그 애플리케이션의 몰락에 기여한다.
- 일시성. 웹 애플리케이션의 사용자층은 영구적으로든 일시적으로든 계속해서 드나듭니다. 특정 시점에 “온라인” 상태이거나 활성 상태인 사용자 집단은 대개 존재하기 마련입니다. 그들은 들어와서, 사용하고, 떠납니다. 바라건대 그들이 다시 돌아오기를 바랍니다.
NoSQL 데이터베이스 기술은 이러한 문제를 해결하기 위해 발명되었습니다. 이들은 탄력적으로 확장됩니다. 클러스터에 저렴한 서버를 더 추가하기만 하면 데이터, 그리고 가장 중요하게는 I/O가 증가한 부하를 지원하기 위해 새로운 서버들에 걸쳐 자동으로 재균형화됩니다. 그리고 애플리케이션의 사용자 수가 줄어들 때도 그 반대로 작동합니다. 또한 이들은 애플리케이션이 필요로 할 때 데이터에 대한 매우 낮은 지연 시간의 임의 읽기-쓰기 접근을 보장하도록 구축되었습니다. 이들은 부분적으로 이러한 소프트웨어 시스템의 일시적 사용을 활용하여 이를 수행합니다. 사용자가 활성화되어 있을 때, 이들을 서비스하는 데 필요한 데이터는 주기억장치에 캐시됩니다. 이 경우 5k 데이터 객체를 읽거나 쓰는 작업은 1밀리초 미만의 지연 시간으로 처리될 수 있습니다. 사용자가 떠나있다가 애플리케이션을 다시 사용하기 시작할 때, 만약 그/그녀의 데이터가 더 이상 메모리에 없다면, 데이터는 자동으로 가져와져 사용자 세션을 통해 사용할 수 있게 되며, 더 이상 활성 상태가 아닌 사용자의 데이터는 메모리에서 축출되어 다음 사용을 대기하며 저렴한 디스크 저장소에 저장됩니다.
많은 데이터
데이터가 언제든지 “활성화”될 준비가 되어 있어야 한다면 NoSQL 데이터베이스가 올바른 해결책이다. 하지만 그러한 요구사항이 없을 때 데이터를 저장하기에는 하둡(Hadoop)이 훨씬 더 나은 선택이다. 그리고 대화형 웹 애플리케이션은 이러한 종류의 데이터, 즉 과거였다면 수집되지 않았을 수도 있는 산더미 같은 데이터를 생성할 수 있다. 로그인 정보, 클릭 스트림, 페이지 뷰, 시선 데이터, 실시간 접근이 더 이상 필요 없는 “오래된” 애플리케이션 데이터, 진입 및 이탈 경로, 구매로 이어지는 흐름, 과거의 제안 및 구매 흐름, 타이밍 정보 등이다. 목록은 끝이 없다. 하둡을 사용하면 그냥 데이터를 수집하기만 하면 된다. 사전에 스키마를 설정하거나 데이터 형식을 정의할 필요가 없다. 유용한 통찰력을 얻을 수 있는 정보를 수집할 아이디어가 있다면 하둡에 저장하라. “고민될 때는 일단 기록하라.”
하둡은 정보를 흡수하고 비용 효율적으로 저장하기 위해 구축되었습니다. 하둡은 NoSQL 데이터베이스와 동일한 “스케일 아웃” 접근 방식, 즉 저렴한 서버 전반에 데이터를 분산시키는 방식을 채택합니다. 그러나 하둡은 저지연, 임의 접근(random access) 방식이 아닌 고처리량 배치 분석에 최적화된 방식으로 데이터를 저장합니다. 하둡 맵리듀스(MapReduce)를 통해 트렌드를 발견하고, 데이터를 집계하며, 결론을 도출할 수 있습니다. 그리고 그러한 결론은 애플리케이션의 동작을 구체화할 수 있습니다.
웨비나를 확인해보세요
다음 주 목요일, 451 그룹의 선임 분석가인 맷 애슬렛(Matt Aslett)이 웨비나 개최하기 Hadoop과 Membase Server를 통한 AOL의 광고 타겟팅 결정 가속화라는 제목의 세션입니다. Matt과 함께 AOL의 수석 아키텍트인 Pero Subasic이 참여합니다.
확장 가능한 웹 애플리케이션 구축에 관심이 있는 분이라면 누구나 이 웨비나를 시청해 보시기를 권합니다. 이러한 기술이 “실제 현실에서” 어떻게 사용되는지 보는 것은 흥미로우며, 여러분 자신의 환경에 대한 아이디어를 떠올리게 할 수도 있습니다.
i 징가는 CityVille이 출시 후 첫 24시간 동안 29만 명이 플레이했다고 공식적으로 밝혔습니다 (https://www.insidesocialgames.com/2010/12/06/cityville-claims-cityville-is-its-fastest-growing-game/)

댓글 남기기
댓글을 달기 위해서는 로그인해야합니다.