我在大数据领域非常新。
我们得到了团队的建议我们应该使用hbase而不是RDBMS来获得高性能。在将RDMS切换到hbase之前,我们不知道应该/必须考虑什么。有什么想法吗?
答案 0 :(得分:4)
One of my favourite book describes..
来到@ Whitefret的最后一点:根据可以做出的决定,有一些名为CAP theorm的东西。
一致性(所有节点同时看到相同的数据)
可用性(每个请求都会收到有关成功或失败的响应)
分区容差(尽管由于网络故障导致任意分区,系统仍继续运行)
但是,要将RDBMS切换到HBASE,您可以使用SQOOP。
答案 1 :(得分:2)
这是一个棘手的问题,需要考虑很多事情。
如果您可以回答这些问题,并且您认为NoSQL是演习,请向您的团队询问他们对此的看法。 NoSQL数据库带来了您在SQL世界中永远不会遇到的问题。他们应该首先构建一个原型,以了解所有这些是如何工作的,并且可以为他们提供一些培训。
总结:
- 查找是否需要非关系数据库
- 选择合适的(Hbase真的是你需要的吗?,为什么不考虑Cassandra或MongoDB?)
答案 2 :(得分:1)
在HBase中,您确实应该检查是否可以使用HBase数据模型填充您可能想要执行的所有查询。一个重要的考虑因素是架构设计(最重要的是rowkey的模型化)。 我建议你阅读这篇非常好的论文:
我认为可以在HBase官方网站上找到一个非常好的答案。
" HBase并不适合所有问题。
首先,确保您有足够的数据。 如果您有数亿或数十亿行,那么HBase是一个不错的选择。如果你只有几千/百万行,那么使用传统的RDBMS可能是一个更好的选择,因为你的所有数据都可能在一个节点(或两个)上结束,其余的集群可能闲置着。
其次,确保您可以在没有RDBMS提供的所有额外功能的情况下生活(例如,键入的列,二级索引,事务,高级查询语言等)。针对RDBMS构建的应用程序不能被移植"例如,通过简单地更改JDBC驱动程序来访问HBase。考虑从RDBMS转移到HBase作为完全重新设计而不是端口。
第三,确保你有足够的硬件。甚至HDFS也不适用于少于5个DataNode的东西(由于HDFS块复制等默认值为3),加上NameNode。
HBase可以在笔记本电脑上独立运行 - 但这应该仅被视为开发配置。 "