본문 바로가기
SingleStoreDB/사례연구

[사례 연구, Uber] 실시간 분석을 지원하는 확장형 SQL 데이터베이스(SingleStore)

by 에이플랫폼 [Team SingleStore Korea] 2019. 8. 1.

우버(Uber) 시스템은 분석을 기반으로 구동됩니다. 지금까지 가장 빠르게 성장하고 있는 기업인 우버는 최신의 데이터를 사용하여 고객을 유치하고, 운전자를 직접 안내하며, 응답 시간을 1초 이내로 제공하는 데이터베이스에서 비즈니스를 운영하고 있습니다. 이 프레젠테이션에서 우버의 James Burkhart는 기업 성장에 있어서 중요한 문제였던 지연 시간 문제를 해결하는데 SingleStore가 어떻게 도움이 되었는지 설명합니다. 여기에서 설명하는 주요 사항을 확인한 후 Strata + Hadoop World 2017의 프레젠테이션을 보고 Slideshare에 관련 슬라이드를 검토해보시기 바랍니다.


https://www.youtube.com/watch?v=XSXvPNEykb4 

Uber Analytics의 네 가지 과제

실시간 분석이란? 실시간 분석은 특별한 운영 분석 사례로, 보통 1초 이내에 최신 정보를 포함한 빠른 응답을 쿼리에 제공하는 것을 말합니다. 실시간 분석의 환경에서는 스트리밍 데이터를 사용하여 최신 데이터를 분석 시스템으로 빠르게 가져오는 경우가 많으며, 새로운 정보와 기존 정보를 결합하여 매우 신속하게 결과를 제공하는 응답성이 뛰어난 데이터베이스를 필요로 합니다.

우버는 운전자와 탑승자(Riders)를 실시간으로 연결해야 합니다. 수요가 하루동안에도 수시로 바뀌므로 가격을 원활하게 추가하거나 제거해야 합니다. 우버의 전체 비즈니스 모델은 실시간 데이터를 기반으로 합니다. SingleStore는 우버가 이동 중에도 분석 결과를 기반으로 의사 결정을 내릴 수 있도록 도와줍니다.

우버는 아래의 4가지 도전과제를 극복하고자 했습니다.

1. 비즈니스 인텔리전스

2. 실시간 분석

3. 시계열 집합

4. 지형 공간 데이터

우버는 탑승자, 운전자, 출장, 재무 등 사업의 모든 중요한 측면에 대한 측정 지표를 찾고 있었기 때문에 비즈니스 인텔리전스(BI) 도출이 첫 번째 도전 과제였습니다. 예를 들어, 측정 지표가 '지리적 영역에서 급증하는 비즈니스'라면, 이 지표에 대한 조치 방안은 '현실 세계에서 공급을 물리적으로 재배치하는 것'을 들 수 있습니다.

그들은 인텔리전스 도출이 실시간으로 이루어지기를 원했고, 그것이 바로 다음 도전 과제였습니다. SingleStore를 사용하기 전에, 우버는 p99에 대한 수집 소요 시간이 수집 소스에 따라 짧게는 1.5초에서부터 길게는 3분까지 걸렸습니다. 그들은 모든 수집에 대해 아무리 길어도 몇 초내의 초단위의 일관된 응답 속도가 필요 했습니다.

또 다른 관심 분야는 시계열 데이터의 집계입니다. 우버는 그들의 실시간 분석 시스템에 모든 시계열 데이터를 저장하지 않고, 이를 위한 별도의 시스템을 사용했습니다. 이 시스템에서는 계절성 요소가 강하며, 해당 요소의 맥락에서 살펴보는 비즈니스 지표를 원했습니다.

실시간 분석 시스템은 사실의 출처(a source of truth)가 아니라 집계된 데이터의 출처입니다. 예를 들어, 도시의 아침 통근 시와 금요일 밤은 매우 다른 시장 역학 관계가 나타납니다. 이러한 목적을 확인하기 위한 예시 쿼리로 "샌프란시스코에서의 시간별 여행 횟수"와 같은 것을 들 수 있습니다. 전체 시스템은 개별 데이터가 아닌 집계된 데이터에 맞게 설계되고 최적화됩니다.

지리 공간 데이터가 핵심 사항입니다. 우버의 비즈니스는 물리적인 세계 전반에 걸쳐 운영되고 있으며, 분석가들이 일부 지역별 데이터의 다양한 시장 특성을 이해하는 데 도움이 되도록 세분화된 지리 공간 슬라이싱(slicing)과 다이싱(dicing)* 기능을 제공할 수 있어야 합니다. 예를 들어 AT&T 스타디움 근처에서 샌프란시스코 자이언츠 경기가 열렸을 때, 수요가 증가함을 나타내는 스파이크가 있었다는 정보는 유용할 수 있지만, 샌프란시스코 어딘가에서 특정 시점에 충족되지 않은 요청 비율이 증가했다는 정보는 별로 유용하지 않습니다.

 

