2013-10-28 4 views
0

HBASE 버전 : 0.94.10HBASE 중첩 데이터 모델

기본 케어 시스템 용 NOSQL 설계 데이터 모델에 새로 추가되었습니다. 예를 들어 샘플 DB 관계 모델을 정규화했습니다. HBase를-0.94.0

Patient table: 

============ 

1) Patient_id - PK 

2) Added_BY 

3) Gender 

4) Usual_GP 

,

Patient Name table: [One to many relationship with patient [One] Name[Many]] 

1) Name_id 

2) Patient_id - FK 

3) Name_type 

4) First name 

5) Last Name 

6) Middle name 

,

Patient address table: [One to many relationship with patient [One] address[Many]] 

1) Address_id 

2) Patient_id - FK 

3) Address_type 

4) Line1 

5) Line2 

6) Line 3 

7) Line 4 

8) Line 5 

,

Patient Phone table: [One to many relationship with patient [One] Phone[Many]] 

1) Phone_id 

2) Patient_id - FK 

3) PhoneType 

4) Phoneno 

5) ext 

,

위의 정규화 된 데이터 모델에 대해 아래 예제 NoSQL 데이터 모델을 만들었습니다. 희망 데이터 모델은 문서 기반 NOSQL에서 작동합니다. 아래의 데이터 모델을 HBASE 컬럼 기반의 데이터 모델로 변환해야합니다. pls가 도와줍니다.

Patient :{Patient_id:22, 

       Added_by:Doctor1, 

       Gender:Male, 

       UsualGP: Doctor2, 

       PatName:[ 

       {NameType:Usual, FirstName:Hari, LastName:prasad,Middlename:' '}, 

       {NameType:Other, FirstName:John,LastName:prasad,Middlename:kenndy} 

       ] 

       PatAddr:[ 

       {AddType:Usual, Line1:2, Line2:Harrington road, Line3: near central, Line4:Newyork,Line5:NY008}, 

       {AddType:Tmp, Line1:2, Line2:Mylapore road, Line3: near Zoo, Line4:WashingtonDC,Line5:WA00098} 

       ] 

       PatPhone:[ 

       {PhoneType:Usual, Phoneno:4453443344, ext:099}, 

       {PhoneType:Tmp, Phoneno:9198332342343, ext:} 

       ] 

       PatMedication:[ 

       {MedStardate:'01/01/2013', MedEndDate:'', Code:'Snomode', MedDesc:'Paracetmol', DosDet:'Take 2 daily', Noauth: 5, Issue: 3}, 

       {MedStardate:'01/05/2013', MedEndDate:'01/05/2013', Code:'readcode', MedDesc:'Avil', DosDet:'Take 1 daily', Noauth: 3, Issue: 1}, 

       {MedStardate:'01/10/2013', MedEndDate:'24/10/13', Code:'readcode', MedDesc:'Metacin', DosDet:'Take 2 daily', Noauth: 5, Issue: 3}, 

       ] 

      } 
+0

에 오신 것을 환영합니다. 먼저이 내용을 읽어주십시오. http://stackoverflow.com/questions/how-to-ask 또한 시도해보십시오. – Tafari

+0

왜 HBase인가?! 그것은 비 관계형 데이터베이스 사용을 위해 만들어졌습니다! .. – Kris

답변

1

HBase는 비 관계형 데이터 용입니다. 그러나이 목적으로 계속 사용할 수 있습니다. 먼저, 열 패밀리를 정의해야합니다. 컬럼 이름은 컬럼 형식이므로 필요하지 않습니다.

같은 열 패밀리에있는 열을 사용하면 성능이 향상됩니다. 따라서 한 열 패밀리가 좋을 것입니다. 그 외에도 열 및 열 패밀리 이름이 짧으면 성능 문제가 또 하나 있습니다. 가능한 경우 이러한 열과 열 변수의 이름을 하나 또는 두 개의 문자로 지정하십시오.

그러나 외래 키는있는 그대로 사용할 수 없습니다. 즉, 다른 테이블의 ID를 열에 저장할 수 있지만 존재 여부를 직접 확인할 수는 없습니다. 대신이 테이블로 가서 수동으로 확인해야합니다.

이 설명이 도움이되기를 바랍니다. 자세한 내용은 this을 확인하십시오.