Getting started

Nibble consists of three components:

nibbledb - the database

nibblegw - a gateway for scaling the database

nibbleql - a REPL that provides an alternative to the Rest API for interacting with the database and gateway

All components run as Docker containers, therefore having this software installed is the only prerequisite for using the technology. Future work will make use of Kubernetes to help orchestrate the platform including how to restrict access to the database.

The tutorial will cover in more depth how to use Nibble but in its simplest form we can start a database as follows:

docker run -p 8000:8000 -it jptmoore/nibbledb

we can POST and GET data from it using the Rest API as follows:

curl --request POST --data '[{"value": 1}, {"value": 2}, {"value": 3}]' http://localhost:8000/ts/foo

In the above call we can see that we are posting some JSON values to a specific URL which has the format /ts/foo which means we are writing the values to a time series called foo.

curl http://localhost:8000/ts/foo/last/3

The data returned from the above query looks like:

[
{
"timestamp": 1598973056750453,
"value": 3
},
{
"timestamp": 1598973056750444,
"value": 2
},
{
"timestamp": 1598973056750443,
"value": 1
}
]

Note, that because we did not supply a timestamp with our values one was automatically generated to microsecond accuracy.