【发布时间】:2017-10-11 18:01:08
【问题描述】:
我想了解什么是用于报告目的的最佳大数据解决方案?
目前我将其缩小到 HBase 与 Hive。
用例是我们拥有数百 TB 的数据和数百个不同的文件。数据是实时的,并且一直在更新。我们需要提供最有效的报告方式。我们有几十个不同的报告页面,其中每个报告都包含不同类型的数字和图形数据。例如:
- 显示过去一小时内登录系统的所有用户和 他们的起源是美国。
- 显示一个图表,其中包含最常玩的游戏 最少玩的游戏。
- 来自系统中所有用户的显示百分比 付费用户与非付费用户的比较。
- 对于给定的用户,显示他的全部历史记录。他打了多少场比赛?他玩过什么样的游戏。他在每场比赛中的得分是多少?
在我看来,有3个解决方案:
将所有数据存储在 Hadoop 中并在 Hive 中执行查询。这可能有效,但我不确定性能。当数据为 100 TB 时它会如何表现?另外,以 Hadoop 作为主数据库可能不是最好的解决方案,因为更新操作很难实现,对吧?
将所有数据存储在 HBase 中并使用 Phoenix 进行查询。这个解决方案很好,但 HBase 是一个键/值存储。如果我加入一个没有索引的键,那么 HBase 将进行一次完整扫描,这可能会比 Hive 更糟糕。我可以在列上放置索引,但这需要在几乎每一列上放置一个索引,我认为这不是最好的建议。
将所有数据存储在 HBase 中,并在 Hive 中使用专有桥与 HBase 进行通信进行查询。
【问题讨论】:
-
你应该看看 Phoenix 二级索引。
-
这可能更适合网站管理员
标签: hive hbase bigdata reporting phoenix