题目
以下说法正确的是 _____。A.Hbase 中可以有多个索引 。B.Hbase 为每个数据表配置了一个 HLog 。C.Hbase 更新操作后,并不会删除数据旧的版本, 而是生成一个新的副本 。D.Hbase 只能使用 HDFS 作为底层存储。
以下说法正确的是 _____。
A.Hbase 中可以有多个索引 。
B.Hbase 为每个数据表配置了一个 HLog 。
C.Hbase 更新操作后,并不会删除数据旧的版本, 而是生成一个新的副本 。
D.Hbase 只能使用 HDFS 作为底层存储。
题目解答
答案
A. HBase中可以有多个索引:错误,HBase 中的索引由要素列(Row Key、Column Key 或 Value)组成,表格中每个要素列都可以作为索引列,但每个要素列只能建立一个索引。
B. HBase 为每个数据表配置了一个 HLog:错误,HBase 的数据表可以配置多个列族,每个列族都有对应的 HLog。
C. HBase 更新操作后,并不会删除数据旧的版本, 而是生成一个新的副本:正确,HBase 中有一个 TimeStamp 机制,每行数据都有一个或多个版本,每个版本都有一个不同的时间戳[5],在插入、删除和标注单元格时始终记录时间戳。查询时,可以指定相应的时间戳来获取某时刻的版本集。
D. HBase 只能使用 HDFS 作为底层存储:正确,HBase 是一个基于 HDFS 的分布式列式存储系统,HBase 数据的所有版本都存储在 HDFS 上。
故本题选C.Hbase 更新操作后,并不会删除数据旧的版本, 而是生成一个新的副本 。
解析
步骤 1:分析选项 A
HBase 中的索引由要素列(Row Key、Column Key 或 Value)组成,表格中每个要素列都可以作为索引列,但每个要素列只能建立一个索引。因此,HBase 中可以有多个索引,但每个要素列只能有一个索引。
步骤 2:分析选项 B
HBase 的数据表可以配置多个列族,每个列族都有对应的 HLog。因此,HBase 为每个数据表配置了一个 HLog 的说法是错误的。
步骤 3:分析选项 C
HBase 中有一个 TimeStamp 机制,每行数据都有一个或多个版本,每个版本都有一个不同的时间戳。在插入、删除和标注单元格时始终记录时间戳。查询时,可以指定相应的时间戳来获取某时刻的版本集。因此,HBase 更新操作后,并不会删除数据旧的版本,而是生成一个新的副本。
步骤 4:分析选项 D
HBase 是一个基于 HDFS 的分布式列式存储系统,HBase 数据的所有版本都存储在 HDFS 上。因此,HBase 只能使用 HDFS 作为底层存储。
HBase 中的索引由要素列(Row Key、Column Key 或 Value)组成,表格中每个要素列都可以作为索引列,但每个要素列只能建立一个索引。因此,HBase 中可以有多个索引,但每个要素列只能有一个索引。
步骤 2:分析选项 B
HBase 的数据表可以配置多个列族,每个列族都有对应的 HLog。因此,HBase 为每个数据表配置了一个 HLog 的说法是错误的。
步骤 3:分析选项 C
HBase 中有一个 TimeStamp 机制,每行数据都有一个或多个版本,每个版本都有一个不同的时间戳。在插入、删除和标注单元格时始终记录时间戳。查询时,可以指定相应的时间戳来获取某时刻的版本集。因此,HBase 更新操作后,并不会删除数据旧的版本,而是生成一个新的副本。
步骤 4:分析选项 D
HBase 是一个基于 HDFS 的分布式列式存储系统,HBase 数据的所有版本都存储在 HDFS 上。因此,HBase 只能使用 HDFS 作为底层存储。