2011-07-19 7 views
0

ある種のデータをマスター/ディテールで定義したいのですが。説明のために、チームのコレクションを持つサッカーリーグ「リーグ-A」を考えてみましょう。時間の経過とともにチームを追加または削除したり、属性が変更されたり、リーグの属性が変更される可能性があります。私は非標準表記法のために(申し訳ありません、以下のデータを追加する場合、今カサンドラで 'a.k.a.a.a.a.'有効期限のあるデータ検索のためのビルドインサポートがありますか

Column Family: League 
     Column: Name 
     Column: Sponsor 
Column Family: Team 
     Column: team-A 
     Column: team-B etc 

、と私はちょうど日付を表示するためにタイムスタンプを簡素化しました:私はこのようなテーブル構造を定義することができるのHBaseで

一部):

Key Timestamp  Team 
LG-A 2011-01-01  "The Blues": blues-data 
LG-A 2011-03-01  "The Reds": reds-data 
LG-A 2011-03-10  "The Greens": greens-data2 
:私はLG-指定時間2011年3月10日のためのデータを照会し、その結果を取得したい

Key Timestamp League { Name  Sponsor } 
LG-A 2011-01-01   League-A Big-Co 

Key Timestamp  Team 
LG-A 2011-01-01  "The Blues": blues-data 
LG-A 2011-01-01  "The Greens": greens-data 
LG-A 2011-03-01  "The Reds": reds-data 
LG-A 2011-03-10  "The Greens": greens-data2 

私はLG-指定時間2011-02-01を照会するとき0

は同様に私は結果を得る:

Key Timestamp  Team 
LG-A 2011-01-01  "The Blues": blues-data 
LG-A 2011-01-01  "The Greens": greens-data 

これは、データを入れたときにタイムスタンプを設定し、その後の時間範囲を設定することで、HBaseの中で行われていますGetオペレーション

これは簡単にカサンドラで行うことができますか?これまで私は、タイムズデータを保存するためにタイムスタンプ値を使ってカラム名を書くことを提案してきましたが、これは上記のフィーチャを与えるようには見えません(例えば、私の結果の "The Greens"指定されたタイムスタンプのに効果的で。

答えて

1

これは、データを入れたときにタイムスタンプを設定して、取得操作のための時間範囲を設定することで、HBaseの中で行われている。

私は合理的に確信している。この結果は、

あなたは手動でカサンドラでスキャンすることができます。あなたのタイムスタンプを含む列を作成し、そのインデックスを作成します。例についてはhttp://www.datastax.com/dev/blog/whats-new-cassandra-07-secondary-indexesを参照してください(非tsデータでも原則は同じです)。

+0

ありがとうございます。私がインデックスを作成した場合、インデックス検索で 'この時点で最新の定義を取得する'ことがサポートされていないため、要求されたタイムスタンプの有効なデータを選択するコードを書く必要があります(無料のビットHBaseから)? – Paul

+0

並べ替えそれが気になるクエリであれば、Cassandraではこれを別の方法でモデル化します。列名としてタイムスタンプを使用して定義を並べることになります。次に、「私に最新の定義を与える」とは、「get_slice、反転、1つの列に対して」となります。 – jbellis

+0

ご協力いただきありがとうございます。これは私に試みるアプローチを与えてくれました。 – Paul

関連する問題