dha*_*han 14 hbase amazon-dynamodb
我在过去的六个月里一直在使用HBase,我开始了解亚马逊的DynamoDB.维护明智的发电机数据库看起来更容易处理,因为它由亚马逊照顾.但是,是否从hbase切换到dynamo db对我来说是一个问题.
除了维护集群之外,我找不到令人满意的理由从hbase切换到dynamo db.
有人可以分享一下这个想法.
bsd*_*bsd 19
您必须基本上满足您的要求,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支持多版本并发控制机制,这有助于其强大的一致性读写.Amazon DynamoDB使您可以灵活地指定是否希望读取请求最终一致或强烈一致,具体取决于您的特定工作负载.在一秒钟内到达.
资料来源:http: //d0.awsstatic.com/whitepapers/AWS_Comparing_the_Use_of_DynamoDB_and_HBase_for_NoSQL.pdf
归档时间: |
|
查看次数: |
8390 次 |
最近记录: |