Create an Apache Pinot cluster using Docker
and docker-compose
.
Deploy the cluster using the command:
docker-compose up -d
Once all services are up, navigate to Apache Pinot controller in http://localhost:9001.
To ingest the tracks.csv
dataset, please run the following commands.
# Create temp folders in the container
docker exec pinot-controller-1-1 mkdir -p /tmp/raw_data/tracks
docker exec pinot-controller-1-1 mkdir -p /tmp/definitions/
# Copy files to container
docker cp tracks.csv pinot-controller-1-1:/tmp/raw_data/tracks/
docker cp tracks-schema.json pinot-controller-1-1:/tmp/definitions/
docker cp tracks-table-offline.json pinot-controller-1-1:/tmp/definitions/
docker cp tracks_job_spec.yml pinot-controller-1-1:/tmp/definitions/
# Add schema and table
docker exec -it pinot-controller-1-1 \
/opt/pinot/bin/pinot-admin.sh AddTable \
-controllerPort 9001 \
-schemaFile /tmp/definitions/tracks-schema.json \
-tableConfigFile /tmp/definitions/tracks-table-offline.json \
-exec
# Ingest CSV data
docker exec -it pinot-controller-1-1 \
/opt/pinot/bin/pinot-admin.sh LaunchDataIngestionJob \
-jobSpecFile /tmp/definitions/tracks_job_spec.yml
The stored tracks
table can be queried using Pinot's Query Console
.