1

テストシステム用のデータベースを実装する必要があります。これは、将来の統計分析のためにテストデータを保存するように設計されています。カサンドラベースである必要があります

スキーマを設計しましたが、これがNoSQL設計の最初の試みであるため、フィードバックをお寄せください。

最初に保存したいデータについて説明し、次に2つの基本的なクエリについて説明し、最後に提案された設計を示します。

Cassandra 1.1を使用するつもりなので、デザインでコンポジットカラムを使用しようとしましたが、スーパーカラムまたは適切と思われるものを自由に提案してください。

データ:

私たちがテストしている基本ユニットはエイリアンです。各エイリアンには一意のIDがあります。各エイリアンにはいくつかの体の部分があります。また、各エイリアンはエイリアンの家族の一部です。家族にはユニークな名前があります。

テストを実行するときは、エイリアングループのいくつかのボディパーツでテストを実行します。たとえば、私たちはいくつかの家族を連れて、彼らのすべての目と口でテストを実行します。

いくつかの種類のテストがあります。各テストは、独自のテスト一意IDでログに記録されます。

テストを実行するとき、関連するすべてのエイリアンの身体部分を数分ごとにサンプリングし、いくつかの統計を収集します。

基本的なクエリ:

  1. 各家族またはエイリアンまたはユニークなボディパーツごとに-それが参加したテスト。
  2. 各テストIDごとに-どの家族またはエイリアンまたはユニークな身体部分がそれに参加しました。
  3. 将来的には、すべてのデータの統計分析...

私のデザインの試み:

GeneralAliensData : { // Column Family  - general data on aliens. 
    [FamilyID][AlienID][Bodypart] : { //Composite Columns as Row keys
        Race: 'Blurgons' // column
        Shoesize: 5 // column
        Favorite probe: 'fun, toy' // column
    }  
}

TestsData : { // Column Family - we sample each test every couple of minutes...
    [TestID][AlienID][Bodypart][MinutesFromTestStart]: { //Composite Columns as Rowkeys
        Temperture: 30 // column
        Size: 5 // column
    }  
}


BodypartTestParticipation : { // Column Family - all the tests a unique bodypart passed...
    [FamilyID][AlienID][Bodypart]: { //Composite Columns as Row keys
        TestID: 105 // column
        TestID: 564 // column
        ...
    }  
}

これだよ。私はデータベース、特にCassandraの真の初心者なので、どんな入力でもいただければ幸いです。

お時間をいただきありがとうございます。

4

1 に答える 1

0

データセットは最終的にどのくらいの大きさになりますか?PlayOrmを使用してリレーショナルデータをnoSQLに格納することがあります。これはうまく機能し、テーブルは数百万行に入る可能性があります。数十億/数兆行に入る場合は、PlayOrmを使用して同じデータを分割し、スケーリングします。

それで、あなたはスケーリングする能力が必要ですか?幅の広い行のパターンを確認することをお勧めします(PlayOrmはそれを多用します)。幅の広い行は、非常に高速なルックアップのためにインデックスを作成するのに役立ちます。

私は本当にあなたのもののこの部分を取得しません

TestsData : { // Column Family - we sample each test every couple of minutes...
    [TestID][AlienID][Bodypart][MinutesFromTestStart]: { //Composite Columns as Rowkeys
        Temperture: 30 // column
        Size: 5 // column
    }  
}

ここはもっと広い列にすべきではありませんか?testidは行キーであり、他のデータには多くの複合名がありますか?幅の広い行は1,000万列を超えてはならないため、テストデータの行がそれを超えないようにしてください。だから広い列は

testid-> alienId:fk23 = null、alienId:fk25 =nullなど。temperture=30、size = 5

後で、ディーン

于 2012-10-31T12:29:28.313 に答える