第七次作业

1.理解HBase表模型及四维坐标:行键、列族、列限定符和时间戳。

HBase数据存储结构中主要包括:表、行、列族、列限定符、单元格和时间戳。
表: 的作用将存储在HBase的数据组织起来。
行: 行包含在表中,数据以的形式存储在HBase的表中。HBase的表中的每一行数据都会被一个唯一标识的行键标识。行键没有数据类型,在HBase存储系统中行键总是被看作一个byte数组。
列族: 行中的数据都是根据列族分组,由于列族会影响存储在HBase中的数据的物理布置,所以列族会在使用前定义(在定义表的时候就定义列族),并且不易被修改。
HBase的存储系统中数据存储在相同的表中的所有行的数据都会有相同的列族(这和关系型数据库的表一样,每一行数据都有相同的列)。
列限定符: 存储在在列族中的数据通过列限定符或列来寻址的,列不需要提前定义(不需要在定义表和列族的时候就定义列),列与列之间也不需要保持一致。列和行键一样没有数据类型,并且在HBase存储系统中也总是被看作一个byte数组。
单元格: 根据行键、列族和列可以映射到一个对应的单元格,单元格HBase存储数据的具体地址。在单元格中存储具体数据都是以Byte数组的形式存储的,也没有具体的数据类型。
时间戳: 时间戳是给定值的一个版本号标识,每一个值都会对应一个时间戳,时间戳是和每一个值同时写入HBase存储系统中的。在默认情况下,时间戳表示数据服务在写入数据时的时间,但可以在将数据放入单元格时指定不同的时间戳值。

2.启动HDFS,启动HBase,进入HBaseShell命令行。

 

 

3.列出HBase中所有的表信息list

 

 

 

 

4.创建表create

 

 

 

 

5.查看表详情desc

 

 

6.插入数据put

 

 

 

 

7.查看表数据scan

 

 

尝试分别用MySQL和HBase创建以下表:

 

 

 

 

 

 

create table user (
        user_id int unsigned not null primary key,
        name       char(10) not null,
        sex        char(20) not null,
        age      int(20)    not null,
        kemu   char(20) not null,
score int(20) not null );
insert into user values (096,"qy","womane","20","大数据","80");

 

8.多版本实验:修改列族版本数,插入多版本数据,查看多版本数据

 

 

 

 

9.对比HBase列式表与MySQL的行式表

  • 在HBase中创建学生课程分数表student并查看表结构。create,describe
  • 在mysql中创建学生表student, 课程表 course, 分数表score并查看表结构。
  • 分别插入几行数据,几个版本。put/insert
  • 查看数据及版本。get,scan/select
  •  

     

     

     

  • 建立student表
        属性有:编号:id (主键,自动增长),姓名:sname,出生年月:sage,性别:ssex(枚举)
        create table student(sid int primary key auto_increment,
        sname varchar(20),
        sage date,
        ssex enum(‘男’,‘女’)); 

  • 建立成绩表
        create table sc(sid int,
        kemu varchar(20),
        score int;
  • 给student表插入数据
        insert into student values(1,'小红','2001-01-01','女'),
         
  • 给sc表插入数据
        insert into sc values(1,'DB',85),
                    (2,'DB',90),
                    
posted @ 2021-11-05 10:43  野兽滴君斯内普  阅读(49)  评论(0)    收藏  举报