1

次のようなテーブルがあります。

CREATE TABLE テスト ( partitionkey テキスト、rowkey テキスト、date timestamp、policyid テキスト、policyname テキスト、主キー (partitionkey、rowkey));

いくつかのデータを使用:

パーティションキー | 行キー | ポリシー ID | ポリシー名 | 日にち

     p1 |   r1 |    pl1 |  plicy1 | 2007-01-02 00:00:00+0000
     p1 |   r2 |    pl2 |  plicy2 | 2007-01-03 00:00:00+0000
     p2 |   r3 |    pl3 |  plicy3 | 2008-01-03 00:00:00+0000

私は見つけることができるようにしたい:

1/ data from a particular partition key
2/ data from a particular partition key & rowkey
3/ Range query on date given a partitionkey

1/ と 2/ は自明です:

select * from test where partitionkey='p1';

パーティションキー | 行キー | ポリシー ID | ポリシー名 | 範囲

    p1 |     r1 |      pl1 |     plicy1 | 2007-01-02 00:00:00+0000
    p1 |     r2 |      pl2 |     plicy2 | 2007-01-03 00:00:00+0000

しかし、3/はどうですか?インデックスがあっても機能しません:

テスト (日付) にインデックス i1 を作成します。

select * from test where partitionkey='p1' and date = '2007-01-02';

パーティションキー | 行キー | ポリシー ID | ポリシー名 | 日にち

  p1 |  r1 |   pl1   plicy1 | 2007-01-02 00:00:00+0000

しかし

select * from test where partitionkey='p1' and date > '2007-01-02';

不正な要求: Equal 演算子を含む by-columns 句にインデックス付きの列が存在しません

何か案が?ありがとう、マット

4

1 に答える 1