*slice와 dice: OLAP의 기능 중 하나

Slideshare의 우버 프리젠테이션의 슬라이드에서 이러한 모든 문제가 함께 발생하는 예를 보여줍니다. 2016년 12월 31일(주황색 점)과 2017년 새해 초(녹색 점)에 대한 탑승자의 총 수요량을 보여줍니다. 수요처와 수요 시간을 종료선(하루의 경계선)와 비교하여 확인 할 수 있습니다. 슬라이드에서 종료선은 아라비아 반도와 자정이된 동유럽을 가로질러 이동하며, 2016년이 끝나고 2017년이 다가오면서, 우버 수요가 밀집된 유럽과 이집트 카이로 같은 아프리카 주요도시로 향하고 있습니다.

Uber의 수요는 섣달 그믐 날 주요 도시에서 정점에 이릅니다.

Uber에 분석을 위한 SQL 데이터베이스가 필요한 이유

Apollo는 실시간 분석을 위한 우버의 내부 플랫폼입니다. 우버는 최근 7주의 데이터만 저장하며, 데이터 수집과 기록 시간이 짧고, 쿼리에서 사용하기 위한 대기 시간도 몇 초 단위로 적게 걸립니다. Apollo는 데이터의 임시 탐색, 지리 공간 필터링과 지리 공간 측정을 포함한 임의 상세분석(drill-down)을 지원합니다.

또 다른 핵심 속성은 중복 제거입니다. 우버에서는 Kafka를 상당히 많이 사용합니다. Kafka 배포를 통해 최소한 한 번 전송(at-least-once)을 보증 받습니다. 그러나 우버가 아폴로를 대체하여 사용함으로써 발생한 기존 시스템의 결함 중 하나는 하드웨어나 소프트웨어의 장애와 관련된 많은 시나리오에서 이중으로 계산한다는 점이었습니다. 그들은 고유하게 식별 가능한 기록이 정확히 한 번 존재하게 하여 시스템이 이중 계산하지 않도록 해야했습니다. 또한 이 모든 작업을 사용자에게 짧은 대기 시간을 제공하면서 수행해야합니다.

SingleStore는 Uber의 Apollo 분석 시스템의 핵심입니다.

이제 SingleStore는 우버의 데이터를 저장하는 데이터베이스입니다. 그들은 연구 및 계획 단계에서 몇 가지 대안을 조사했지만 SingleStore가 요구사항을 가장 잘 충족시키는 것을 확인했습니다. 또한 SingleStore는 매우 빠르며, 요구 사항을 훨씬 능가하는 속도로 수집을 하고, 신뢰성 요구를 충족시킨다는 것을 알게 되었습니다.

그들이 SingleStore를 초기 구축한 후, 사용한 기능으로 인 메모리 로우스토어(Rowstore)와 컬럼스토어(Columnstore)가 있습니다. 그들은 주기적으로 오래된 데이터 중 일부를 컬럼 스토어로 옮겼고, 이로 인해 스토리지 비용을 90% 이상 절감할 수 있었습니다(참고로 이는 부분적으로는 컬럼 스토어의 강력한 데이터 압축 때문이며, 컬럼스토어에 사용되는 디스크 저장 비용이 로우스토어에서 사용되는 메모리의 저장 비용보다 더 낮기 때문입니다.)​

결론

​ 요약하면 James는 우버가 비즈니스의 중요한 부분을 운영할 수 있도록 매우 빠르고, 응답성이 좋으며 확장 가능한 SingleStore를 표준 SQL 데이터베이스로서 사용하는 방법을 설명했습니다. 프레젠테이션의 결론에서 제임스는 그들의 쿼리 계층인 아폴로 쿼리 언어(AQL)가 포함한 아폴로 시스템의 많은 세부사항에 대해 이야기했습니다. 그는 고성능을 제공하는 동시에 AQL을 지원하기 위해 시스템의 여러 측면을 어떻게 최적화했는지 보여줍니다.

 

https://www.slideshare.net/MemSQL/realtime-analytics-at-uber-scale?ref=https://www.memsql.com/blog/scalable-sql-database/ 

 

Real-Time Analytics at Uber Scale

James Burkhart explains how Uber supports millions of analytical queries daily across real-time data with Apollo. James covers the architectural decisions and …

www.slideshare.net

 

 

July 26th, 2019

Floyd Smith

 


출처: https://www.singlestore.com/blog/case-study-scalable-sql-database-uber/

 

Case Study: A Scalable SQL Database Powers Real-Time Analytics at Uber

As a fast, scalable SQL database, SingleStore is crucial to Uber's responsive service. This webinar and slide deck from Uber's James Burkhart explain how it works.

www.singlestore.com

 

 

​※ www.a-platform.biz | info@a-platform.biz