Hbase基本语言(简单小结)

    科技2025-11-04  12

    转载:https://www.jianshu.com/p/70c55e0846fb

    HBase DDL(定义语言)

    【namespace】 -》展示namespace list_namespace -》展示namespace下所有表 list_namespace_tables 'hbase' -》创建namespace 帮助信息help 'create_namespace' create_namespace 'nstest' -》描述namespace describe_namespace 'nstest' -》修改alter_namespace 只是修改命名空间的属性,对于名称是不能修改的 -》删除namespace drop_namespace 'nstest2'table--》创建表时不需要进入到某个命名空间下,没有use命令,不是等同于RDBMS --》'ns1:t1' 表与命名空间的关联通过 :这个符号 create 'ns1:t1', {NAME => 'f1', VERSIONS => 5} -》指定某一个namespace下的某一张表 -》必须要指定一个列族{NAME} --》NAME等同于列族的属性key -=>表示等于的意思 -》一对{}只能定义一个列族,不同的{}定义不同多个列族 -》{}中的变量名称必须是大写的 -》VERSIONS指定列族下存储多个版本的数据 create 't1', {NAME => 'f1'} -》不指定命名空间的 --》会在默认的命名空间下(default) create 't1', 'f1', 'f2', 'f3' -》简单使用创建方式,t1表的名称,f1、f2、f3都是定义到列族里 -》创建表【不指定namespace默认是defaultcreate 'stu_info','f1' create 't1', 'f1', 'f2', 'f3' create 'nstest:tb1','info' -》TTL(Time to Live) 用于限定数据的有效时间,CF默认的TTL值是FOREVER,也就是永不过期 ,CF的TTL的值以秒为单位,比如设为1天,那么第二天就会自动删除 --》展示表 list --》直接展示用户所有表,但是系统表不会展示 -》描述表 describe 't1'或者desc 't1' {NAME => 'f1', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NO NE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => ' 0'} -》修改表中列族属性: alter不能修改表的名称 alter 't1', NAME => 'f1', VERSIONS => 5 --》修改指定某个列族的属性 alter 't1', 'f1', {NAME => 'f2', IN_MEMORY => true}, {NAME => 'f3', VERSIONS => 5} -》修改多个列族的属性 增加列族:alter 't1', NAME => 'f2', VERSIONS => 5(版本可以不要) alter 't1', 'f3', {NAME => 'f4', IN_MEMORY => true} (也是增加) --》如果表中已存在该列族表示修改该列族属性,反之就是增加一个列族 修改(删除)列族:alter 't1', NAME => 'f3', METHOD => 'delete' alter 't1', 'delete' => 'f2' --》不支持同时删除多个列族 -》删除表 help 'drop' -》需要注意在hbase中删除表前都需要先禁用这张表 disable 't1' --》禁用 enable 't1' --》启用 drop 't1' --》删除 is_disabled --》是否禁用状态 is_enabled --》是否启用状态

    HBase DML(操纵语言)

    【插入数据put】 -》格式:help 'put' put 'ns1:t1', 'r1', 'c1', 'value' -》r1表示rowkey -》c1表示列族+-value表示插入的值 【查询数据get、scan】 -》get方式:快速查询 指定索引查询,必须要跟rowkey get 'nstest:tb1','10001' 查询某个rowkey的数据 get 'nstest:tb1','10001','info' 可以指定某个列族的数据 get 'nstest:tb1','10001','info:name' 可以指定某个列族下某个列的数据 -》hbase默认按照字典序进行排列--》abcd -》scan方式:全表扫描 -》类似select * from的方式,全表扫描 scan 'nstest:tb1' scan 't1',{COLUMNS => 'info:name'} --》他是不限制行的 -》指定列去查询 scan 't1',{COLUMNS => 'info'} --》他是不限制行的 -》指定列族去查询 scan 'ns1:t1', {COLUMNS => ['c1', 'c2'], LIMIT => 10, STARTROW => 'xyz'} -》STARTROW表示开始的行号,LIMIT是限制显示的行数
    Processed: 0.016, SQL: 8