Heroic is an open-source times-series DBMS built at Spotify.
- Source Code
- https://github.com/spotify/heroic[02]
- Developer
- Country of Origin
- SE
- Start Year
- 2014 [05]
- End Year
- 2019 [06]
- Project Type
- Open Source
- Written in
- Java
- Derived From
- Cassandra, Elasticsearch, ksqlDB
- Operating System
- All OS with Java VM
- License
- Apache v2
Heroic is an open-source times-series DBMS built at Spotify.
Data Model[04]
Heroic uses a key/value data model, where each key is comprised of a “unique set of tags and resource identifiers” that correspond to a single series. In this context, we define tags as the database data that can be indexed and will be retained within the database. Additionally, each tag also has its corresponding-time series stored with the data. Tags are thus used in complex queries for both filtering and aggregations, as described by the GitHub Documentation. On the other hand, a Resource Identifier is data that cannot be indexed. However the data itself is still stored with this corresponding-time series. Thus, the purpose of resource identifiers itself is to ensure that data which is constantly changing can still be stored and accessed as per its time-series. As the GitHub documentation gives as example, if the hostname field were to change often, rather than retaining the field, for the purpose of maintaining time-series data as the documentation describes, we would keep hostname as a Resource Identifier and not a tag. As such, resource identifiers are used for querying based off of aggregations.
Citations
6 sources- Heroic Documentation github.io
- GitHub - spotify/heroic: The Heroic Time Series Database · GitHub github.com
- Heroic Documentation github.io
- Heroic Documentation github.io
- initial commit github.com
- Fallback to DOCKER_TAG when setting version. (#585) github.com