我正在对InfluxDB进行一些研究,发现它使用底层的Key-Value存储进行存储(如LevelDB,RocksDB等)。
我想要一个心智模型,说明为存储时间序列数据创建了哪种密钥。
我正在猜测"开始时间戳 - >价值清单......"但想要更准确地解释一下。
答案 0 :(得分:1)
InfluxDB的工作方式略有不同。
InfluxDB数据库存储点。点有四个组件:度量,标记集,字段集和时间戳。
测量提供了一种关联可能具有不同标记集或字段集的相关点的方法。标记集是键值对的字典,用于存储带点的元数据。字段集是一组键入的标量值 - 由点记录的数据。
点的序列化格式由[行协议]定义(如果您想了解更多详细信息,则包括其他示例和说明)。规范中的一个示例点有助于解释术语:
temperature,machine=unit42,type=assembly internal=32,external=100 1434055562000000035
测量是温度。
标签集是machine = unit42,type = assembly。标记集中的键,机器和类型称为标记键。标记集中的值unit42和assembly称为标记值。
fieldset是internal = 32,external = 100。字段集中的内部和外部键称为字段键。字段集中的值32和100称为字段值。
您可以查看此帖子以获取内部的完整说明。 https://www.influxdata.com/blog/influxdb-internals-101-part-one/