zoukankan      html  css  js  c++  java
  • hbase表的多版本读写

    TTL(Time To Live)生存期

    hbase表默认保存一个版本的数据

    hbase(main):123:0> create 't_name','st1'
    Created table t_name
    Took 1.3807 seconds                                                                                                                                                             
    => Hbase::Table - t_name
    hbase(main):124:0> desc 't_name'
    Table t_name is ENABLED                                                                                                                                                         
    t_name                                                                                                                                                                          
    COLUMN FAMILIES DESCRIPTION                                                                                                                                                     
    {NAME => 'st1', VERSIONS => '1', EVICT_BLOCKS_ON_CLOSE => 'false', NEW_VERSION_BEHAVIOR => 'false', KEEP_DELETED_CELLS => 'FALSE', CACHE_DATA_ON_WRITE => 'false', DATA_BLOCK_ENC
    ODING => 'NONE', TTL => 'FOREVER', MIN_VERSIONS => '0', REPLICATION_SCOPE => '0', BLOOMFILTER => 'ROW', CACHE_INDEX_ON_WRITE => 'false', IN_MEMORY => 'false', CACHE_BLOOMS_ON_WR
    ITE => 'false', PREFETCH_BLOCKS_ON_OPEN => 'false', COMPRESSION => 'NONE', BLOCKCACHE => 'true', BLOCKSIZE => '65536'}                                                          
    1 row(s)
    Took 0.0310 seconds 

    添加一个列族

    hbase(main):126:0> alter 't_name',{NAME=>'st2'}
    Updating all regions with the new schema...
    All regions updated.
    Done.
    Took 1.5367 seconds                                                                                                                                                             
    hbase(main):127:0> desc 't_name'
    Table t_name is DISABLED                                                                                                                                                        
    t_name                                                                                                                                                                          
    COLUMN FAMILIES DESCRIPTION                                                                                                                                                     
    {NAME => 'st1', VERSIONS => '1', EVICT_BLOCKS_ON_CLOSE => 'false', NEW_VERSION_BEHAVIOR => 'false', KEEP_DELETED_CELLS => 'FALSE', CACHE_DATA_ON_WRITE => 'false', DATA_BLOCK_ENC
    ODING => 'NONE', TTL => 'FOREVER', MIN_VERSIONS => '0', REPLICATION_SCOPE => '0', BLOOMFILTER => 'ROW', CACHE_INDEX_ON_WRITE => 'false', IN_MEMORY => 'false', CACHE_BLOOMS_ON_WR
    ITE => 'false', PREFETCH_BLOCKS_ON_OPEN => 'false', COMPRESSION => 'NONE', BLOCKCACHE => 'true', BLOCKSIZE => '65536'}                                                          
    {NAME => 'st2', VERSIONS => '1', EVICT_BLOCKS_ON_CLOSE => 'false', NEW_VERSION_BEHAVIOR => 'false', KEEP_DELETED_CELLS => 'FALSE', CACHE_DATA_ON_WRITE => 'false', DATA_BLOCK_ENC
    ODING => 'NONE', TTL => 'FOREVER', MIN_VERSIONS => '0', REPLICATION_SCOPE => '0', BLOOMFILTER => 'ROW', CACHE_INDEX_ON_WRITE => 'false', IN_MEMORY => 'false', CACHE_BLOOMS_ON_WR
    ITE => 'false', PREFETCH_BLOCKS_ON_OPEN => 'false', COMPRESSION => 'NONE', BLOCKCACHE => 'true', BLOCKSIZE => '65536'}                                                          
    2 row(s)
    Took 0.0147 seconds   

    修改版本数:

    hbase(main):151:0> alter 't_name',{NAME=>'st1'},{NAME=>'st1',VERSIONS=>5}
    Updating all regions with the new schema...
    1/1 regions updated.
    Done.
    Took 3.6029 seconds

    插入数据:

    hbase(main):128:0> enable 't_name'
    Took 1.2686 seconds                                                                                                                                                             
    hbase(main):129:0> put 't_name','1','st1:name','xiaoma'
    Took 0.0060 seconds

    hbase(main):146:0> put 't_name','1','st1:age','30'
    Took 0.0024 seconds

    hbase(main):155:0> put 't_name','1','st1:age',100
    Took 0.0028 seconds    

    hbase(main):157:0> put 't_name','1','st1:age',88
    Took 0.0022 seconds

    同一单元写入3次,查询:

    hbase(main):158:0> scan 't_name'
    ROW                                           COLUMN+CELL                                                                                                                       
     1                                            column=st1:age, timestamp=1526971520170, value=88                                                                                 
     1                                            column=st1:name, timestamp=1526971227081, value=xiaoma                                                                            
     1                                            column=st2:level, timestamp=1526971286607, value=50                                                                               
    1 row(s)
    Took 0.0042 seconds 

    hbase(main):173:0> get 't_name','1'
    COLUMN                                        CELL                                                                                                                              
     st1:age                                      timestamp=1526971520170, value=88                                                                                                 
     st1:name                                     timestamp=1526971227081, value=xiaoma                                                                                             
     st2:level                                    timestamp=1526971286607, value=50                                                                                                 
    1 row(s)
    Took 0.0037 seconds

    发现查询结果为最后一次写入的值

    查看历史版本:

    hbase(main):174:0> get 't_name',1,{COLUMN=>'st1:age',VERSIONS=>1}
    COLUMN                                        CELL                                                                                                                              
     st1:age                                      timestamp=1526971520170, value=88                                                                                                 
    1 row(s)
    Took 0.0055 seconds                                                                                                                                                             
    hbase(main):175:0> get 't_name',1,{COLUMN=>'st1:age',VERSIONS=>2}
    COLUMN                                        CELL                                                                                                                              
     st1:age                                      timestamp=1526971520170, value=88                                                                                                 
     st1:age                                      timestamp=1526971419514, value=100                                                                                                
    1 row(s)
    Took 0.0032 seconds                                                                                                                                                             
    hbase(main):176:0> get 't_name',1,{COLUMN=>'st1:age',VERSIONS=>3}
    COLUMN                                        CELL                                                                                                                              
     st1:age                                      timestamp=1526971520170, value=88                                                                                                 
     st1:age                                      timestamp=1526971419514, value=100                                                                                                
     st1:age                                      timestamp=1526971266685, value=30                                                                                                 
    1 row(s)
    Took 0.0044 seconds

    hbase(main):193:0> get 't_name','1',{COLUMN=> 'st1:age',TIMERANGE => [1526971266685,1526971520170] ,VERSIONS => 4}
    COLUMN                                        CELL                                                                                                                              
     st1:age                                      timestamp=1526971419514, value=100                                                                                                
     st1:age                                      timestamp=1526971266685, value=30                                                                                                 
    1 row(s)
    Took 0.0039 seconds

    hbase(main):194:0> get 't_name','1',{COLUMN=>'st1:age',TIMESTAMP=>1526971419514,VERSIONS=>4}
    COLUMN                                        CELL                                                                                                                              
     st1:age                                      timestamp=1526971419514, value=100                                                                                                
    1 row(s)
    Took 0.0028 seconds

  • 相关阅读:
    Sql 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)(转载)
    sql 去掉 空格
    sqlserver清除缓存(转载)
    sqlsever 科学计数法e 问题
    将一张表中的数据插入到另一张表
    Spark的Driver节点和Executor节点
    实时流计算Spark Streaming原理介绍
    Spark Streaming实战
    Spark 以及 Spark Streaming 核心原理及实践
    SparkSQL读取Hive中的数据
  • 原文地址:https://www.cnblogs.com/playforever/p/9072179.html
Copyright © 2011-2022 走看看