1. 说出至少 3 项 Google BigTable 的核心特性
- 开发者可以动态的控制列族中的各列
- 数据值是按照行标识符,列名及时间戳来定位的
- 数据建模者和开发者可以控制数据的存储位置
- 读取操作和写入操作都是原子操作
- 数据行是以某种顺序进行维护的
2. 列与列族的定义
列是列族数据库的基本存储单元。列有名称和值。如
LastName ---> Wilson
某些列族数据库除了名称和值外,还会给列赋予时间戳 time stamp
若干个列可以构成一个行,各行之间可以具备相同的列,也可以具备不同的列。
如果列的数量比较多,最好把相关的列分成组,这些由列构成的组就叫做列族(column family)
3. Google Big Table 为什么要使用时间戳?
时间戳可用来管理列值的各个版本,用户把新值插入 BigTable 数据库后,旧值并不会遭到覆盖。
数据库会给新值打上时间戳,而应用程序则通过时间戳判定列值的最新版本。
4. 列族数据库与键值对数据库之间的异同
1) 相同点
都是键值存储的
2) 区别
列中的值是根据标识符,列名以及时间戳来索引的,
键值对数据库则是根据键来进行索引
5. 列族数据库与关系数据库的对比
列族数据库与关系型数据库都采用某种独特标识符来确定数据行的身份
- 在列族数据库中叫做 row key 行关键字
- 在关系数据库中叫做 primary key 主键
列族是一种由小 map 所构成的大 map。
列族数据库并不支持类型固定的列,它只会把列值视为一串字节,而具体含义则有待应用程序来解读。
6. HBase 所使用的架构方式
HBase 使用由多种 Hadoop 节点所组成的架构,其中包括 namenode, datanode
以及一台维护配置信息的中心服务器 centralized server.
选自《NoSQL 实践指南》