arrow-left

All pages
gitbookPowered by GitBook
1 of 1

Loading...

Quick Start Examples

This section describes quick start commands that launch all Pinot components in a single process.

Pinot ships with QuickStart commands that launch Pinot components in a single process and import pre-built datasets. These QuickStarts are a good place if you're just getting started with Pinot.

circle-info

Prerequisites

You will need to have installed Pinot locally or have Docker installed if you want to use the Pinot Docker image.

circle-exclamation

macOS Monterey Users

By default the Airplay receiver server runs on port 7000, which is also the port used by the Pinot Server in the Quick Start. You may see the following error when running these examples:

If you disable the Airplay receiver server and try again, you shouldn't see this error message anymore.

hashtag
Batch

This example demonstrates how to do batch processing with Pinot. The command:

  • Starts Apache Zookeeper, Pinot Controller, Pinot Broker, and Pinot Server.

  • Creates the baseballStats table

  • Launches a standalone data ingestion job that builds one segment for a given CSV data file for the baseballStats table and pushes the segment to the Pinot Controller.

hashtag
Batch JSON

This example demonstrates how to import and query JSON documents in Pinot. The command:

  • Starts Apache Zookeeper, Pinot Controller, Pinot Broker, and Pinot Server.

  • Creates the githubEvents table

  • Launches a standalone data ingestion job that builds one segment for a given JSON data file for the githubEvents table and pushes the segment to the Pinot Controller.

hashtag
Batch with complex data types

This example demonstrates how to do batch processing in Pinot where the data items have complex fields that need to be unnested. The command:

  • Starts Apache Zookeeper, Pinot Controller, Pinot Broker, and Pinot Server.

  • Creates the githubEvents table

  • Launches a standalone data ingestion job that builds one segment for a given JSON data file for the githubEvents table and pushes the segment to the Pinot Controller.

hashtag
Streaming

This example demonstrates how to do stream processing with Pinot. The command:

  • Starts Apache Kafka, Apache Zookeeper, Pinot Controller, Pinot Broker, and Pinot Server.

  • Creates meetupRsvp table

  • Launches a meetup stream

hashtag
Streaming JSON

This example demonstrates how to do stream processing with JSON documents in Pinot. The command:

  • Starts Apache Kafka, Apache Zookeeper, Pinot Controller, Pinot Broker, and Pinot Server.

  • Creates meetupRsvp table

  • Launches a meetup stream

hashtag
Streaming with minion cleanup

This example demonstrates how to do stream processing in Pinot with RealtimeToOfflineSegmentsTask and MergeRollupTask minion tasks continuously optimizing segments as data gets ingested. The command:

  • Starts Apache Kafka, Apache Zookeeper, Pinot Controller, Pinot Broker, Pinot Minion, and Pinot Server.

  • Creates githubEvents table

  • Launches a GitHub events stream

hashtag
Streaming with complex data types

This example demonstrates how to do stream processing in Pinot where the stream contains items that have complex fields that need to be unnested. The command:

  • Starts Apache Kafka, Apache Zookeeper, Pinot Controller, Pinot Broker, Pinot Minion, and Pinot Server.

  • Creates meetupRsvp table

  • Launches a meetup stream

hashtag
Upsert

This example demonstrates how to do with Pinot. The command:

  • Starts Apache Kafka, Apache Zookeeper, Pinot Controller, Pinot Broker, and Pinot Server.

  • Creates meetupRsvp table

  • Launches a meetup stream

hashtag
Upsert JSON

This example demonstrates how to do with JSON documents in Pinot. The command:

  • Starts Apache Kafka, Apache Zookeeper, Pinot Controller, Pinot Broker, and Pinot Server.

  • Creates meetupRsvp table

  • Launches a meetup stream

hashtag
Hybrid

This example demonstrates how to do hybrid stream and batch processing with Pinot. The command:

  1. Starts Apache Kafka, Apache Zookeeper, Pinot Controller, Pinot Broker, and Pinot Server.

  2. Creates airlineStats table

  3. Launches a standalone data ingestion job that builds segments under a given directory of Avro files for the airlineStats table and pushes the segments to the Pinot Controller.

hashtag
Join

