2017-10-05 17 views
0

現在、NodeJSでCassandra(v2.2.8)を使用しています(cassandra-driver npmパッケージを使用)。Cassandra:複雑なネストされたJSONデータのテーブル構造

{ 
    "id": "12345", 
    "name": "John Doe", 
    "approvedTempHours": { 
     "tempHours": [{ 
      "start": "dd/mm/yyyy", 
      "end": "dd/mm/yyyy", 
      "openinghour": "0800" 
     }, { 
      "start": "dd/mm/yyyy", 
      "end": "dd/mm/yyyy", 
      "openinghour": "0900" 
     }], 
     "Recurrence": [{ 
      "recurrence": "12", 
      "day": "Friday" 
     }] 
    }, 
    "rejectedTempHours": { 
     "tempHours": [{ 
      "start": "dd/mm/yyyy", 
      "end": "dd/mm/yyyy", 
      "openinghour": "0830" 
     }], 
     "Recurrence": [{ 
      "recurrence": "12", 
      "day": "Friday" 
     }] 
    } 
} 

が、私は現在、上記の複雑なデータに合わせて非常に難しい設計テーブル(複数可)にそれを見つけています:

は、私は、着信要求の一部として、次のようなデータ構造を有しています。

私はテーブル構造がクエリに基づいて行われなければならないことを理解しています。 approvedTempHoursオブジェクト内でを検索し、start(開始日)に基づいてtempHoursの値を取得する必要があります - 必要に応じて、クエリ後に期待されるJSONの構造を提供できます。

これまで私は、maptuplesを使用してuser defined種類などをを試してみましたが、私は必要な構造を得ることができませんでした。

非常に専門的なアドバイスをいただきありがとうございます。

PS:MongoDBがこのような複雑なデータモデルを処理するのに適している場合は修正されています。私がcassandraに固執している唯一の理由は、複数のマスターによる100%の可用性(ダウンタイムなし)によるものです。一方、MongoDBは生産性の面では回復力がなく、マスタが1つしかなく、スレーブノードをマスタに切り替えるのに時間がかかります(可能性は低いですが起こります)。

答えて

-1

可用性が100%でマスターが複数あるドキュメントデータベースが必要な場合は、couchbaseに移動します。

関連する問題