直接查询kairosdb列族

时间:2013-10-01 16:10:13

标签: cassandra opentsdb kairosdb

我正试图从Cassandra中提取一些时间序列数据。数据由外部应用程序放在那里,它使用KairosDB写入数据(基于OpenTSDB)。我没有选择将KairosDB库放入我正在开发的应用程序中,但是我已经可以使用Datastax Cassandra库了。

我如何编写基本查询以便以可用的方式直接从Cassandra检索信息?查询我可以指定开始/结束时间和行键索引的附加标签。其中一些可能是我缺少的基本Cassandra知识,但是存在特定于模式的问题,例如样本时间存储为row_key_index中绝对时间戳的相对值,或者数据可以跨多个row_key_index分割的事实列取决于数据保留和请求的时间跨度。

如果我直接从列族查询数据,我会得到这样的结果:

cqlsh:kairosdb> select * from string_index;
 key                        | column1                                    | value
----------------------------+--------------------------------------------+-------
 0x7461675f76616c756573 |                                        all |    0x
 0x7461675f76616c756573 |                                data_points |    0x
 0x7461675f76616c756573 |                       eui.3765353036366237 |    0x
 0x7461675f76616c756573 |                              row_key_index |    0x
 0x7461675f76616c756573 |                               string_index |    0x
 0x6d65747269635f6e616d6573 |         kairosdb.datastore.queries_waiting |    0x
 0x6d65747269635f6e616d6573 |              kairosdb.datastore.query_time |    0x
 0x6d65747269635f6e616d6573 |              kairosdb.datastore.write_size |    0x

如果我对row_key_index表进行查询,则数据全部存储为blob。执行blob-> ascii转换会给出:

cqlsh:kairosdb> select blobAsAscii(key) from row_key_index;

 blobAsAscii(key)
------------------------------------
  kairosdb.datastore.write_size
  kairosdb.datastore.write_size
  kairosdb.datastore.write_size
  kairosdb.datastore.write_size
  kairosdb.datastore.write_size

column1上的相同转换给出:

cqlsh:kairosdb> select blobAsAscii(column1) from row_key_index;

 blobAsAscii(column1)
----------------------------------------------------------------------------------------                                                                                                                                                        
kairosdb.datastore.write_size\x00\x00\x00\x01A\x0fw\xa0\x00buffer=data_points:host=JMOROSKI-DEV:
kairosdb.datastore.write_size\x00\x00\x00\x01A\x0fw\xa0\x00buffer=row_key_index:host=JMOROSKI-DEV:
kairosdb.datastore.write_size\x00\x00\x00\x01A\x0fw\xa0\x00buffer=string_index:host=JMOROSKI-DEV:
kairosdb.datastore.write_size\x00\x00\x00\x01A{\x9d,\x00buffer=data_points:host=JMOROSKI-DEV:
kairosdb.datastore.write_size\x00\x00\x00\x01A{\x9d,\x00buffer=row_key_index:host=JMOROSKI-DEV:

和数据点:

cqlsh:kairosdb> select blobAsAscii(column1) from data_points limit 10;

 blobAsAscii(column1)
----------------------
 \x00\x00\x00\x00
    \x00\x00\x9c@
    \x00\x018\x80
 \x00\x01\xd4\xc0
    \x00\x02q\x00
      \x00\x03\r@
 \x00\x03\xa9\x80
    \x00\x04E\xc0
 \x00\x04\xe2\x00
       \x00\x05~@

我没有看到时间。我期望row_key_index中的绝对时间和data_points中的相对偏移量。我有时看不到价值观。我没有看到查询特定计算机的统计信息的方法,因为该信息似乎嵌入到row_key_index.column1中的标记中,并且我不知道cql中的任何LIKE或范围切片等价物。

0 个答案:

没有答案
相关问题