分享

从RDBMS设计转向HBase设计求指导

DanielFf 发表于 2015-6-1 14:53:10 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 8 15625
楼主刚开始学Hadoop、HBase,目前在学习HBase的数据库结构设计,对比传统的RDBMS设计有很多疑问,发帖求助,先感谢大家的指导。
问题1,人、物、场景的设计与关联,如:
user
id
name
desc
property
id
user.id
desc
scene
id
desc
分别存储人(user)、物(property)、场景(scene)的简略信息,在RDBMS中的设计方法就是单独建表、再建关联表。
在HBase里,人-物关联特别是人与物有拥有权关联时是好办的,最简单的横向增加column就可以。但人-场景关联应该怎么做?
考虑到双向查询、N-N关联,简单横向扩展不太合理。或者也象在RDBMS一样,人、场景各自独立建表,通过row key设计实现关联吗?可是当出现新的类似场景的概念,比如称之为“新应用”时,人-“新应用”之间也要类似人-场景一样增加设计吗?那样对user表的row key会产生实质性的改变,怎么办?
问题的实质其实是HBase要求我们在对于数据库、表格的设计上做哪些思维转变
问题2,HBase的column family是个很强大的概念,但很多资料包括apache的文档也说多个CF的表在flush时有性能缺陷,因此不建议这么设计。但是还是能看到文章在介绍CF的优点,这个东西现在究竟能不能使用?

暂时先这些。第一次发帖问问题,不知道能被多少人看到,恳请先行者不吝指教,再次感谢!

已有(8)人评论

跳转到指定楼层
nextuser 发表于 2015-6-1 16:04:14
hbase 可以join的,但是这个是不好的。而且性能严重受影响。
建议hbase放到列蔟中即可。
剩下的集合solr,实现多条件查询
回复

使用道具 举报

DanielFf 发表于 2015-6-1 16:21:03
nextuser 发表于 2015-6-1 16:04
hbase 可以join的,但是这个是不好的。而且性能严重受影响。
建议hbase放到列蔟中即可。
剩下的集合solr ...

感谢你第一个回复。“放到列族中”的方法也是我最开始的设想,但是就产生我主贴说的第二个问题:当前列族适合设计多个吗?HBase多列族时,一个列族的flush动作连带其他列族一起flush从而影响性能的问题改进了吗?

回复

使用道具 举报

nextuser 发表于 2015-6-1 16:25:33
DanielFf 发表于 2015-6-1 16:21
感谢你第一个回复。“放到列族中”的方法也是我最开始的设想,但是就产生我主贴说的第二个问题:当前列族 ...

把多个字段都放到一个列蔟中
回复

使用道具 举报

nextuser 发表于 2015-6-1 16:27:15
DanielFf 发表于 2015-6-1 16:21
感谢你第一个回复。“放到列族中”的方法也是我最开始的设想,但是就产生我主贴说的第二个问题:当前列族 ...

无论多少个字段,列蔟不宜过多(3、4个即可),否则性能会受影响
回复

使用道具 举报

DanielFf 发表于 2015-6-1 16:52:17
nextuser 发表于 2015-6-1 16:27
无论多少个字段,列蔟不宜过多(3、4个即可),否则性能会受影响

感谢你的回复,现在我确实准备把多个字段放到一个列族里了。
回复

使用道具 举报

DanielFf 发表于 2015-6-1 16:53:06
对于第一个问题,有朋友给点明确的指导意见吗?
回复

使用道具 举报

bob007 发表于 2015-6-3 11:02:31
DanielFf 发表于 2015-6-1 16:53
对于第一个问题,有朋友给点明确的指导意见吗?

看看hbaseer二级索引
回复

使用道具 举报

DanielFf 发表于 2015-6-4 17:18:02
bob007 发表于 2015-6-3 11:02
看看hbaseer二级索引

多谢!我了解一下。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条