0
我目前使用Cassandra(v2.2.8)和NodeJS(使用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的結構。
到目前爲止使用map
,tuples
,user defined
類型等,但沒能得到我所需要的結構,我已經試過。
任何專家的建議,非常感謝!
PS:如果MongoDB是處理這種複雜數據模型的合適人選,我也在修復中。我堅持使用cassandra的唯一原因是由於其多個主人的100%可用性(無停機時間)。另一方面,在生產env中,MongoDB不具有彈性,它只有一個主節點,並且需要花費時間將從節點切換到主節點(如果主節點停止運行)(極不可能發生)。