현재 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의 구조를 제공 할 수 있습니다.
map
, tuples
, user defined
유형 등이 아닌를 사용하여을 시도했다. 어떤 전문가의 조언도 대단히 감사합니다!
추신 : MongoDB가 이러한 복잡한 데이터 모델을 처리하기에 적합한 지 여부도 수정되었습니다. 내가 카산드라에게 고집하는 유일한 이유는 여러 주인과 100 % 가용성 (가동 중단 없음) 때문입니다. 반면에 생산 환경에서 MongoDB는 복원력이 없으며 마스터가 하나뿐이므로 마스터가 다운 된 경우 슬레이브 노드를 '마스터'로 전환하는 데 시간이 걸립니다 (매우 드물지만 발생합니다).