AWS DynamoDB VS HBase

时间:2012-06-06 05:18:51

标签: hbase amazon-dynamodb

过去六个月我一直在使用HBase,我开始了解亚马逊的DynamoDB。维护明智的发电机数据库看起来更容易处理,因为它由亚马逊照顾。但是,是否从hbase切换到dynamo db对我来说是一个问题。

除了维护群集之外,我找不到令人满意的理由从hbase切换到dynamo db。

有人可以分享一下这个想法。

1 个答案:

答案 0 :(得分:16)

您必须从根本上寻找您的要求,DynamoDB提供了极佳的可扩展性和性能,而且维护工作量极少且具有极具吸引力的财务成本。但是,Apache HBase在您可以存储的内容(大小和数据类型方面)方面要灵活得多。

另一个非常重要的评估点是哪种数据模型,Column Wide或Key-Value更适合您的用例。

Apache HBase为您提供了非常灵活的行键数据类型的选项,而DynamoDB仅允许主键属性的标量类型。另一方面,DynamoDB提供了非常简单的二级索引的创建和维护,您必须在Apache HBase中手动完成。

以下链接中的更多信息: http://d0.awsstatic.com/whitepapers/AWS_Comparing_the_Use_of_DynamoDB_and_HBase_for_NoSQL.pdf

以下是要点摘要:

  

总之,Amazon DynamoDB和Apache HBase都定义了数据模型   允许有效存储数据以优化查询性能。   Amazon DynamoDB对其项目大小施加限制以允许   高效的加工和降低成本。

     

Apache HBase使用列族的概念来提供数据   更高效的读取操作的位置。

     

Amazon DynamoDB支持标量和多值集   适应各种非结构化数据集。同样,Apache   HBase将其键/值对存储为任意字节数组   它可以灵活地存储任何数据类型。

     

Amazon DynamoDB自动支持内置二级索引   更新并同步所有索引及其父表。同   Apache HBase,您可以实现和管理自定义二级索引   自己。

     

从数据模型的角度来看,您可以选择Amazon DynamoDB   项目规模相对较小。虽然Amazon DynamoDB提供了一个   Apache HBase是克服行大小限制的选项数量   能够更好地处理大型复杂有效载荷   限制。

     

吞吐量模型

     

尽管在创建表时指定了读写要求   时间,Amazon DynamoDB允许您增加或减少配置   吞吐量以适应负载而无需停机。

     

在Apache HBase中,群集中的节点数可以由   读取和/或写入所需的吞吐量。

     

一致性模型

     

Amazon DynamoDB允许您指定所需的一致性   应用程序中每个读取请求的特征。您可以   指定读取最终是一致的还是强烈的   是一致的。

     

最终一致性选项是Amazon DynamoDB中的默认选项   最大化读取吞吐量。但是,最终一致的阅读   可能并不总是反映最近完成的写作的结果。   所有数据副本的一致性通常会在一秒钟内完成。

     

Apache HBase的读写非常一致。这意味着   对Apache HBase中单行的所有读写都是原子的。每   并发读写者可以对国家做出安全的假设   一排Apache HBase中的多版本控制和时间戳   有助于其强烈一致的模型。

     

交易模式

     

Amazon DynamoDB和Apache HBase都不支持多项/跨行   或由于性能考虑而产生的交叉交易。然而,   两个数据库都提供读写操作的批处理操作   多个表中的多个项目/行,没有事务   保证。

     

表格操作

     

两个数据库之间的一个关键区别是灵活   Amazon DynamoDB的预配置吞吐量模型。拨打电话的能力   在您需要时提高容量,并在完成后将其重新拨回   对于处理具有不可预测峰值的变量工作负载非常有用。

     

对于需要高更新率才能执行数据聚合的工作负载   或维护计数器,Apache HBase是一个不错的选择。这是因为   Apache HBase支持多版本并发控制机制,   这有助于其强大的一致性读写。亚马逊   DynamoDB使您可以灵活地指定是否需要   读取请求最终一致或强烈一致   取决于您的具体工作量。在一秒钟内达成。

来源: http://d0.awsstatic.com/whitepapers/AWS_Comparing_the_Use_of_DynamoDB_and_HBase_for_NoSQL.pdf