Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What it the difference between Hbase and BigTable?

Can anyone tell me what is the difference between Apache HBase database and Bigtable? Or are they same? Which one supports relations, if any? If they are Big Searcher what is the difference?

like image 821
salar Avatar asked Jul 21 '14 08:07

salar


People also ask

Is Google Bigtable is HBase?

The Google Cloud Bigtable HBase client for Java is a customized implementation of the HBase API, compatible with versions 1.0 to 1.3 of the Apache version. For more details on the nuances of the Cloud Bigtable HBase Java client library, please refer to https://cloud.google.com/bigtable/docs/hbase-differences.

What is Bigtable used for?

Bigtable is ideal for storing large amounts of single-keyed data with low latency. It supports high read and write throughput at low latency, and it's an ideal data source for MapReduce operations.

What type of database is Bigtable?

Cloud Bigtable is a fast, fully managed, massively scalable NoSQL database service.

What is the difference between Bigtable and BigQuery?

Bigtable is a NoSQL wide-column database optimized for heavy reads and writes. On the other hand, BigQuery is an enterprise data warehouse for large amounts of relational structured data.


1 Answers

They are similar, but not the same!

Bigtable was initially released in 2005, but wasn't available to general public until 2015. Apache HBase was created based on Google's publication Bigtable: A Distributed Storage System for Structured Data with initial release in 2008.

Some similarities:

  1. Both are NoSQL. That means both don't support joins, transactions, typed columns, etc.
  2. Both can handle significant amounts of data - petabyte-scale! This achieved because of support of linear horizontal scaling.
  3. Both make emphasis on high-availability - through replication, versioning.
  4. Both are schema-free: you can create table and add column families or columns later.
  5. Both have APIs for most popular languages - Java, Python, C#, C++. Complete lists of supporting languages differ a bit.
  6. Both support Apache HBase Java's API: after Apache HBase's success Google added support for HBase-like API for Bigtable but with some limitations - see API differences.

Some differences:

  1. Apache HBase is an open source project, while Bigtable is not.
  2. Apache HBase can be installed on any environment, it uses Apache Hadoop's HDFS as underlying storage. Bigtable is available only as a cloud service from Google.
  3. Apache HBase is free, while Bigtable is not.
  4. While some APIs are common, others are not - Bigtable supports gRPC (protobuf based) API, while Apache HBase have Thrift and REST APIs.
  5. Apache HBase supports server side scripting (e.q. triggers) and in general is more open to extensions due to its open source nature.
  6. Bigtable supports multi-cluster replication.
  7. Apache HBase has immediate consistency always, while Bigtable has eventual consistency in worst case scenarios.
  8. Different security models - Apache HBase uses Access Control Lists, while Bigtable relies on Google's Cloud Identity and Access Management.

See more at their websites - Bigtable and Apache HBase .

like image 114
arghtype Avatar answered Sep 20 '22 17:09

arghtype