해결책
2000년대 중반 구글의 분석가들은 MapReduce로 거대한 연산을 실행할 수 있었지만, 각 작업에 몇 분에서 몇 시간이 걸려 데이터를 대화형으로 탐색하기에는 너무 느렸다. 엔지니어들은 페타바이트 규모의 데이터베이스형 질문에 웹 검색 수준의 속도를 원했다.
2006년부터 프로덕션에 적용된 Dremel은 두 가지 아이디어를 결합했다. 중첩 레코드를 인코딩하여 쿼리가 필요한 필드만 읽도록 하는 컬럼 스트라이프 저장 방식과, 쿼리를 수천 개 노드로 분산하고 응답을 집계하는 다단계 서빙 트리이다. 2010년 VLDB 논문은 3,000개 노드 클러스터에서 850억 레코드 테이블을 스캔한 결과를 보고하며, 대부분의 쿼리가 10초 이내에 완료되었다.
구글은 2010년 5월 I/O 컨퍼런스에서 이 기술을 BigQuery로 출시했고, 2011년 11월에 GUI와 REST API를 추가했으며, 2012년 5월에 정식 출시했다. 이는 사용자가 하드웨어를 구매하지 않고도 테라바이트 규모의 데이터를 분석할 수 있게 한다는 점을 내세웠다.
달성한 것
컬럼 단위로 데이터를 저장하고, 몇 초 만에 응답한다
컬럼형 레이아웃은 읽는 바이트 수를 줄인다. 쿼리는 필요한 필드만 건드린다.
트리 실행은 수천 대의 상용 장비에 걸쳐 병렬화한다.
네이티브 SQL 유사 쿼리는 다단계 MapReduce 파이프라인을 대체한다.
인시투 액세스는 GFS나 Bigtable에서 데이터를 바로 읽으며, 로딩 단계가 필요 없다.
데이터가 작성된 방식이 아니라 앞으로 던질 질문을 중심으로 데이터를 구성하라. 필요한 컬럼만 읽고 작업을 트리 아래로 밀어내면 배치 작업이었던 작업이 회의 시간에 맞는 쿼리가 된다.
그 후
BigQuery는 수천 개 기업이 사용하는 주류 클라우드 데이터 웨어하우스 중 하나가 되었고, Dremel의 컬럼형 포맷은 Apache Parquet 같은 후속 시스템에 영향을 주었다. 이 논문은 여전히 빅데이터 시스템 분야에서 가장 많이 인용된 연구 중 하나이다.
근거 확인하기
출처
- Dremel: Interactive Analysis of Web-Scale Datasets Proceedings of the VLDB Endowment · comp.nus.edu.sg
- Google opens BigQuery cloud analytics to all ZDNet · zdnet.com ·
- Big Data Analysis Field Expands with Launch of Google BigQuery Database Trends and Applications · dbta.com ·