본문 바로가기
개발/DB

[Apache Pinot #1] Apache Pinot 소개

by 달사쿠 2023. 4. 16.
반응형

Introduction

Apache Pinot은 대기 시간이 짧고 처리량이 많은 분석을 위해 특별히 제작된 실시간 분산 OLAP 데이터 저장소이며 user-facing analytical workloads에 적합합니다.


Pinot은 실시간 분산 온라인 분석 처리(OLAP) 데이터 저장소로, 매우 높은 처리량에서도 매우 낮은 대기 시간 분석을 제공하도록 특별히 제작되었습니다. Apache Kafka 및 Amazon Kinesis와 같은 스트리밍 데이터 소스에서 직접 수집하고 즉시 쿼리할 수 있는 이벤트를 만들 수 있습니다. 또한 Hadoop HDFS, Amazon S3, Azure ADLS 및 Google Cloud Storage와 같은 배치 데이터 소스에서 수집할 수도 있습니다.
시스템의 중심에는 짧은 대기 시간을 위한 몇 가지 스마트 인덱싱 및 사전 집계 기술이 있는 열 형식 저장소가 있습니다. 따라서 Pinot은 user-facing analytical workloads에 적합합니다. 동시에 Pinot은 내부 대시보드, 이상 탐지 및 임시 데이터 탐색과 같은 다른 분석 사용 사례에도 탁월한 선택입니다.

출처: https://docs.pinot.apache.org/

Pinot은 상한선 없이 scale up/out 가능하도록 설계되었습니다. 성능은 클러스터 크기와 예상 QPS(초당 쿼리) 임계값에 따라 항상 일정하게 유지됩니다.

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

User-Facing Real-Time Analytics

User-facing 또는 site-facing analytics는 제품의 최종 사용자에게 직접 노출되는 분석 도구 및 애플리케이션을 말합니다. 사용자 대면 분석 애플리케이션에서 사용자 기반은 오프라인 분석을 수행하는 소수의 분석가나 임시 쿼리를 실행하는 회사의 소수의 데이터 과학자가 아니라 앱의 모든 최종 사용자입니다. 각 최종 사용자는 개인 장치에서 개인화된 분석을 받습니다(초당 수십만 개의 쿼리를 생각해 보십시오). 이러한 쿼리는 사람이 작성하는 것이 아니라 앱에 의해 트리거되기 때문에 그 규모는 해당 앱의 활성 사용자 수만큼입니다(초당 수백만 개의 이벤트를 생각해 보십시오).
이것은 실시간 분석이라는 다른 측면을 다루는 가능한 모든 최신 데이터를 위한 것입니다. 일부 사용 사례의 경우 어제의 데이터가 더 이상 유용하지 않습니다. 데이터는 생성되는 즉시 분석에 사용할 수 있어야 합니다(1초 미만의 지연 시간을 생각하십시오).

Why is user-facing real-time analytics is so challenging?

위에서 설명한 사용자 대면 실시간 분석 앱은 기본 인프라에 대해 무엇을 의미합니까?
출처: https://docs.pinot.apache.org/
 
  • 이러한 앱에는 최신 데이터가 필요하기 때문에 시스템에서 실시간으로 데이터를 수집하고 쿼리할 수 있어야 합니다.
  • 이와 같은 앱에 대한 데이터는 다양한 소스의 다양한 작업에 대한 이벤트 데이터인 경향이 있으므로 데이터가 매우 빠르게 들어오고 높은 차원을 갖는 경향이 있습니다.
  • 쿼리는 앱과 상호 작용하는 최종 사용자에 의해 트리거됩니다. 초당 수십만 개의 쿼리, 임의 쿼리 패턴 및 우수한 사용자 경험에 대해 밀리초 단위의 대기 시간을 예상합니다.
  • 이러한 유형의 앱은 또한 확장 가능하고 안정적이며 가용성이 높고 서비스 비용이 낮아야 합니다.
Using Kafka and Pinot for Real-Time User-Facing Analytics

 

Companies using Pinot

Pinot이 시작된 LinkedIn은 현재 가장 큰 Pinot 배포 중 하나를 보유하고 있으며 50개 이상의 사용자 대면 애플리케이션(예: Viewed My Profile, Talent Analytics, Company Analytics, Ad Analytics 등)을 지원합니다. LinkedIn에서 Pinot은 10,000개 이상의 비즈니스 지표를 시각화하고 모니터링하는 백엔드 역할도 합니다.

Pinot은 또한 Uber, Walmart, WePay, Factual, Weibo 등을 비롯한 여러 다른 대형 업체에서 다양한 실시간 분석 사용 사례를 지원합니다. Pinot을 사용하는 회사의 자세한 목록은 여기에서 찾을 수 있습니다.


특징

  • 실행 길이 및 고정 비트 길이와 같은 다양한 압축 방식을 사용하는 column-oriented 데이터베이스
  • 플러그형 인덱싱 기술
  • 쿼리 및 세그먼트 메타데이터를 기반으로 쿼리/실행 계획을 최적화하는 기능
  • Kafka 및 Kinesis와 같은 스트림에서 거의 실시간 수집 및 Hadoop, S3, Azure, GCS와 같은 소스에서 배치 수집
  • 데이터에 대한 선택, 집계, 필터링, 그룹화, 정렬 및 개별 쿼리를 지원하는 SQL 유사 언어
  • 다중값 필드 지원
  • 수평 확장 가능 및 내결함성

 

When should I use it?

Pinot은 대기 시간이 짧은 OLAP 쿼리를 실행하도록 설계되었습니다. 불변 데이터에 대한 집계와 같은 빠른 분석이 필요한 곳에서 잘 작동합니다.

사용자 대면 분석 제품

Pinot은 사용자 대면 분석 제품을 위한 완벽한 선택입니다. Pinot은 원래 LinkedIn에서 Who Viewed Profile, Company Analytics, Talent Insights 등과 같은 풍부한 대화형 실시간 분석 애플리케이션을 지원하기 위해 구축되었습니다. UberEats Restaurant Manager는 Pinot로 구축된 고객 대면 분석 앱의 또 다른 예입니다.

비즈니스 지표에 대한 실시간 대시보드

Pinot은 대규모 다차원 데이터에서 슬라이스 및 다이스, 드릴다운, 롤업 및 피벗과 같은 일반적인 분석 작업을 수행하는 데에도 사용할 수 있습니다. 예를 들어 LinkedIn에서 Pinot은 수천 개의 비즈니스 지표에 대한 대시보드를 강화합니다. Superset, Tableau 또는 PowerBI와 같은 다양한 BI 도구를 연결하여 Pinot에서 데이터를 시각화할 수도 있습니다.

Superset과 Pinot를 연결하는 지침은 여기에서 찾을 수 있습니다.

이상 감지

Pinot에서 데이터를 시각화하는 것 외에도 기계 학습 알고리즘을 실행하여 Pinot에 저장된 데이터의 이상을 감지할 수 있습니다. 변칙 탐지 및 근본 원인 분석을 위해 Pinot를 사용하는 방법에 대한 자세한 내용은 ThirdEye를 참조하십시오.

 

반응형

댓글