BigTable是Google设计的分布式数据存储系统

BigTable是Google设计的分布式数据存储系统,用来处理海量的数据的一种非关系型数据库。
BigTable是非关系的数据库,是一个稀疏的、分布式的、持久化存储的多维度排序Map。Bigtable的设计目的是可靠地处理PE级别的数据,并且能够部署在上千台机器上。Bigtable已经实现了下面几个目标:适应性广泛、可扩展、高性能和高可用性。
在很多方面,Bigtable和数据库很类似:它使用了很多数据库的实现策略。并行数据库和内存数据库已经具备可扩展性和高性能,但是Bigtable提供了一个和这些系统完全不同的借口。Bigtable不支持完整的关系数据模型;与之相反,Bigtable为客户提供了简单的数据模型,利用这个模型,客户可以动态控制数据的分布和格式(对Bigtable而言,数据是没有格式的,用数据库领域的术语说,就是数据没有schema,用户自己去定义schema),用户也可以自己推测底层存储数据的位置相关性。数据的下表是行和列的名称,名称可以是任意的字符串。Bigtable将存储的数据都是为字符串,但是Bigtable本身不去解析这些字符串,客户程序通常会把各种结构化或者半结构化的数据串行化到这些字符串里。通过仔细选择数据的模式,客户可以控制数据的位置相关性。最后,可以通过Bigtable的模式参数来控制数据是存放在内存中还是硬盘上。
特点:
1、适合大规模海量数据,PB级数据
2、分布式、并发数据处理,效率极高
3、易于扩展,支持动态伸缩
4、适用于廉价设备
5、适用于读操作,不适合写操作
6、不适用于传统关系数据库

Bigtable不是关系型数据库,但是却沿用了很多关系型数据库的术语,像table、row、column等。这容易让读者误入歧途,将其与关系型数据库的概念对应起来,从而难以理解。
本质上说,Bigtable是一个键值(key-value)映射。它是一个稀疏的、分布式的、持久化的、多维的排序映射。
Bigtable的键有三维,分别为行键(row key),列键(column key)和时间戳(timestamp)。行键和列键都是字符串,时间戳是64位整形;而值是一个字符串。可以用(row:string,column:string,time:int64)->string来表示一条键值记录
table{
  // ...
  "aaaaa" : { //一行
    "A:foo" : { //一列
        15 : "y", //一个版本
        4 : "m"
      },
    "A:bar" : { //一列
        15 : "d",
      },
    "B:" : { //一列
        6 : "w"
        3 : "o"
        1 : "w"
      }
  },
  // ...
}

本质上说Bigtable是一个键值映射。































































































































  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值