Google的Bigtable与关系数据库 [英] Google's Bigtable vs. A Relational Database

查看:256
本文介绍了Google的Bigtable与关系数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


重复

Duplicates

  • Why should I use document based database instead of relational database?
  • Pros/Cons of document based database vs relational database

我不太了解Google的Bigtable,但想知道Google的BigTable和像MySQL这样的关系数据库。两者有什么限制?

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是Google发明来处理公司经常处理的大量信息。Bigtable数据集可以增长巨大的大小(许多PB),存储分布在大量的服务器上。使用BigTable的系统包括Google的网络索引和Google地球等项目。

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.

根据 Google白皮书


Bigtable是一个稀疏,分布式,持久的多维排序映射。映射由行键,列键和时间戳索引;地图中的每个值都是一个未解释的字节数组。

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.

Bigtable的内部机制与MySQL的内部机制是完全不同的使得比较困难,并且预期目标也不重叠。但你可以认为Bigtable有点像单表数据库。例如,假设您尝试使用MySQL数据库实现Google的整个网络搜索系统时遇到的困难 - Bigtable是为解决这些问题而构建的。

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数据集可以使用一种基于SQL子集的称为GQL(gee-kwal)的语言从AppEngine之类的服务查询。从GQL显然缺少任何类型的 JOIN 命令。由于Bigtable数据库的分布式特性,在两个表之间执行连接将是非常低效的。相反,程序员必须在他的应用程序中实现这样的逻辑,或者设计他的应用程序,以便不需要它。

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.

这篇关于Google的Bigtable与关系数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