HBase编程 API入门系列之delete.deleteColumn和delete.deleteColumns区别(客户端而言)(4)

简介:

心得,写在前面的话,也许,中间会要多次执行,连接超时,多试试就好了。

  delete.deleteColumn和delete.deleteColumns区别是:

    deleteColumn是删除某一个列簇里的最新时间戳版本。

    delete.deleteColumns是删除某个列簇里的所有时间戳版本。

 

 

 

 

hbase(main):020:0> desc 'test_table'
Table test_table is ENABLED 
test_table 
COLUMN FAMILIES DESCRIPTION 
{NAME => 'f', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS 
=> 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'} 
1 row(s) in 0.2190 seconds

hbase(main):021:0> scan 'test_table'
ROW COLUMN+CELL 
row_01 column=f:col, timestamp=1478102698687, value=maizi 
row_01 column=f:name, timestamp=1478104345828, value=Andy 
row_02 column=f:name, timestamp=1478104477628, value=Andy2 
row_03 column=f:name, timestamp=1478104823358, value=Andy3 
3 row(s) in 0.2270 seconds

hbase(main):022:0> scan 'test_table'
ROW COLUMN+CELL 
row_01 column=f:col, timestamp=1478102698687, value=maizi 
row_01 column=f:name, timestamp=1478104345828, value=Andy 
row_02 column=f:name, timestamp=1478104477628, value=Andy2 
row_03 column=f:name, timestamp=1478104823358, value=Andy3 
3 row(s) in 0.1480 seconds

hbase(main):023:0> scan 'test_table',{VERSIONS=>3}
ROW COLUMN+CELL 
row_01 column=f:col, timestamp=1478102698687, value=maizi 
row_01 column=f:name, timestamp=1478104345828, value=Andy 
row_02 column=f:name, timestamp=1478104477628, value=Andy2 
row_03 column=f:name, timestamp=1478104823358, value=Andy3 
3 row(s) in 0.1670 seconds

hbase(main):024:0>

 

 

 

 

 

 

 

 

复制代码
 1 package zhouls.bigdata.HbaseProject.Test1;
 2 
 3 import javax.xml.transform.Result;
 4 
 5 import org.apache.hadoop.conf.Configuration;
 6 import org.apache.hadoop.hbase.HBaseConfiguration;
 7 import org.apache.hadoop.hbase.TableName;
 8 import org.apache.hadoop.hbase.client.Delete;
 9 import org.apache.hadoop.hbase.client.Get;
10 import org.apache.hadoop.hbase.client.HTable;
11 import org.apache.hadoop.hbase.client.Put;
12 import org.apache.hadoop.hbase.util.Bytes;
13 
14 public class HBaseTest {
15     public static void main(String[] args) throws Exception {
16         HTable table = new HTable(getConfig(),TableName.valueOf("test_table"));//表名是test_table
17         Put put = new Put(Bytes.toBytes("row_04"));//行键是row_04
18         put.add(Bytes.toBytes("f"),Bytes.toBytes("name"),Bytes.toBytes("Andy0"));//列簇是f,列修饰符是name,值是Andy0
19 //        put.add(Bytes.toBytes("f2"),Bytes.toBytes("name"),Bytes.toBytes("Andy3"));//列簇是f2,列修饰符是name,值是Andy3
20         table.put(put);
21         table.close();
22 
23 //        Get get = new Get(Bytes.toBytes("row_04"));
24 //        get.addColumn(Bytes.toBytes("f1"), Bytes.toBytes("age"));如现在这样,不指定,默认把所有的全拿出来
25 //        org.apache.hadoop.hbase.client.Result rest = table.get(get);
26 //        System.out.println(rest.toString());
27 //        table.close();
28 
29 //        Delete delete = new Delete(Bytes.toBytes("row_2"));
30 //        delete.deleteColumn(Bytes.toBytes("f1"), Bytes.toBytes("email"));
31 //        delete.deleteColumn(Bytes.toBytes("f1"), Bytes.toBytes("name"));
32 //        table.delete(delete);
33 //        table.close();
34 
35 
36 //        Delete delete = new Delete(Bytes.toBytes("row_03"));
37 //        delete.deleteColumn(Bytes.toBytes("f"), Bytes.toBytes("name"));
38 //        delete.deleteColumns(Bytes.toBytes("f"), Bytes.toBytes("name"));
39 //        table.delete(delete);
40 //        table.close();
41 }
42 
43     public static Configuration getConfig(){
44         Configuration configuration = new Configuration(); 
45 //        conf.set("hbase.rootdir","hdfs:HadoopMaster:9000/hbase");
46         configuration.set("hbase.zookeeper.quorum", "HadoopMaster:2181,HadoopSlave1:2181,HadoopSlave2:2181");
47         return configuration;
48     }
49 }
复制代码

 

 

 

 

 

 

 

 

 

 

hbase(main):038:0> scan 'test_table'
ROW COLUMN+CELL 
row_01 column=f:col, timestamp=1478102698687, value=maizi 
row_01 column=f:name, timestamp=1478104345828, value=Andy 
row_02 column=f:name, timestamp=1478104477628, value=Andy2 
row_03 column=f:name, timestamp=1478123664884, value=Andy3 
3 row(s) in 0.1910 seconds

hbase(main):039:0> scan 'test_table'
ROW COLUMN+CELL 
row_01 column=f:col, timestamp=1478102698687, value=maizi 
row_01 column=f:name, timestamp=1478104345828, value=Andy 
row_02 column=f:name, timestamp=1478104477628, value=Andy2 
row_03 column=f:name, timestamp=1478123664884, value=Andy3 
row_04 column=f:name, timestamp=1478123917775, value=Andy0 
4 row(s) in 0.1310 seconds

 

 

 

 

 

 

 

 

 

 

 

delete.deleteColumn和delete.deleteColumns区别是:

    deleteColumn是删除某一个列簇里的最新时间戳版本。

    delete.deleteColumns是删除某个列簇里的所有时间戳版本。

 

复制代码
 1 package zhouls.bigdata.HbaseProject.Test1;
 2 
 3 import javax.xml.transform.Result;
 4 
 5 import org.apache.hadoop.conf.Configuration;
 6 import org.apache.hadoop.hbase.HBaseConfiguration;
 7 import org.apache.hadoop.hbase.TableName;
 8 import org.apache.hadoop.hbase.client.Delete;
 9 import org.apache.hadoop.hbase.client.Get;
10 import org.apache.hadoop.hbase.client.HTable;
11 import org.apache.hadoop.hbase.client.Put;
12 import org.apache.hadoop.hbase.util.Bytes;
13 
14 public class HBaseTest {
15     public static void main(String[] args) throws Exception {
16         HTable table = new HTable(getConfig(),TableName.valueOf("test_table"));//表名是test_table
17         Put put = new Put(Bytes.toBytes("row_04"));//行键是row_04
18         put.add(Bytes.toBytes("f"),Bytes.toBytes("name"),Bytes.toBytes("Andy1"));//列簇是f,列修饰符是name,值是Andy0
19 //        put.add(Bytes.toBytes("f2"),Bytes.toBytes("name"),Bytes.toBytes("Andy3"));//列簇是f2,列修饰符是name,值是Andy3
20         table.put(put);
21         table.close();
22 
23 //        Get get = new Get(Bytes.toBytes("row_04"));
24 //        get.addColumn(Bytes.toBytes("f1"), Bytes.toBytes("age"));如现在这样,不指定,默认把所有的全拿出来
25 //        org.apache.hadoop.hbase.client.Result rest = table.get(get);
26 //        System.out.println(rest.toString());
27 //        table.close();
28 
29 //        Delete delete = new Delete(Bytes.toBytes("row_2"));
30 //        delete.deleteColumn(Bytes.toBytes("f1"), Bytes.toBytes("email"));
31 //        delete.deleteColumn(Bytes.toBytes("f1"), Bytes.toBytes("name"));
32 //        table.delete(delete);
33 //        table.close();
34 
35 
36 //        Delete delete = new Delete(Bytes.toBytes("row_03"));
37 //        delete.deleteColumn(Bytes.toBytes("f"), Bytes.toBytes("name"));
38 //        delete.deleteColumns(Bytes.toBytes("f"), Bytes.toBytes("name"));
39 //        table.delete(delete);
40 //        table.close();
41 }
42 
43     public static Configuration getConfig(){
44         Configuration configuration = new Configuration(); 
45 //        conf.set("hbase.rootdir","hdfs:HadoopMaster:9000/hbase");
46         configuration.set("hbase.zookeeper.quorum", "HadoopMaster:2181,HadoopSlave1:2181,HadoopSlave2:2181");
47         return configuration;
48     }
49 }
复制代码

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

   

 

 

 

 

 

 

 

delete.deleteColumn和delete.deleteColumns区别是:

    deleteColumn是删除某一个列簇里的最新时间戳版本。

    delete.deleteColumns是删除某个列簇里的所有时间戳版本。

 


本文转自大数据躺过的坑博客园博客,原文链接:http://www.cnblogs.com/zlslch/p/6156265.html,如需转载请自行联系原作者

相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库HBase版使用教程
  相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情: https://cn.aliyun.com/product/hbase   ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
5月前
|
安全 Java API
告别繁琐编码,拥抱Java 8新特性:Stream API与Optional类助你高效编程,成就卓越开发者!
【8月更文挑战第29天】Java 8为开发者引入了多项新特性,其中Stream API和Optional类尤其值得关注。Stream API对集合操作进行了高级抽象,支持声明式的数据处理,避免了显式循环代码的编写;而Optional类则作为非空值的容器,有效减少了空指针异常的风险。通过几个实战示例,我们展示了如何利用Stream API进行过滤与转换操作,以及如何借助Optional类安全地处理可能为null的数据,从而使代码更加简洁和健壮。
138 0
|
4月前
|
网络协议 API Windows
MASM32编程调用 API函数RtlIpv6AddressToString,windows 10 容易,Windows 7 折腾
MASM32编程调用 API函数RtlIpv6AddressToString,windows 10 容易,Windows 7 折腾
|
3月前
|
IDE API 定位技术
Python--API编程:IP地址翻译成实际的物理地址
Python--API编程:IP地址翻译成实际的物理地址
73 0
|
4月前
|
负载均衡 API 数据安全/隐私保护
Zookeeper的客户端-原生的API
Zookeeper的客户端-原生的API
|
5月前
|
安全 API 网络安全
【Azure API 管理】APIM如何配置客户端证书的CRL检测策略
【Azure API 管理】APIM如何配置客户端证书的CRL检测策略
|
5月前
|
API C# 开发框架
WPF与Web服务集成大揭秘:手把手教你调用RESTful API,客户端与服务器端优劣对比全解析!
【8月更文挑战第31天】在现代软件开发中,WPF 和 Web 服务各具特色。WPF 以其出色的界面展示能力受到欢迎,而 Web 服务则凭借跨平台和易维护性在互联网应用中占有一席之地。本文探讨了 WPF 如何通过 HttpClient 类调用 RESTful API,并展示了基于 ASP.NET Core 的 Web 服务如何实现同样的功能。通过对比分析,揭示了两者各自的优缺点:WPF 客户端直接处理数据,减轻服务器负担,但需处理网络异常;Web 服务则能利用服务器端功能如缓存和权限验证,但可能增加服务器负载。希望本文能帮助开发者根据具体需求选择合适的技术方案。
224 0
|
5月前
|
JSON API 数据库
神秘编程力量来袭!Rails 究竟隐藏着怎样的魔力,能构建出强大的 RESTful API?快来一探究竟!
【8月更文挑战第31天】《构建 RESTful API:使用 Rails 进行服务端开发》介绍了如何利用 Ruby on Rails 框架高效构建可扩展的 RESTful API。Rails 采用“约定优于配置”,简化开发流程,通过示例展示了路由定义、控制器设计及模型层交互等内容,帮助开发者快速搭建稳定可靠的服务端。无论小型项目还是大型应用,Rails 均能提供强大支持,提升开发效率。
36 0
|
5月前
|
API
【Azure 应用服务】在App Service中调用外部服务API时需要携带客户端证书,而多次调用的情况下会出现WindowsCryptographicException Keyset does not exist异常
【Azure 应用服务】在App Service中调用外部服务API时需要携带客户端证书,而多次调用的情况下会出现WindowsCryptographicException Keyset does not exist异常
|
缓存 API
|
20天前
|
人工智能 自然语言处理 API
Multimodal Live API:谷歌推出新的 AI 接口,支持多模态交互和低延迟实时互动
谷歌推出的Multimodal Live API是一个支持多模态交互、低延迟实时互动的AI接口,能够处理文本、音频和视频输入,提供自然流畅的对话体验,适用于多种应用场景。
67 3
Multimodal Live API:谷歌推出新的 AI 接口,支持多模态交互和低延迟实时互动