This example demonstrates how to do joins in Pinot using the . The command:

  • Starts Apache Zookeeper, Pinot Controller, Pinot Broker, and Pinot Server in the same container.

  • Creates the baseballStats table

  • Launches a data ingestion job that builds one segment for a given CSV data file for the baseballStats table and pushes the segment to the Pinot Controller.

  • Issues sample queries to Pinot

  • Issues sample queries to Pinot

  • Issues sample queries to Pinot

  • Publishes data to a Kafka topic meetupRSVPEvents that is subscribed to by Pinot.

  • Issues sample queries to Pinot

  • Publishes data to a Kafka topic meetupRSVPEvents that is subscribed to by Pinot

  • Issues sample queries to Pinot

  • Publishes data to a Kafka topic githubEvents that is subscribed to by Pinot.

  • Issues sample queries to Pinot

  • Publishes data to a Kafka topic meetupRSVPEvents that is subscribed to by Pinot.

  • Issues sample queries to Pinot

  • Publishes data to a Kafka topic meetupRSVPEvents that is subscribed to by Pinot

  • Issues sample queries to Pinot

  • Publishes data to a Kafka topic meetupRSVPEvents that is subscribed to by Pinot

  • Issues sample queries to Pinot

  • Launches a stream of flights stats

  • Publishes data to a Kafka topic airlineStatsEvents that is subscribed to by Pinot.

  • Issues sample queries to Pinot

  • Creates the dimBaseballTeams table

  • Launches a data ingestion job that builds one segment for a given CSV data file for the dimBaseballStats table and pushes the segment to the Pinot Controller.

  • Issues sample queries to Pinot

  • stream processing with upsert
    stream processing with upsert
    Lookup UDF
    Failed to start a Pinot [SERVER]
    java.lang.RuntimeException: java.net.BindException: Address already in use
    	at org.apache.pinot.core.transport.QueryServer.start(QueryServer.java:103) ~[pinot-all-0.9.0-jar-with-dependencies.jar:0.9.0-cf8b84e8b0d6ab62374048de586ce7da21132906]
    	at org.apache.pinot.server.starter.ServerInstance.start(ServerInstance.java:158) ~[pinot-all-0.9.0-jar-with-dependencies.jar:0.9.0-cf8b84e8b0d6ab62374048de586ce7da21132906]
    	at org.apache.helix.manager.zk.ParticipantManager.handleNewSession(ParticipantManager.java:110) ~[pinot-all-0.9.0-jar-with-dependencies.jar:0.9.0-cf8b84e8b0d6ab62374048de586ce7da2113
    docker run \
        -p 9000:9000 \
        apachepinot/pinot:0.11.0 QuickStart \
        -type batch
    ./bin/pinot-admin.sh QuickStart -type batch
    docker run \
        -p 9000:9000 \
        apachepinot/pinot:0.11.0 QuickStart \
        -type batch_json_index
    ./bin/pinot-admin.sh QuickStart -type batch_json_index
    docker run \
        -p 9000:9000 \
        apachepinot/pinot:0.11.0 QuickStart \
        -type batch_json_index
    ./bin/pinot-admin.sh QuickStart -type batch_json_index
    docker run \
        -p 9000:9000 \
        apachepinot/pinot:0.11.0 QuickStart \
        -type stream
    ./bin/pinot-admin.sh QuickStart -type stream
    docker run \
        -p 9000:9000 \
        apachepinot/pinot:0.11.0 QuickStart \
        -type stream_json_index
    ./bin/pinot-admin.sh QuickStart -type stream_json_index
    docker run \
        -p 9000:9000 \
        apachepinot/pinot:0.11.0 QuickStart \
        -type realtime_minion
    ./bin/pinot-admin.sh QuickStart -type realtime_minion
    docker run \
        -p 9000:9000 \
        apachepinot/pinot:0.11.0 QuickStart \
        -type stream_complex_type
    ./bin/pinot-admin.sh QuickStart -type stream_complex_type
    docker run \
        -p 9000:9000 \
        apachepinot/pinot:0.11.0 QuickStart \
        -type upsert
    ./bin/pinot-admin.sh QuickStart -type upsert
    docker run \
        -p 9000:9000 \
        apachepinot/pinot:0.11.0 QuickStart \
        -type upsert_json_index
    ./bin/pinot-admin.sh QuickStart -type upsert_json_index
    docker run \
        -p 9000:9000 \
        apachepinot/pinot:0.11.0 QuickStart \
        -type hybrid
    ./bin/pinot-admin.sh QuickStart -type hybrid
    docker run \
        -p 9000:9000 \
        apachepinot/pinot:0.11.0 QuickStart \
        -type join
    ./bin/pinot-admin.sh QuickStart -type join