플러그인 레퍼런스

플러그인 레퍼런스 (Plugin Reference)

Apache Pinot 플러그인 레퍼런스 문서예요.

출처: 문서

본문

Pinot은 더 빠른 반복과 유연한 통합을 위해 플러그형 아키텍처를 사용해요. 플러그인은 확장(extension)으로 구현되며, pinot-startree, 등과 같은 별도 모듈과 완성을 가지는 구성 요소 기능을 제공해요. 플러그인은 분산 버전에 함께 패키징되어 동작해요.

플러그인 로딩은 시작 시 -Dplugins.dir을 통해 구성할 수 있어요. 기본적으로 jpeg 等 반복을 줄이도록 컴파일된 확장들이 로드됩니다.

입력 형식 플러그인 (Input format plugins)

다양한 입력 데이터 형식을 읽는 record reader를 제공해요.

플러그인 형식 클래스
pinot-avro AVRO org.apache.pinot.plugin.inputformat.avro.AvroRecordReader
pinot-csv CSV org.apache.pinot.plugin.inputformat.csv.CSVRecordReader
pinot-json JSON org.apache.pinot.plugin.inputformat.json.JSONRecordReader
pinot-parquet Parquet org.apache.pinot.plugin.inputformat.parquet.ParquetRecordReader
pinot-orc ORC org.apache.pinot.plugin.inputformat.orc.ORCRecordReader
pinot-thrift Thrift org.apache.pinot.plugin.inputformat.thrift.ThriftRecordReader
pinot-protobuf Protobuf org.apache.pinot.plugin.inputformat.protobuf.ProtoBufRecordReader
pinot-clp CLP 로그 org.apache.pinot.plugin.inputformat.clp.CLPRecordReader

파일시스템 플러그인 (File system plugins)

딥 스토리지 및 입력/출력 파일시스템을 지원해요.

플러그인 FileSystem 클래스
pinot-filesystem (내장) 로컬 org.apache.pinot.spi.filesystem.LocalPinotFS
pinot-s3 Amazon S3 org.apache.pinot.plugin.filesystem.S3PinotFS
pinot-adls / pinot-azure Azure Data Lake org.apache.pinot.plugin.filesystem.AzurePinotFS
pinot-gcs Google Cloud Storage org.apache.pinot.plugin.filesystem.GcsPinotFS
pinot-hdfs HDFS org.apache.pinot.plugin.filesystem.HadoopPinotFS
pinot-oss Aliyun OSS org.apache.pinot.plugin.filesystem.OSSClientPinotFS

스트림 소비 플러그인 (Stream ingestion plugins)

실시간 스트림 소스에서 데이터를 소비하는 컨슈머 팩토리를 제공해요.

플러그인 스트림 컨슈머 팩토리
pinot-kafka Apache Kafka org.apache.pinot.plugin.stream.kafka.KafkaConsumerFactory
pinot-kafka-3 Apache Kafka 3.x org.apache.pinot.plugin.stream.kafka30.KafkaConsumerFactory
pinot-kinesis Amazon Kinesis org.apache.pinot.plugin.stream.kinesis.KinesisConsumerFactory
pinot-pulsar Apache Pulsar org.apache.pinot.plugin.stream.pulsar.PulsarConsumerFactory
pinot-sqs Amazon SQS org.apache.pinot.plugin.stream.sqs.SQSConsumerFactory
pinot-http HTTP(Polling) org.apache.pinot.plugin.stream.http.HttpConsumerFactory

디코더 플러그인 (Stream decoder plugins)

스트림 메시지의 페이로드 형식에 따라 메시지를 디코딩해요.

플러그인 형식 디코더
pinot-json JSON org.apache.pinot.plugin.stream.decoder.JsonMessageDecoder
pinot-avro Avro org.apache.pinot.plugin.stream.decoder.AvroMessageDecoder
pinot-kafka-avro / confluent Confluent Schema Registry Avro org.apache.pinot.plugin.stream.decoder.KafkaAvroMessageDecoder
pinot-protobuf Protobuf org.apache.pinot.plugin.stream.decoder.ProtoBufMessageDecoder
pinot-clp CLP org.apache.pinot.plugin.stream.decoder.CLPMessageDecoder
pinot-thrift Thrift org.apache.pinot.plugin.stream.decoder.ThriftMessageDecoder

세그먼트 작성 플러그인 (Segment writer plugins)

세그먼트 생성 방식을 확장해요.

  • pinot-spi (내장) — 기본 SegmentWriter/PinotSegmentGenerator.
  • pinot-columnar / 오프라인 세그먼트 생성 관련 플러그인.

Minion 작업 플러그인

Minion에서 실행하는 작업(task)을 제공해요.

  • PinotTaskManager 기본 작업: RealtimeToOfflineSegmentsTask, MergeRollupTask, ConvertToRawIndexTask, RealtimeToOfflineSegmentsTask, SegmentGenerationAndPushTask(Spark) 등.

기타 플러그인

플러그인 용도
pinot-batch-ingestion-spark Spark 배치 수집 러너(PluginSegmentGenerationJobRunner 등).
pinot-batch-ingestion-hadoop Hadoop/MapReduce 배치 수집 러너.
pinot-batch-ingestion-flink Flink 배치 수집 러너.
pinot-segment-uploader 세그먼트 업로더 플러그인.

플러그인 로딩 구성

배치/분산 구성에서 플러그인을 로드하려면 -Dplugins.dir을 설정해요:

-Dplugins.dir=/path/to/pinot/plugins

Spark/Hadoop 배치 수집은 plugins-external을 포함한 세미콜론 구분 목록을 사용해요:

-Dplugins.dir=/path/to/plugins;/path/to/plugins-external

-Dplugins.include와 -Dplugins.includeAll(기본 true)로 특정 플러그인만 로드하도록 제어할 수 있어요.

더 알아보기 (Learn more)