Cassandra 模式

  • A+
所属分类:KairosDB

Cassandra 模式包含三个列族:

  • data_points   保存数据
  • row_key_index 查询中索引查找到的行
  • string_index 在系统中用于回答查询的标记和指标

 数据点列族(Data Points Column Family)

该行主要由3部分连接在一起组成:

  1. 指标名称(UTF-8)
  2. 行时间戳
  3. 数据存储类型
  4. 连接的标记字符串 (tag1=val1:tag2=val2...)

列名是32位的数据。第31位是无符号从该行键(以毫秒为单位)的时间偏移量。最后一位是用于识别存储的值的类型(long = 0x0, float = 0x1)。

列变量值取决于值的类型。

值类型 描述
long Only significate bytes are stored. If the value is 1-255 then only one byte is stored, etc.
float The value is stored as either 5 or 9 bytes. The first byte identifies the value as either float or double and the remaining bytes are the data.

行的长度被设定为正好3周数据或1814400000列。

行键索引列族(Row Key Index Column Family)

当查询数据时,该行被主要使用到。该行键是指标的名称。列名是从data_points列族的行键。该列没有值。

字符串索引列族(String Index Column Family)

在系统中通过索引来查找哪些指标名称,标记名称和标记值。

模式如何使用的?

当查询特定指标时,行键索引是列的一个片段,返回包含数据的行。该行键根据是否指定了任何标记来过滤。多hector 获取调用,获取来自各行的数据。如果任何行有更多的数据,剩下的使用单独的更大的缓冲区取出。

与OpenTSDB HBase比较

其一,我们不使用ID字符串。 字符串数据(指标名称和标签)被写入到行键和相应的索引。因为Cassandra 是宽行,较少的键写入数据库。使用ID节省的空间是微妙的而且不使用ID在访问集群时可以避免使用任何类型的锁。

在OpenTSDB HBase下,默认的行大小是1小时。而Cassandra是3周。

weinxin
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: