菜单
开源

旧版存储

警告

本页面描述的概念被视为旧版,早于 Loki 2.0 中引入的单一存储。强烈不建议在新安装中使用旧版存储,本文档仅作为升级到单一存储时的参考信息。

块存储是 Loki 的长期数据存储,旨在支持交互式查询和持续写入,无需后台维护任务。它由以下部分组成:

注意

与其他 Loki 核心组件不同,块存储不是独立的服务、作业或进程,而是嵌入在需要访问 Loki 数据的两个服务中的库:ingester 和 querier。

块存储依赖于与“NoSQL”存储(DynamoDB、Bigtable 和 Cassandra)的统一接口,这些存储可用于支持块存储索引。此接口假定索引是以以下内容为键的条目集合:

  • 哈希键。所有读写操作都需要此键。
  • 范围键。写操作需要此键,而读操作可以省略,读操作可以按前缀或范围进行查询。

此接口在支持的数据库中略有不同

  • DynamoDB 原生支持范围键和哈希键。因此,索引条目被直接建模为 DynamoDB 条目,其中哈希键作为分发键,范围作为 DynamoDB 范围键。
  • 对于 Bigtable 和 Cassandra,索引条目被建模为单个列值。哈希键成为行键,范围键成为列键。

使用一组模式将用于读写块存储的匹配器和标签集映射到索引上的适当操作。随着 Loki 的演进,不断添加了新的模式,主要目的是更好地平衡写入负载和提高查询性能。