根据主键直接获取Hbase数据表的内容

网络上找的,很实用:

/**
     *
     * @param zkIp
     * @param zkPort
     * @param tablename
     * @param startRow   传null扫全表
     * @param stopRow 已~结尾
     * @throws Exception
     */
    public static void scanTable(String zkIp,String zkPort,String tablename,String startRow,String stopRow) throws Exception {

        HTablePool pool;
        Configuration config = HBaseConfiguration.create();
        config.set("hbase.zookeeper.quorum",zkIp);//
        config.set("hbase.zookeeper.property.clientPort", zkPort);
        pool = new HTablePool(config, 2);

        HTableInterface hbTable = null;
        try {
            hbTable = pool.getTable(tablename); // 表名
            ResultScanner rs = null;
            Scan scan = new Scan();
            // scan.addColumn(Bytes.toBytes("cf1"),Bytes.toBytes("qual1"));扫某一列
            if (startRow != null) { // 设置扫描的范围
                scan.setStartRow(Bytes.toBytes(startRow));
            }
            if (stopRow != null) {
                scan.setStopRow(Bytes.toBytes(stopRow));
            }

            rs = hbTable.getScanner(scan);
            hbTable.close();
            for (Result r : rs) {// 按行去遍历
                for (KeyValue kv : r.raw()) {// 遍历每一行的各列
                    StringBuffer sb = new StringBuffer()
                            .append(Bytes.toString(kv.getRow())).append("\t")
                            .append(Bytes.toString(kv.getFamily()))
                            .append("\t")
                            .append(Bytes.toString(kv.getQualifier()))
                            .append("\t").append(Bytes.toString(kv.getValue()));
                    System.out.println(sb.toString());
                    // kv.getRow() key
                    // kv.getFamily() cf1
                    // kv.getQualifier() 列名
                    // kv.getValue() value

                }

            }

        } catch (Exception e) {
            System.out.println(e.getMessage());
        }finally{
            pool.close();
        }

    }
时间: 2024-10-04 07:22:44

根据主键直接获取Hbase数据表的内容的相关文章

(二)创建带主键和约束的数据表

内容摘要 创建带主键和约束的表 创建带组合主键和外键的表 1. 创建带主键和约束的表 Student (学生表) CREATE TABLE Student ( sclass varchar(10) NOT NULL, --- 限制非空 snumb varchar(10) PRIMARY KEY, --- 设置为主键 sname varchar(40) NOT NULL, --- (下)设置默认值男,约束选项为男女 sgender varchar(4) DEFAULT '男' CONSTRAINT

Phoenix映射HBase数据表

1. 说明 安装好phoenix后对于HBase中已经存在的数据表不会自动进行映射,所以想要再phoenix中操作HBase已有数据表就需要手动进行配置. 2. 创建HBase表 > create 'phoenix','info' 3. 插入数据 > put 'phoenix', 'row001','info:name','phoenix' > put 'phoenix', 'row002','info:name','hbase' 高能预警:HBase数据表默认主键列名是ROW 4. 创

python42 1.外键的变种 2.数据表操作

昨日回顾: 一. 数据库的介绍   管理数据的软件 二. 数据库的 分类:   a.关系型数据库    有约束   b.非关系型数据库    没有约束     三. MySQl 的安装:   a. exe msi文件 点击下一步下一步      b. 压缩包     bin      mysqld : 启动mysql服务的     mysql  : 连接mysql    环境变量 四. 数据库(文件夹)   数据表 (文件)    数据行(文件行)  五. 数据库:   增:    create

如何将关系型数据表转换至hbase数据表

首先需要把关系型数据库的数据表的数据增加由 "纵向延伸",转变为HBase数据表的"横向延伸" 一.Hbase的存储结构 a)      HBase以表(HTable)的形式存储数据 b)     HTable包括很多行,每行通过RowKey唯一标记,行按照RowKey的字典序排列,表在行的方向上分割为多个HRegion c)      每行包括一个RowKey和多个Column Family,数据按照Column Family进行物理切割,即不同Column Fa

Oracle中使用游标获取指定数据表的所有字段名对应的字符串

操作步骤:打开PLSQL Developer后,直接执行下面的语句就可以出来 --Oracle中使用游标获取指定数据表的所有字段名对应的字符串 declare mytablename VARCHAR(255):='STAFFDOC'; --定义要查询的数据表名变量,STAFFDOC为我测试用的数据表名,请修改成您的数据库中的对应数据表名字mystring NVARCHAR2(4000):=''; --定义要输出的字符串变量 cursor mycursor is --定义游标          s

jquery用ajax方式从后台获取json数据,将内容填充到下拉列表。

从后台获取json数据,将内容填充到下拉列表. url:链接 par:ID sel:下拉列表选择器 //获取下拉列表 function BuildSelectBox(url, par, sel) { $(sel).empty(); $.getJSON(url, { id: par }, function (json, textStatus) { for (var i = json.length - 1; i >= 0; i--) { $(sel).prepend('<option value=

删除数据表和清空数据表的内容(保存表结构)的SHELL脚本

A,删除指定数据库的所有数据表 #!/bin/bash # 删除mysql中所有表 # 示例: # Usage: ./script user password dbnane # Usage: ./script user password dbnane server-ip # Usage: ./script user password dbnane mysql.nixcraft.in # --------------------------------------------------- MUS

MySQL主键自动生成和生成器表以及JPA主键映射

MySQL主键自动生成 表设计 MySQL有许多主键生成策略,其中很常见的一种是自动生成.一般情况下,主键类型是BIGINT UNSIGNED,自动生成主键的关键词是AUTO_INCREMENT. CREATE TABLE Stock ( id BIGINT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, NO VARCHAR(255) NOT NULL, name VARCHAR(255) NOT NULL, price DECIMAL(6,2) N

随机获取Mysql数据表的一条或多条记录

随机获得Mysql数据表的一条或多条记录有很多方法,下面我就以users(userId,userName,password......)表(有一百多万条记录)为例,对比讲解下几个方法效率问题: select * from users order by rand() LIMIT 1 执行该sql语句,老半天没有反应,最后被迫手动停止执行,怎个伤人了得啊!后来我查了一下MYSQL手册,里面针对RAND()的提示大概意思就是,在 ORDER BY从句里面不能使用RAND()函数,因为这样会导致数据列被