HBASE嵌套数据模型
HBASE版本:0.94.10 NOSQL为初级保健系统设计数据模型的新功能。我有标准化的样本数据库关系模型,例如HBASE-0.94.0HBASE嵌套数据模型,hbase,Hbase,HBASE版本:0.94.10 NOSQL为初级保健系统设计数据模型的新功能。我有标准化的样本数据库关系模型,例如HBASE-0.94.0 Patient table: ============ 1) Patient_id - PK 2) Added_BY 3) Gender 4) Usual_GP , , , , 对于上面的标准化数据模型,我在下面创建了示例NoSQL数据模型,我希望数据模型适用于基于文档的NoSQL。需要将下面的数据模型转换为基于HBASE列的数据模型
Patient table:
============
1) Patient_id - PK
2) Added_BY
3) Gender
4) Usual_GP
,
,
,
,
对于上面的标准化数据模型,我在下面创建了示例NoSQL数据模型,我希望数据模型适用于基于文档的NoSQL。需要将下面的数据模型转换为基于HBASE列的数据模型,请帮助我
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},
]
}
正如评论中所说,HBase用于非关系数据。但是,您仍然可以将其用于此目的。首先,应该定义柱族。不需要列名称,因为它是列形式的 将这些列放在同一列族中可以提高性能。因此,一个柱族就好了。除此之外,缩短列和列族名称也是另一个性能问题。如果可以,请使用一个或两个字母命名这些列和列变量 但是,不能按原样使用外键。我的意思是,可以将另一个表的id存储在列中,但不能直接检查它是否存在。相反,您应该转到此表并手动检查它
我希望这个解释能对你有所帮助。查看更多详细信息。欢迎来到SO,请先阅读:也向我们展示您的尝试。为什么是HBase?!它是为非关系数据库使用而制作的!。。
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
Medication and other details
1)Entry_id
2)Patient_id - FK [One to many relationship with patient [One] Medication[Many]]
3)Start_date
4)End_date
5)Code
6)Medicine description
7)Dosage details
8) Number of authorised
9) Number issued
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},
]
}