4.3 HBase数据模型 ·4.3.1 数据模型概述 43.2数据模型相关概念 43.3数据坐标 ·434概念视图 4.35物理视图 4.3.6 面向列的存储 《大数据技术原理与应用(第2版 厦门大学计算机科学系 林子雨 ziyulin@xmu. edu
《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 4.3 HBase数据模型 • 4.3.1 数据模型概述 • 4.3.2 数据模型相关概念 • 4.3.3 数据坐标 • 4.3.4 概念视图 • 4.3.5 物理视图 • 4.3.6 面向列的存储
431数据模型概述 · HBase是一个稀疏、多维度、排序的映射表,这张表的索引是行键、 列族、列限定符和时间戳 每个值是一个未经解释的字符串,没有数据类型 用户在表中存储数据,每一行都有一个可排序的行键和任意多的列 表在水平方向由一个或者多个列族组成,一个列族中可以包含任意多 个列,同一个列族里面的数据存储在一起 ·列族支持动态扩展,可以很轻松地添加一个列族或列,无需预先定义 列的数量以及类型,所有列均以字符串形式存储,用户需要自行进行 数据类型转换 HBase中执行更新操作时,并不会删除数据旧的版本,而是生成一个 新的版本,旧有的版本仍然保留(这是和HDFS只允许追加不允许修 改的特性相关的) 《大数据技术原理与应用(第2版 厦门大学计算机科学系 林子雨 ziyulin@xmu. edu
《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 4.3.1数据模型概述 • HBase是一个稀疏、多维度、排序的映射表,这张表的索引是行键、 列族、列限定符和时间戳 • 每个值是一个未经解释的字符串,没有数据类型 • 用户在表中存储数据,每一行都有一个可排序的行键和任意多的列 • 表在水平方向由一个或者多个列族组成,一个列族中可以包含任意多 个列,同一个列族里面的数据存储在一起 • 列族支持动态扩展,可以很轻松地添加一个列族或列,无需预先定义 列的数量以及类型,所有列均以字符串形式存储,用户需要自行进行 数据类型转换 • HBase中执行更新操作时,并不会删除数据旧的版本,而是生成一个 新的版本,旧有的版本仍然保留(这是和HDFS只允许追加不允许修 改的特性相关的)
4.32数据模型相关概念 表: HBase米用表来组织数据,表由行 和列组成,列划分为若干个列族 行:每个 HBase表都由若干行组成,每 个行由行键( row key)来标识。 列限定符 列族 列族:一个 HBase表被分组成许多“列 fo 族”( Column Family)的集合,它是 name major email 基本的访问控制单元 ·列限定符:列族里的数据通过列限定符 201505001LuoMin math luo@qq.coM (或列)来定位 行键201505002 Liu Jun Math liu@qcom 单元格:在 HBase表中,通过行、列族 201505003XieyoUmathxie@aa.com. 和列限定符确定一个“单元格”(ce!l you@163.com ),单元格中存储的数据没有数据类型 单元格 ts1//ts2 总被视为字节数组byte 该单元格有2个时间戳ts1和ts2 时间戳:每个单元格都保存着同一份数 每个时间戳对应一个数据版本 ts1=1174184619081ts2=1174184620720 据的多个版本,这些版本采用时间戳进 行索引 大数据技术原理与应用(第2版 厦门大学计算机科学系 林子雨 ziyulin@xmu. edu
《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 4.3.2数据模型相关概念 • 表:HBase采用表来组织数据,表由行 和列组成,列划分为若干个列族 • 行:每个HBase表都由若干行组成,每 个行由行键(row key)来标识。 • 列族:一个HBase表被分组成许多“列 族”(Column Family)的集合,它是 基本的访问控制单元 • 列限定符:列族里的数据通过列限定符 (或列)来定位 • 单元格:在HBase表中,通过行、列族 和列限定符确定一个“单元格”(cell ),单元格中存储的数据没有数据类型 ,总被视为字节数组byte[] • 时间戳:每个单元格都保存着同一份数 据的多个版本,这些版本采用时间戳进 行索引
4.3.3数据坐标 HBase中需要根据行键、列族、列限定符和时间戳来确定一个单元格,因此 ,可以视为一个“四维坐标”,即[行键,列族,列限定符,时间戳] 键 值 [“201505003,nfo," email,1174184619081] Xleaqq.com [“201505003”,nfo;,“emai,1174184620720 “you@l63c0m 列限定符 列族 Info name nair email 201505001LuoMinMathluo@qq.com 行键201505002 Liu Jun Math liue@qcom 201505003 Xie You Math eaa com ou@163.com 单元格 该单元格有2个时间戳s1和ts2 每个时间戳对应一个数据版本 s1=1174184619081ts2=1174184620720 《大数据技术原理与应用(第2版 厦门大学计算机科学系 林子雨 ziyulin@xmu. edu
《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 4.3.3数据坐标 • HBase中需要根据行键、列族、列限定符和时间戳来确定一个单元格,因此 ,可以视为一个“四维坐标”,即[行键, 列族, 列限定符, 时间戳] 键 值 [“201505003” , “Info” , “email”, 1174184619081] “xie@qq.com” [“201505003” , “Info” , “email”, 1174184620720] “you@163.com
434概念视图 表4-4 HBase数据的概念视图 时 行键间列族 contents 列族 anchor 戳 t5 anchor: cnnSi. com=CNN t4 anchormylookca=cnn.com t3 contents. htr com. cnn html>." WWW t2/contents:html="k< html>. " tI contents: html="< html>.. 《大数据技术原理与应用(第2版 厦门大学计算机科学系 林子雨 ziyulin@xmu. edu
《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 4.3.4概念视图 表4-4 HBase数据的概念视图 行键 时 间 戳 列族contents 列族anchor "com.cnn .www" t5 anchor:cnnsi.com=”CNN” t4 anchor:my.look.ca="CNN.com" t3 contents:html="< html>..." t2 contents:html="< html>..." t1 contents:html="< html>