2016-12-04 20 views
1

我想构建用于预测性维护的实时应用程序。 我曾想过使用Hbase与Phoenix。 Phoenix在HBase上提供SQL层。用于实时应用的Hbase

我读过Hbase适合大数据,比如1亿行加++。 但我的应用程序数据目前没有数据。如果开始时只有少量数据,Hbase数据库如何反应? HBase是实时网络应用的一个很好的解决方案吗?

我想要一个像系统一样的lambda体系结构。批处理和流处理。 HDFS上面的HBase会成为我的OLTP和OLAP系统吗?

由于lambda架构有一个批量和速度层。我是否也可以在HDFS中使用HBase中的HBase数据进行批处理,并将结果保存回Hbase中?

一般来说,我想知道HBase是否是一个很好的解决方案,可以构建一个实时的Web应用程序,使其具备执行分析的可能性。

卷:

回答

1

HBase的是基于一般包括以下选择百万千万优于千千万万

特点:当你不需要交易,二级指标和一些RDBMS功能

硬件:确保您有足够的区域服务器硬件。它涉及到维护

更具体的量好:

它由于它的快速随机读取查询最适合于Web应用程序。但是这只有非常好的行键设计。这涉及到您提前计划好最终查询并设计您的行密钥。如果您还有基于时间的数据并且您的查询严重依赖于此,则需要特别注意行键设计。总之,你应该避免热点。一些信息here

除此之外,使用HBase过滤器可以选择其他列值,但选择很少,可能无法保证Web应用程序的响应时间。

另外,如果设置您的数据(行)具有可变的列数,你也不必在查询中的所有列,HBase的又是最好的选择

服务器(地区)的故障转移有可能在HBase的 - 所以你的数据将是安全的。

它可以用于批处理和流媒体。当然,为了在大数据堆栈中实现尽可能好的流式传输。然而,这也取决于你的流媒体管道 - 像卡夫卡,火花流或风暴等。

既然你提到凤凰,我假设你可能想坚持到HBase的SQL视图 - 这可能会给你更好的选择。然而在核心上,行键设计仍然是HBase性能的核心