Pinot란 무엇인가?

Pinot란 무엇인가? (What is Pinot?)

Apache Pinot가 정확히 무엇이고, 어떤 문제를 풀어주는지, 그리고 자신의 사용 사례에 맞는 도구인지 판단하는 페이지예요. 온보딩 경로의 출발점이라서 별도 사전 지식이 필요 없어요.

출처: What is Pinot?

본문

이 페이지를 마치면 알게 되는 것 (Outcome)

이 페이지를 끝까지 읽으면 Apache Pinot가 무엇인지, 어떤 문제를 해결하는지, 그리고 자신의 사용 사례에 맞는 도구인지를 이해할 수 있어요.

사전 요구 사항 (Prerequisites)

없어요. 온보딩 경로의 시작점이 바로 이 페이지예요.

Apache Pinot가 하는 일 (What Apache Pinot does)

Apache Pinot는 실시간 분산 온라인 분석 처리(OLAP) 데이터 저장소예요. 스트리밍 소스(Apache Kafka, Amazon Kinesis 등)와 배치 소스(Hadoop HDFS, Amazon S3, Azure ADLS, Google Cloud Storage 등)에서 데이터를 수집하고, 그 데이터를 서브 초(sub-second) 지연으로 분석 쿼리에 즉시 사용할 수 있게 만들어 줘요.

주요 기능 (Key capabilities)

  • 초저지연 분석 (Ultra-low-latency analytics) -- 초당 수십만 개의 쿼리에서도 쿼리가 밀리초 단위로 반환돼요.
  • 스마트 인덱싱을 갖춘 칼럼형 저장소 (Columnar storage with smart indexing) -- 쿼리 패턴을 가속화하기 위해 inverted, sorted, range, text 등 다양한 인덱스를 갖춘 목적 특화 저장 형식이에요.
  • 수평 확장 (Horizontal scaling) -- 클러스터 크기에 상한 없이 노드를 추가해 확장할 수 있어요.
  • 일관된 성능 (Consistent performance) -- 클러스터 사이징과 예상 처리량에 기반해 데이터량과 쿼리 부하가 늘어나도 지연이 예측 가능하게 유지돼요.
  • 실시간 수집 (Real-time ingestion) -- 데이터가 스트리밍 소스에 도착한 지 몇 초 안에 쿼리할 수 있게 돼요.

What is Apache Pinot? (and User-Facing Analytics) - Tim Berglund

Pinot를 언제 쓰나요? (When to use Pinot)

사용자 대면 실시간 분석 (User-facing real-time analytics)

Pinot는 LinkedIn에서 Who Viewed Profile, Company Analytics 같은 대화형 분석 기능을 구동하기 위해 만들어졌어요. UberEats Restaurant Manager도 프로덕션 사례 중 하나죠. 이런 애플리케이션은 모든 최종 사용자에게 개인화된 분석을 제공하면서, 엄격한 지연 요구 사항과 함께 초당 수십만 개의 쿼리를 만들어내요.

실시간 대시보드 (Real-time dashboards)

Pinot는 고차원 데이터에 대해 slice-and-dice, drill-down, roll-up, pivot 연산을 지원해요. Apache Superset, Tableau, PowerBI 같은 BI 도구를 Pinot에 연결하면 스트리밍 데이터 위에 실시간 대시보드를 만들 수 있어요.

엔터프라이즈 분석 (Enterprise analytics)

Pinot는 비즈니스 인텔리전스를 위한 확장성이 뛰어난 플랫폼으로 잘 어울려요. 빅데이터 플랫폼의 능력과 전통적인 데이터 웨어하우스의 역할을 한 곳에 모아, 규모 있는 분석과 보고에 적합하답니다.

마이크로서비스를 위한 집계 저장소 (Aggregate store for microservices)

애플리케이션 개발자는 Pinot를 집계 저장소(aggregate store)로 사용할 수 있어요. 스트리밍 소스에서 이벤트를 소비해 SQL로 노출하는 방식이죠. 마이크로서비스 아키텍처 전반에 걸쳐 통합되고 쿼리 가능한 뷰를 만들 때 유용해요. 다른 모든 집계 저장소처럼 쿼리 모델은 결과적 일관성(eventually consistent)을 가져요.

Pinot를 언제 쓰면 안 되나요? (When NOT to use Pinot)

⚠️ Pinot는 범용 트랜잭션 데이터베이스가 아니에요. PostgreSQL이나 MySQL이 지원하는 방식의 행 수준 업데이트, 삭제, 트랜잭션은 지원하지 않아요. ACID 트랜잭션이나 빈번한 단일 행 변경이 필요한 워크로드라면 관계형 데이터베이스가 더 적합해요.

💡 데이터셋이 단일 PostgreSQL 또는 MySQL 인스턴스에 충분히 들어갈 정도로 작고(수백만 행 이하) 높은 동시성에서 서브 초 쿼리 지연이 필요 없다면, 전통적인 데이터베이스가 운영하기 더 단순하고 충분할 거예요.

확인 (Verify)

이제 다음을 이해하게 됐어요:

  • Apache Pinot가 무엇이고 트랜잭션 데이터베이스와 어떻게 다른지
  • Pinot가 특히 뛰어난 네 가지 주요 사용 사례 범주
  • 더 단순한 도구가 더 나은 선택인 경우

다음 단계 (Next step)

로컬 Pinot 클러스터를 띄우고 첫 쿼리를 실행하려면 10분 퀵스타트로 계속 진행해 보세요:

더 알아보기 (Learn more)