AWS DynamoDB VS HBase

AWS DynamoDB VS HBase,hbase,amazon-dynamodb,Hbase,Amazon Dynamodb,在过去的六个月里,我一直在使用HBase,我是通过Amazon了解DynamoDB的。维护方面的dynamo db看起来更容易处理,因为它由亚马逊负责。但是否从hbase切换到dynamo db对我来说是个问题 除了维护集群之外,我找不到令人满意的理由从hbase切换到dynamo db 有人能分享一下关于这件事的想法吗 您必须从本质上寻找您的需求,DynamoDB以最小的维护工作量和诱人的财务成本提供了巨大的可扩展性和性能。但是,apachehbase在存储内容(大小和数据类型)方面要灵活得多

在过去的六个月里,我一直在使用HBase,我是通过Amazon了解DynamoDB的。维护方面的dynamo db看起来更容易处理,因为它由亚马逊负责。但是否从hbase切换到dynamo db对我来说是个问题

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


有人能分享一下关于这件事的想法吗

您必须从本质上寻找您的需求,DynamoDB以最小的维护工作量和诱人的财务成本提供了巨大的可扩展性和性能。但是,apachehbase在存储内容(大小和数据类型)方面要灵活得多

另一个非常重要的评估点是哪种数据模型(列范围或键值)更适合您的用例

ApacheHBase允许您选择非常灵活的行键数据类型,而DynamoDB只允许主键属性使用标量类型。另一方面,DynamoDB提供了非常简单的二级索引的创建和维护,这是您必须在apachehbase中手动完成的

更多信息请参见以下链接:

以下是关键点的总结:

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

ApacheHBase使用列族的概念来提供数据 本地性用于更有效的读取操作

AmazonDynamodB同时支持标量集和多值集 适应范围广泛的非结构化数据集。类似地,Apache HBase将其键/值对存储为任意字节数组,给出 它提供了存储任何数据类型的灵活性

AmazonDynamodb支持内置的二级索引和自动 更新并同步所有索引及其父表。具有 在Apache HBase中,您可以实现和管理自定义辅助索引 你自己

从数据模型的角度来看,如果您的 项目规模相对较小。虽然Amazon DynamoDB提供了 克服行大小限制的选项数量,Apache HBase是 更好地装备,以最少的成本处理大型复杂有效载荷 限制

吞吐量模型

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

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

一致性模型

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

最终一致性选项是Amazon DynamoDB和 最大化读取吞吐量。然而,最终一致的读取 可能并不总是反映最近完成的写入的结果。 数据的所有副本之间的一致性通常在一秒钟内实现

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

交易模型

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

表格操作

这两个数据库之间的一个关键区别是灵活性 Amazon DynamoDB的供应吞吐量模型。拨号能力 需要时增加容量,完成后再拨回 用于处理峰值不可预测的可变工作负载

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

资料来源:

我认为这完全取决于您的用例。你能分享更多关于你的应用程序的信息吗?这要看情况而定。请阅读这篇提供详细比较的精彩白皮书-嘿@bsd,我可以问一个关于参考文件的问题吗?在第17页,表11:ApacheHBase表中的平面宽游戏分数。为什么一行键可以有两行?