1

cli から Cassandra CounterColumnFamily を使用していくつかの基本的なクエリを試しています。私は基本的に、行キーをURLとして持つ列ファミリー「page_view_counts」を持っています。各行には、3 つのカウント (インプレッション、コンバージョン、収益) が関連付けられています。変換が 10 を超える行を取得したいので、カウントの 1 つにインデックスを付けました。

これは、describe page_view_counts の出力です。

  ColumnFamily: page_view_counts
  Key Validation Class: org.apache.cassandra.db.marshal.UTF8Type
  Default column value validator: org.apache.cassandra.db.marshal.CounterColumnType
  Columns sorted by: org.apache.cassandra.db.marshal.UTF8Type
  GC grace seconds: 864000
  Compaction min/max thresholds: 4/32
  Read repair chance: 0.1
  DC Local Read repair chance: 0.0
  Replicate on write: true
  Caching: KEYS_ONLY
  Bloom Filter FP chance: default
  Column Metadata:
    Column Name: conversion
      Validation Class: org.apache.cassandra.db.marshal.CounterColumnType
      Index Name: page_view_counts_conversion_idx
      Index Type: KEYS
  Compaction Strategy: org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy
  Compression Options:
    sstable_compression: org.apache.cassandra.io.compress.SnappyCompressor

私の列ファミリーのいくつかのサンプルデータ:

RowKey: row27
=> (counter=conversion, value=27000)
=> (counter=impression, value=54000)
=> (counter=revenue, value=81000)
------------------- 
RowKey: row29
=> (counter=conversion, value=29000)
=> (counter=impression, value=58000)
=> (counter=revenue, value=87000)
------------------- 
RowKey: row81
=> (counter=conversion, value=81000)
=> (counter=impression, value=162000)
=> (counter=revenue, value=243000)

しかし、次のクエリを実行すると、これらのエラーが発生します。

[default@hector] get page_view_counts where conversion>23;
invalid operation for commutative columnfamily page_view_counts
[default@hector] get page_view_counts where conversion=long('1000');
invalid operation for commutative columnfamily page_view_counts
[default@hector] get page_view_counts where conversion=1000;
invalid operation for commutative columnfamily page_view_counts
[default@hector] get page_view_counts where KEY='row81';
java.lang.NumberFormatException: An hex string representing bytes must have an even length
[default@hector] get page_view_counts where KEY=bytes('row81');
java.lang.RuntimeException: java.lang.RuntimeException: org.apache.cassandra.db.marshal.MarshalException: cannot parse 'row81' as hex bytes
[default@hector] get page_view_counts where KEY=utf8('row81');
invalid operation for commutative columnfamily page_view_counts

誰かがこれで私を助けてくれますか?

ありがとう。

4

1 に答える 1

1

これを試して:

assume page_view_counts keys as UTF8Type;
get page_view_counts['row81'];
于 2012-09-21T18:13:18.910 に答える