加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

nosql – HBase:关于模式设计

发布时间:2020-12-13 13:28:19 所属栏目:百科 来源:网络整理
导读:我正在阅读/研究HBase并试图创建一个Schema.我来自RDBMS背景,这是第一次尝试使用nosql db.我有一个关于模式设计的简单问题: 假设有三个表=专辑,照片,评论 album =由用户创建 photo =包含上传到相册的所有照片 comments =包含相册或照片上的评论者 应该提取
我正在阅读/研究HBase并试图创建一个Schema.我来自RDBMS背景,这是第一次尝试使用nosql db.我有一个关于模式设计的简单问题:

假设有三个表=>专辑,照片,评论

> album< =由用户创建
> photo< =包含上传到相册的所有照片
> comments< =包含相册或照片上的评论者 应该提取一张带有所有评论的照片.
应该提取一张专辑,其中包含所有照片但不是评论.

用户通过电子邮件识别.我提出的架构:

tbl_user

email || info: {password : ...,name : ...}

专辑

<email>:album:<timestamp> || info {title:...,cover: photo-row-key}

照片

<album-row-key>:<timestamp> || info {caption:...,exif: ...}

评论

<album-row-key or photo-row-key> || comments {
    comment:<timestamp>: {user: <email>,text:...}
    comment:<timestamp>: {user: <email>,text:...}
    ...
}

>这个设计看起来不错吗?我只想知道应该/必须完成的修改以及原因.
>照片行键是否应该在专辑行键之前(可能是为了节省空间)?
>关于评论表,是否应创建评论行键,如< album-row-key或photo-row-key&gt ;: comment:< timestamp>?按照上述模式,每当用户创建注释时,我需要阅读注释列,使用新注释更新它并使用tha更新行.听起来不错吗?

如果您可以共享一些链接,这些链接具有适合RDBMS的模式示例,那将非常有用:)

解决方法

另一种方法是将评论和照片以及相册放在同一个表格中
还放了照片&一列专栏中的照片评论和另一专栏系列中的专辑评论

>专辑行有关键邮件:专辑:0:0:时间戳照片行有关键
>电子邮件:相册:照片:0:时间戳照片评论行键
> email:album:photo:comment:timestamp album comment row key
>电子邮件:相册:评论:时间戳

然后,您可以根据需要在单个访问中获取数据.例如.:

>前缀一次扫描可以获得包含所有照片和所有照片的相册他们的评论>通过前缀和最后一个键进行一次扫描将为您提供专辑见证了它的照片而不是评论>通过电子邮件进行一次扫描:第二列家族的专辑将为您提供所有相册评论>通过电子邮件进行一次扫描:相册:照片前缀会为您提供照片及其所有评论>通过电子邮件进行一次扫描:包含所有列系列的相册将为您提供所有数据>使用endkey by album.max通过电子邮件扫描:将为您提供用户的所有相册>等

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读