谁能告诉我Apache HBase数据库和Bigtable有什么区别?还是一样?哪一个支持关系(如果有)?如果他们是大搜索者,有什么区别?
它们相似,但不相同!
Bigtable最初于2005年发布,但直到2015年才对公众开放。Apache HBase是根据Google的出版物Bigtable:用于结构化数据的分布式存储系统而创建的,于2008年首次发布。
一些相似之处:
两者都是NoSQL。这意味着两者都不支持联接,事务,类型列等。
两者都可以处理大量数据-PB级!这是由于支持线性水平缩放而实现的。
两者都强调高可用性-通过复制和版本控制。
两者都不依赖架构:您可以创建表并在以后添加列族或列。
两者都有针对大多数流行语言的API-Java,Python,C#,C ++。支持语言的完整列表略有不同。
两者都支持Apache HBase Java的API:在Apache HBase成功之后,Google为Bigtable添加了对类似HBase的API的支持,但有一些限制-请参阅API的区别。
一些差异:
Apache HBase是一个开源项目,而Bigtable不是。
Apache HBase可以安装在任何环境中,它使用Apache Hadoop的HDFS作为基础存储。Bigtable仅作为Google的云服务提供。
Apache HBase是免费的,而Bigtable不是免费的。
虽然某些API通用,但其他API则不常见-Bigtable支持gRPC(基于protobuf)API,而Apache HBase具有Thrift和REST API。
Apache HBase支持服务器端脚本(eq触发器),并且由于其开源特性,通常对扩展更开放。
Bigtable支持多集群复制。
Apache HBase始终具有即时一致性,而Bigtable在最坏的情况下最终具有一致性。
不同的安全模型-Apache HBase使用访问控制列表,而Bigtable依赖于Google的云身份和访问管理。
在其网站上查看更多信息-Bigtable和Apache HBase。