Kudu - 기본 내용 정리 (1)

3 June 2020 · 1 minute read

101

Apache Kudu는 Cloudera에서 개발한 컬럼 기반(Columnar) 저장소이다. 저장소 자체는 다른 서비스(예. HDSF)에 대한 의존 없이, Kudu 인스턴스(Tablet)만으로 클러스터를 이루며 리더 선정도 내장된 알고리즘(Raft consensus algorithm)에 의해 정해진다.

Kudu는 물리적으로 레코드를 컬럼 단위로 저장하기 때문에, 일부 컬럼에 대한 질의시 네트워크 비용을 아끼면서 효율적으로 레코드를 조회할 수 있다. (컬럼 지향(Column oriented) 저장소인 HBase는 물리적으로 로우 단위로 저장)

Kudu에 질의하기 위해서는 별도의 질의 엔진이 필요하다. MR, Spark와 같은 Hadoop 계열 엔진을 사용할 수 있는데, 아무래도 같은 Cloudera에서 개발한 Impala를 권장한다. Impala를 질의 엔진으로 사용하면, Kudu, RDB, HDFS의 파일까지 다양한 저장소를 데이터소스로 사용해서 질의할 수 있다.

권장하는 사용 사례는 다음과 같다:

  • Reporting applications where newly-arrived data needs to be immediately available for end users
  • Time-series applications that must simultaneously support:
    • queries across large amounts of historic data
    • granular queries about an individual entity that must return very quickly
  • Applications that use predictive models to make real-time decisions with periodic refreshes of the predictive model based on all historic data

요약하자면, 대규모 데이터셋에 대해 개별 레코드가 실시간으로 변할 때 그 변경 사항을 즉시 반영할 수 있다. Apache Druid의 권장 사용 사례와 유사한데, 어떤 차이점이 있는지 살펴볼 필요가 있다.

Updated 3 June 2020