LinkSmart Historical Datastore is a modular service for time-series data storage. It is designed to store timeseries data on low powered devices and single board computers. It uses Sensor Measurement Lists (SenML) as the data format for storage and retrieval. Metadata related to the series is stored in Historical Datastore's registry.
The binaries can be found in the release.
Use -conf flag to set the config file path. If not set, ./conf/historical-datastore.json
will be used.
./historical-datastore -conf historical-datastore.json
amd64
images are built and available on Dockerhub. To run the latest:
docker run -p 8085:8085 linksmart/hds
Measurements and the registry data is stored by default in /data
directory of the container.
To make it persistent across multiple docker runs, the container directory /data
must be mounted to a
host directory (e.g. /data/hds
in the host) as shown below:
docker run -p 8085:8085 -v /data/hds:/data linksmart/hds
Images for other architectures (e.g. arm
, arm64
) can be build locally by running:
git clone https://github.com/linksmart/historical-datastore.git
cd historical-datastore
docker build -t linksmart/hds .
To run Historical Datastore in demo mode (with continuously growing dummy senml data)
docker run -p 8085:8085 linksmart/hds -demo
The dependencies of this package are managed by Go Modules.
The code consists of four packages locate at:
/
- implementation of a standalone service providing full API./registry
- implementation of Registry API/data
- implementation of Data API
git clone https://github.com/linksmart/historical-datastore.git
cd historical-datastore
go build -mod=vendor -o historical-datastore
Contributions are welcome.
Please fork, make your changes, and submit a pull request. For major changes, please open an issue first and discuss it with the other authors.