【发布时间】:2012-02-14 05:05:13
【问题描述】:
来自 RDBMS 背景,我需要很少的帮助/建议来为以下用例设计 Hbase 架构。
它是一个使用 hadoop 生成报告的应用程序。现在,我们需要根据特定用户的电子邮件 ID 跟踪所有以前的报告生成历史。因此,需要持久化的数据是电子邮件 ID、报告名称、开始日期、结束日期、状态。我打算将电子邮件 ID 保留为行键,将其他实体保留为列, emailId(row key) - (columns) appName:reportName, appName:startDate, appName:endDate, appName:status
但问题是,同一用户可以针对不同的日期范围运行相同的报告。因此它将覆盖 appName:reportName 和 appName:status 列。由于我是 NoSQL 世界的新手,我不确定如何解决这个问题。 有人可以建议我为这个要求设计架构的理想方法吗?
任何帮助将不胜感激。
谢谢
【问题讨论】:
-
对于 HBase,您计划用于查询数据的模式通常比存储的特定数据更重要。您是否打算按用户 ID 查询?通过报告 ID?两个都?此外,您似乎需要存储用户运行报告时的时间戳,对吧?
-
我打算按用户ID查询。会正确吗?或者哪一个是最好的方法?我愿意接受任何建议。是的,我还需要存储时间戳。谢谢。