Datastores¶
Unlike many ground data systems for space missions, Hermes does not ship with a builtin data persistence solution. Data storage is not a goal of the Hermes project. For this purpose, Hermes relies on an external provider to store its time series data. There are a number of databases that Hermes supports, each with their own use cases.
Before we discuss the Hermes supported datastores, it is important to discuss the data model of Hermes. Hermes uses a generic data representation which can be converted to a chosen database representation. It is also important to note that Hermes does not persist any data in the backend. A plugin can be either built directly into the backend or attached via the gRPC API.
The Hermes downlink data model is described in our core concepts document.
Below is a table of the supported databases that can be used to persist data streaming through Hermes.
| Database Overview | Pros/Cons | Use Cases |
|
Open Telemetry
Covers all OTEL databases including the recommended Grafana Loki-Grafana-Tempo-Mimir (LGTM) stack. |
Pros
|
Demo, prototype, early development. Supplimentary to another database for events and command + sequence tracing. |
|
Clickhouse
High performance database built for online analytical processing (OLAP) |
Pros
|
V&V, ALTO, Operations |
|
SQLite
Single file based embedded database for zero overhead data storage. |
Pros
|
FSW Dev, CI, FIT Testing |
|
TimescaleDB
Time series extension to PostgreSQL. Supports materialized view for online preprocessing of common queries. Works with Postgres tooling. |
Pros
|
V&V, ALTO, Operations |
|
InfluxDB
High performance open-schema time series nosql column-based database |
Pros
|
V&V, ALTO, Operations |