Table of contents Introduction Basics Concepts Architecture Components Cluster Controller Broker Server Minion Tenant Schema Table Segment Pinot data explorer Getting Started Running Pinot locally Running Pinot in Docker Running Pinot in Kubernetes Public cloud examples Running on Azure Running on GCP Running on AWS Hdfs as Deep Storage Manual cluster setup Batch import example Stream ingestion example Troubleshooting Pinot Frequently Asked Questions (FAQs) General Pinot On Kubernetes FAQ Ingestion FAQ Query FAQ Operations FAQ Import Data Batch Ingestion Spark Hadoop Backfill Data Dimension Table Stream ingestion Apache Kafka Amazon Kinesis Stream Ingestion with Upsert File systems Amazon S3 Azure Data Lake Storage HDFS Google Cloud Storage Input formats Complex Type (Array, Map) Handling Indexing Forward Index Inverted Index Star-Tree Index Bloom Filter Range Index Text search support JSON Index Geospatial Releases 0.8.0 0.7.1 0.6.0 0.5.0 0.4.0 0.3.0 0.2.0 0.1.0 Recipes GitHub Events Stream For Users Query Querying Pinot Supported Transformations Supported Aggregations User-Defined Functions (UDFs) Cardinality Estimation Lookup UDF Join Querying JSON data APIs Broker Query API Query Response Format Controller Admin API External Clients JDBC Java Python Golang Tutorials Use OSS as Deep Storage for Pinot Ingest Parquet Files from S3 Using Spark Creating Pinot Segments Use S3 as Deep Storage for Pinot Use S3 and Pinot in Docker Batch Data Ingestion In Practice Schema Evolution For Developers Basics Extending Pinot Writing Custom Aggregation Function Segment Fetchers Contribution Guidelines Code Setup Code Modules and Organization Update Documentation Advanced Data Ingestion Overview Ingestion Transforms Null Value Support Advanced Pinot Setup Plugins Write Custom Plugins Input Format Plugin Filesystem Plugin Batch Segment Fetcher Plugin Stream Ingestion Plugin Design Documents Segment Writer API For Operators Deployment and Monitoring Setup cluster Setup table Setup ingestion Decoupling Controller from the Data Path Segment Assignment Instance Assignment Rebalance Rebalance Servers Rebalance Brokers Tiered Storage Pinot managed Offline flows Minion merge rollup task Access Control Monitoring Tuning Realtime Routing Upgrading Pinot with confidence Command-Line Interface (CLI) Configuration Recommendation Engine Tutorials Authentication, Authorization, and ACLs Configuring TLS/SSL Build Docker Images Running Pinot in Production Kubernetes Deployment Amazon EKS (Kafka) Amazon MSK (Kafka) Monitor Pinot using Prometheus and Grafana Configuration Reference Cluster Controller Broker Server Table Schema Ingestion Job Spec RESOURCES Community Team Blogs Presentations Videos Integrations Trino ThirdEye Superset Presto