Skip to content

Latest commit

 

History

History

partial-upserts

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Partial Upserts

In this recipe we'll learn how to use partial upsert functionality.

Pinot Version 1.0.0
Schema config/meetup_rsvp_schema.json
Table Config config/meetup_rsvp_table.json

This is the code for the following recipe: https://dev.startree.ai/docs/pinot/recipes/upserts-partial


git clone git@github.com:startreedata/pinot-recipes.git
cd pinot-recipes/recipes/partial-upserts

Spin up a Pinot cluster using Docker Compose:

docker-compose up

Add table and schema:

docker run \
   --network upserts \
   -v $PWD/config:/config \
   apachepinot/pinot:1.0.0 AddTable \
  -tableConfigFile /config/meetup_rsvp_table.json \
  -controllerHost "pinot-controller" \
  -schemaFile /config/meetup_rsvp_schema.json \
  -exec

Import messages into Kafka:

echo - '
{"event_id":3,"venue_name":"Indonesia","group_name":"C","rsvp_count":1,"mtime":"1635140709"}
{"event_id":3,"venue_name":"China","group_name":"C","rsvp_count":1,"mtime":"1646067689"}
{"event_id":2,"venue_name":"France","group_name":"C","rsvp_count":1,"mtime":"1616646138"}
{"event_id":1,"venue_name":"Myanmar","group_name":"B","rsvp_count":1,"mtime":"1632930567"}
{"event_id":1,"venue_name":"Hungary","group_name":"A","rsvp_count":1,"mtime":"1643574332"}
{"event_id":1,"venue_name":"China","group_name":"B","rsvp_count":1,"mtime":"1645779637"}
' | kcat -P -b localhost:9092 -t meetup_rsvp

Query Pinot:

select event_id, sum(rsvp_count) as total_rsvp
from meetup_rsvp 
group by event_id
order by total_rsvp desc
limit 10