Duplicates
- Why should I use document based database instead of relational database?
- Pros/Cons of document based database vs relational database
I don't know much about Google's Bigtable but am wondering what the difference between Google's Bigtable and relational databases like MySQL is. What are the limitations of both?
Bigtable is not a relational database. It does not support SQL queries, joins, or multi-row transactions. If you need full SQL support for an online transaction processing (OLTP) system, consider Cloud Spanner or Cloud SQL.
Cloud Datastore. BigTable is optimized for high volumes of data and analytics while Datastore is optimized to serve high-value transactional data to applications.
There are three relational database options in Google Cloud: Cloud SQL, Cloud Spanner, and Bare Metal Solution. Cloud SQL: Provides managed MySQL, PostgreSQL and SQL Server databases on Google Cloud.
Bigtable development began in 2004 and is now used by a number of Google applications, such as Google Analytics, web indexing, MapReduce, which is often used for generating and modifying data stored in Bigtable, Google Maps, Google Books search, "My Search History", Google Earth, Blogger.com, Google Code hosting, ...
Bigtable is Google's invention to deal with the massive amounts of information that the company regularly deals in. A Bigtable dataset can grow to immense size (many petabytes) with storage distributed across a large number of servers. The systems using Bigtable include projects like Google's web index and Google Earth.
According to Google whitepaper on the subject:
A Bigtable is a sparse, distributed, persistent multidimensional sorted map. The map is indexed by a row key, column key, and a timestamp; each value in the map is an uninterpreted array of bytes.
The internal mechanics of Bigtable versus, say, MySQL are so dissimilar as to make comparison difficult, and the intended goals don't overlap much either. But you can think of Bigtable a bit like a single-table database. Imagine, for example, the difficulties you would run into if you tried to implement Google's entire web search system with a MySQL database -- Bigtable was built around solving those problems.
Bigtable datasets can be queried from services like AppEngine using a language called GQL ("gee-kwal") which is a based on a subset of SQL. Conspicuously missing from GQL is any sort of JOIN
command. Because of the distributed nature of a Bigtable database, performing a join between two tables would be terribly inefficient. Instead, the programmer has to implement such logic in his application, or design his application so as to not need it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With