Google思想三(BigTable)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a909301740/article/details/84075965

BigTable 最基本的思想是把所有的数据都存入一张表。

  • 大表的思想有什么问题?

    引起数据的冗余。

  • 大表的思想有什么优点?

    通过牺牲空间,换取了时间,提高了性能。

HBase 就是 BigTable 这种思想的一种实现。

对比 MySql 和 HBase 数据库


MySql

如果要存储学生信息和学生成绩信息,则至少要创建两张表:student 表,grade 表(实际上是会有三张表的,第三张表用来存储学生和成绩的对应关系,因为它们之间是多对多的关系,这里省略)。
mysql

HBase

HBase 如果要存储学生和他对应的成绩信息,只需要一张 student 表。

HBase

  1. rowkey 表示行键,类似 MySql 中的主键,行键不能为空,不同于 MySql 的是,行键可以重复,相同的行键表示同一条记录

  2. 第一条语句表示创建了一个 student 表,创建了两个列族 info,grade。(HBase 在创建表的时候不直接指明列,而是创建列族 column family,在列族中包含列

    ps:在创建 HBase 的表的时候,只需要指明列族即可,不要指明具体的列,在插入数据的时候列会动态创建。

  3. 第三条语句表示向 student 表中添加了一条记录,该记录的行键为 s001,会在 info 列族上动态生成一个 name 列,该列的值为 Tom。

    其余的几条 put 语句同理,如果已经存在了该列则不会再创建列,直接插入值。

  4. 查询这张 student 表中的所有记录的语句为:scan 'student',会返回两条记录。

MySql 和 HBase 数据库的区别

  1. MySql 是面向的数据库,新增,修改,删除操作效率高。

  2. HBase 是面向的数据库,查询的效率高。

  3. MySql 满足数据库的三大范式,数据冗余度低。

  4. HBase 不遵循数据库的三大范式,数据冗余度高。

总结:BigTable 的思想,利于海量数据的检索,在大数据时代可以显著提高数据的查询效率,但是对数据的新增,修改,删除是不利的。

猜你喜欢

转载自blog.csdn.net/a909301740/article/details/84075965