Dan*_*nos 29 database relational bigtable
重复
我对Google的Bigtable了解不多,但我想知道Google的Bigtable和MySQL之类的关系数据库之间的区别是什么.两者有什么限制?
tyl*_*erl 32
Bigtable是Google的发明,用于处理公司经常处理的大量信息.Bigtable数据集可以扩展到巨大的数量(许多PB),存储分布在大量服务器上.使用Bigtable的系统包括Google的网络索引和Google地球等项目.
Bigtable是一个稀疏的,分布式的,持久的多维有序映射.地图由行键,列键和时间戳索引; 映射中的每个值都是未解释的字节数组.
与Bigtable相比,Bigtable的内部机制与使比较变得非常不同,预期的目标也不会重叠太多.但你可以认为Bigtable有点像单表数据库.例如,想象一下,如果您尝试使用MySQL数据库实现Google的整个Web搜索系统,您将遇到的困难--Bigtable是围绕解决这些问题而构建的.
可以使用称为GQL("gee-kwal")的语言从AppEngine等服务查询Bigtable数据集,该语言基于SQL的子集.GQL中明显缺少的是任何类型的JOIN命令.由于Bigtable数据库的分布式特性,在两个表之间执行连接将非常低效.相反,程序员必须在他的应用程序中实现这样的逻辑,或者设计他的应用程序以便不需要它.
Mig*_*ing 14
Google的BigTable和其他类似项目(例如:CouchDB,HBase)是面向数据库的系统,因此数据主要是非规范化(即重复和分组).
主要优点是: - 由于非规范化,连接操作成本较低 - 由于数据独立性,数据的复制/分发成本较低(即,如果要跨两个节点分发数据,则可能不会出现问题在一个节点中有一个实体,在另一个节点中有另一个相关实体,因为相似的数据被分组
这种系统适用于需要实现最佳扩展的应用程序(即,您向系统添加更多节点并且性能按比例增加).在像MySQL或Oracle这样的RDBMS中,当您连接两个不在同一节点中的表时,如果开始添加更多节点,则连接成本会更高.当您处理大量产品时,这一点变得非常重要.
RDBMS很好,因为存储模型(表,连接,fks)的丰富性.分布式数据库很好,因为它易于扩展.
| 归档时间: |
|
| 查看次数: |
53069 次 |
| 最近记录: |