주목할만한 OLAP 데이터베이스 아파치 피노(Apache Pinot)


What is Apache Pinot?
출처: https://pinot.apache.org/

아파치 피노(Apache Pinot)는 실시간 분산 OLAP 데이터베이스입니다. OLAP 쿼리를 빠르게 처리합니다. 

Pinot Noir 와인처럼 '피노'라고 읽습니다.  위 이미지 가운데에 있는 와인잔을 생각하시면 쉽게 기억하실 수 있을 것 같습니다.

오픈소스이고 Java(자바)로 만들어졌습니다. 

피노는 column oriented/based 데이터베이스입니다. 빠른 속도를 내기 위해 데이터를 row(행)가 아닌 column(열)을 중심으로 저장하고 처리합니다. 

카프카(Kafka), 하둡(Hadoop), 스파크(Spark), 클라우드 스토리지(cloud storage)에서 데이터를 ingest(냠냠)할 수 있습니다.

컨트롤러, 브로커, 세그먼트 등의 개념이 등장하지만 Kafka 같은 실시간 데이터 스트리밍 플랫폼을 다뤄보신 분은 익숙하실 겁니다. 피노는 자바로 만들어졌고, 카프카도 자바로 만들어졌습니다. 왠지 궁합이 좋을 것 같고 실제 많은 사용사례(use case)에도 카프카와 연동되어 사용되고 있습니다. 어찌보면 당연한 것 같습니다. 카프카 같은 플랫폼에서 실시간으로 처리된 빅데이터를 실시간으로 저장하는 분산 데이터베이스입니다. 피노에 저장된 데이터에 OLAP 쿼리를 실행하게 됩니다. 빅데이터를 다루려면 실시간(real-time), 분산(distributed), 수평적확장(horizontally scalable), low latency(낮은 지연성), concurrency(동시성) 등을 다 고려해야 하고 그래서 빅데이터를 다루는 많은 기업들이 피노를 선택해 사용하는 것 같습니다.

Apache Pinot Component
출처: https://pinot.apache.org/

아파치 피노 아키텍쳐(architecture)
출처: https://pinot.apache.org/


피노는 헬릭스 (Apache Helix)를 사용해서 클러스터를 관리합니다. 헬릭스는 주키퍼(Apache Zookeeper)를 사용해서 클러스터 상태를 관리합니다.  


아파치 피노는 실시간 분산처리 데이터베이스
출처: https://pinot.apache.org/

PQL(Pinot Query Language)이나 SQL로 쿼리합니다. 현재 Join은 지원하지 않으나 Trino 나 Presto 를 대안으로 사용 가능합니다.  


아래는 현재 아파치 피노(Pinot)를 사용하는 대표 기업들 리스트입니다.

아파치 피노(Pinot) 사용 기업들
출처: https://pinot.apache.org/


진입 장벽은 조금 높은 데이터베이스이지만, 실시간 분산 처리를 할 수 있는 고성능 데이터베이스이기 때문에 앞으로 어떻게 될지 기대가 큽니다. 

아파치 피노의 공식사이트 링크입니다. 

https://pinot.apache.org/


- The End - 

Comments