Thirty-five second demo
Download and start Seafowl (15s)
docker run --rm -p 8080:8080 \
-e SEAFOWL__FRONTEND__HTTP__WRITE_ACCESS=any \
splitgraph/seafowl:nightly
Or download it from the releases page and run it without Docker:
SEAFOWL__FRONTEND__HTTP__WRITE_ACCESS=any ./seafowl
Add a Parquet dataset from HTTP (15s)
curl -i -H "Content-Type: application/json" localhost:8080/q -d@- <<EOF
{"query": "CREATE EXTERNAL TABLE tripdata \
STORED AS PARQUET \
LOCATION 'https://d37ci6vzurychx.cloudfront.net/trip-data/yellow_tripdata_2022-01.parquet'"}
EOF
curl -i -H "Content-Type: application/json" localhost:8080/q \
-d '{"query": "CREATE TABLE tripdata AS SELECT * FROM staging.tripdata"}'
Run a query (5s)
curl -i -H "Content-Type: application/json" localhost:8080/q \
-d@-<<EOF
{"query": "SELECT
EXTRACT(hour FROM tpep_dropoff_datetime) AS hour,
COUNT(*) AS trips,
SUM(total_amount) AS total_amount,
AVG(tip_amount / total_amount) AS tip_fraction
FROM tripdata
WHERE total_amount != 0
GROUP BY 1
ORDER BY 4 DESC"}
EOF
{"hour":21,"trips":109685,"total_amount":2163599.240000029,"tip_fraction":0.12642660660636984}
{"hour":22,"trips":107252,"total_amount":2154126.55000003,"tip_fraction":0.12631676747865359}
{"hour":19,"trips":159241,"total_amount":3054993.040000063,"tip_fraction":0.1252992155287979}
{"hour":18,"trips":183020,"total_amount":3551738.5100000845,"tip_fraction":0.1248666037263193}
{"hour":20,"trips":122613,"total_amount":2402858.8600000343,"tip_fraction":0.12414978866883832}
{"hour":1,"trips":45485,"total_amount":940333.4000000034,"tip_fraction":0.12336981088023881}
...
What's next?
- Follow a tutorial that will teach you how to deploy Seafowl to Fly.io behind a cache or a CDN and query it with Observable
- Browse some example Docker Compose configurations