Hbase之校验指定数据是否存在
- import org.apache.hadoop.conf.Configuration;
- import org.apache.hadoop.hbase.HBaseConfiguration;
- import org.apache.hadoop.hbase.TableName;
- import org.apache.hadoop.hbase.client.*;
- import org.apache.hadoop.hbase.util.Bytes;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * Created by similarface on 16/8/22.
- * 校验指定数据是否存在
- *
- */
- public class CheckExistSpecificData {
- public static void main(String args[]) throws IOException{
- Configuration configuration = HBaseConfiguration.create();
- Connection connection = ConnectionFactory.createConnection(configuration);
- //建立表的连接
- Table table = connection.getTable(TableName.valueOf("testtable"));
- //
- List<Put> puts = new ArrayList<Put>();
- //
- Put put1 = new Put(Bytes.toBytes("10086"));
- put1.addColumn(Bytes.toBytes("colfam1"), Bytes.toBytes("qual1"), Bytes.toBytes("中国移动"));
- puts.add(put1);
- Put put2 = new Put(Bytes.toBytes("10010"));
- put2.addColumn(Bytes.toBytes("colfam1"), Bytes.toBytes("qual1"), Bytes.toBytes("中国联通"));
- puts.add(put2);
- Put put3 = new Put(Bytes.toBytes("10010"));
- put3.addColumn(Bytes.toBytes("colfam1"), Bytes.toBytes("qual2"), Bytes.toBytes("中国联通客服"));
- puts.add(put3);
- //插入两行数据
- table.put(puts);
- Get get1 = new Get(Bytes.toBytes("10010"));
- get1.addColumn(Bytes.toBytes("colfam1"), Bytes.toBytes("qual1"));
- //Only check for existence of data, but do not return any of it.
- //校验数据是否存在但是不返回任何数据 ==> Get 1 Exists: true
- get1.setCheckExistenceOnly(true);
- //检查存在的第一个数据。==>Get 1 Size: 0
- Result result1 = table.get(get1);
- //这个地方val并没有值 ==>Get 1 Value: null
- byte[] val = result1.getValue(Bytes.toBytes("colfam1"), Bytes.toBytes("qual1"));
- System.out.println("Get 1 Exists: " + result1.getExists());
- System.out.println("Get 1 Size: " + result1.size());
- System.out.println("Get 1 Value: " + Bytes.toString(val));
- //获取行键
- Get get2 = new Get(Bytes.toBytes("10010"));
- //获取列族
- get2.addFamily(Bytes.toBytes("colfam1"));
- //设置校验是否存在 ==>Get 2 Exists: true
- get2.setCheckExistenceOnly(true);
- //获取数据集 ==>Get 2 Size: 0
- Result result2 = table.get(get2);
- System.out.println("Get 2 Exists: " + result2.getExists());
- System.out.println("Get 2 Size: " + result2.size());
- //获取行键
- Get get3 = new Get(Bytes.toBytes("10010"));
- //获取列族 但是错误的列限定符
- get3.addColumn(Bytes.toBytes("colfam1"), Bytes.toBytes("qual9999"));
- //校验是否存在 ==>Get 3 Exists: false
- get3.setCheckExistenceOnly(true);
- //Get 3 Size: 0
- Result result3 = table.get(get3);
- System.out.println("Get 3 Exists: " + result3.getExists());
- System.out.println("Get 3 Size: " + result3.size());
- //获取行键100010
- Get get4 = new Get(Bytes.toBytes("10010"));
- //获取正确的列族 错误的列限定符
- get4.addColumn(Bytes.toBytes("colfam1"), Bytes.toBytes("qual9999"));
- //获取正确的列族 正确的列限定符 ==> Get 4 Exists: true
- get4.addColumn(Bytes.toBytes("colfam1"), Bytes.toBytes("qual1"));
- get4.setCheckExistenceOnly(true);
- //Get 4 Size: 0
- Result result4 = table.get(get4);
- System.out.println("Get 4 Exists: " + result4.getExists());
- System.out.println("Get 4 Size: " + result4.size());
- }
- }
- /**
- result:
- Get 1 Exists: true
- Get 1 Size: 0
- Get 1 Value: null
- Get 2 Exists: true
- Get 2 Size: 0
- Get 3 Exists: false
- Get 3 Size: 0
- Get 4 Exists: true
- Get 4 Size: 0
- *
- */
Hbase之校验指定数据是否存在的更多相关文章
- Hbase如何批量删除指定数据
有时我们需要批量删除一些hbase中符合某些条件的数据,本文提供一种简单的shell命令的方式批量删除hbase里的数据.思路就是,建立hive与hbase的关联表,通过hive sql查询出符合条件 ...
- HBase存储剖析与数据迁移
1.概述 HBase的存储结构和关系型数据库不一样,HBase面向半结构化数据进行存储.所以,对于结构化的SQL语言查询,HBase自身并没有接口支持.在大数据应用中,虽然也有SQL查询引擎可以查询H ...
- HBase BulkLoad批量写入数据实战
1.概述 在进行数据传输中,批量加载数据到HBase集群有多种方式,比如通过HBase API进行批量写入数据.使用Sqoop工具批量导数到HBase集群.使用MapReduce批量导入等.这些方式, ...
- Sqoop与HDFS、Hive、Hbase等系统的数据同步操作
Sqoop与HDFS结合 下面我们结合 HDFS,介绍 Sqoop 从关系型数据库的导入和导出. Sqoop import 它的功能是将数据从关系型数据库导入 HDFS 中,其流程图如下所示. 我们来 ...
- HBase(六)HBase整合Hive,数据的备份与MR操作HBase
一.数据的备份与恢复 1. 备份 停止 HBase 服务后,使用 distcp 命令运行 MapReduce 任务进行备份,将数据备份到另一个地方,可以是同一个集群,也可以是专用的备份集群. 即,把数 ...
- hadoop生态系统学习之路(八)hbase与hive的数据同步以及hive与impala的数据同步
在之前的博文中提到,hive的表数据是能够同步到impala中去的. 一般impala是提供实时查询操作的,像比較耗时的入库操作我们能够使用hive.然后再将数据同步到impala中.另外,我们也能够 ...
- 大数据学习笔记——HBase使用bulkload导入数据
HBase使用bulkload批量导入数据 HBase可使用put命令向一张已经建好了的表中插入数据,然而,当遇到数据量非常大的情况,一条一条的进行插入效率将会大大降低,因此本篇博客将会整理提高批量导 ...
- Hbase 整合 Hadoop 的数据迁移
上篇文章说了 Hbase 的基础架构,都是比较理论的知识,最近我也一直在搞 Hbase 的数据迁移, 今天就来一篇实战型的,把最近一段时间的 Hbase 整合 Hadoop 的基础知识在梳理一遍,毕竟 ...
- sqlserver 自增ID插入指定数据
set identity_insert 表名 ON --允许对自增列Id插入指定数据 insert into table_name(Id,Name) values(1,'test') set iden ...
随机推荐
- Poj(2679),SPFA,二级比较
题目链接:http://poj.org/problem?id=2679 嗯,思路清晰,先DFS看是不是通路,接着就是SPFA找最短路(路是费用,费用相同就比较路的长度). 超哥的代码还有一点问题,初始 ...
- python递归小疑惑
代码如下: def crawlAndGet(keyword, n): if n>0: jsondata = os.system('scrapy crawl beijing -a store_di ...
- log4j: 不同的类使用不同的日志
有时候会需要某些功能中使用独立的日志文件,以下为代码示例. public final static String LOGGER_NAME = "MyFunction"; priva ...
- mysqli报错(HY000/2002)
Warning: mysqli::mysqli(): (HY000/2002): 没有那个文件或目录 解决:把localhost 换成127.0.0.1就好了.
- 2016年12月4日 星期日 --出埃及记 Exodus 20:25
2016年12月4日 星期日 --出埃及记 Exodus 20:25 If you make an altar of stones for me, do not build it with dress ...
- Android Handler Message总结
http://blog.csdn.net/caesardadi/article/details/8473777 当应用程序启动时,会开启一个主线程(也就是UI线程),由她来管理UI,监听用户点击,来响 ...
- Python串口编程
python的串口网上有很多例子,这里了只是把认为好的整理到一起. 首先,应该安装serial模块,还能开始后续的操作.我用的python2.6,serial模块可以在这里下载安装serial模块下载 ...
- SQL十进制和十六进制相互转换
CREATE FUNCTION ufn_ConvertInt2Hex ( @Num BIGINT ) ) AS BEGIN /************************************* ...
- C# Ini配置文件
public class INIUserAccound { static IniFile Ini = new IniFile(AppDomain.CurrentDomain.BaseDirectory ...
- awk 以HWI开头,并且:相邻两行的第一个字段完全相同;
## 思路:以HWI开头,并且:相邻两行的第一个字段完全相同:awk 'BEGIN{ last_col_1="xxxxxx"; last_row="bbbbbbbbbbb ...