复制品
我对Google的Bigtable了解不多,但我想知道Google的Bigtable和MySQL这样的关系数据库有什么不同.这两种方式的局限性是什么?
复制品
我对Google的Bigtable了解不多,但我想知道Google的Bigtable和MySQL这样的关系数据库有什么不同.这两种方式的局限性是什么?
Bigtable是谷歌为处理该公司经常处理的海量信息而发明的.Bigtable数据集可以增长到巨大的大小(许多PB),存储分布在大量服务器上.使用Bigtable的系统包括谷歌的网络索引和谷歌地球等项目.
根据关于这个主题的Google whitepaper条报道:
Bigtable是稀疏的、分布式的、持久的多维排序映射.映射由行键、列键和时间戳索引;映射中的每个值都是一个未解释的字节array.
Bigtable和MySQL的内部机制如此不同,以至于难以进行比较,预期目标也没有太多重叠.但是你可以把Bigtable想象成一个单表数据库.例如,想象一下,如果你试图用MySQL数据库实现谷歌的整个网络搜索系统,你会遇到什么困难——Bigtable就是围绕解决这些问题而建立的.
可以使用一种名为GQL("gee-kwal")的语言从AppEngine等服务查询Bigtable数据集,GQL是一种基于SQL子集的语言.GQL中明显缺少任何类型的JOIN
命令.由于Bigtable数据库的分布式特性,在两个表之间执行连接效率非常低.相反,程序员必须在他的应用程序中实现这样的逻辑,或者将他的应用程序设计成不需要它.