4

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または範囲スライスに相当するものを認識していないため、特定のマシンの統計を照会する方法がわかりません。

4

0 に答える 0