テストシステム用のデータベースを実装する必要があります。これは、将来の統計分析のためにテストデータを保存するように設計されています。カサンドラベースである必要があります。
スキーマを設計しましたが、これがNoSQL設計の最初の試みであるため、フィードバックをお寄せください。
最初に保存したいデータについて説明し、次に2つの基本的なクエリについて説明し、最後に提案された設計を示します。
Cassandra 1.1を使用するつもりなので、デザインでコンポジットカラムを使用しようとしましたが、スーパーカラムまたは適切と思われるものを自由に提案してください。
データ:
私たちがテストしている基本ユニットはエイリアンです。各エイリアンには一意のIDがあります。各エイリアンにはいくつかの体の部分があります。また、各エイリアンはエイリアンの家族の一部です。家族にはユニークな名前があります。
テストを実行するときは、エイリアングループのいくつかのボディパーツでテストを実行します。たとえば、私たちはいくつかの家族を連れて、彼らのすべての目と口でテストを実行します。
いくつかの種類のテストがあります。各テストは、独自のテスト一意IDでログに記録されます。
テストを実行するとき、関連するすべてのエイリアンの身体部分を数分ごとにサンプリングし、いくつかの統計を収集します。
基本的なクエリ:
- 各家族またはエイリアンまたはユニークなボディパーツごとに-それが参加したテスト。
- 各テストIDごとに-どの家族またはエイリアンまたはユニークな身体部分がそれに参加しました。
- 将来的には、すべてのデータの統計分析...
私のデザインの試み:
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の真の初心者なので、どんな入力でもいただければ幸いです。
お時間をいただきありがとうございます。