博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hbase操作table常见方法示例
阅读量:6935 次
发布时间:2019-06-27

本文共 35724 字,大约阅读时间需要 119 分钟。

首先上我的输出类:

/** * 功能:电池历史数据数据结构 * Created by liuhuichao on 2016/12/5. */public class ResBatteryDataHistory implements Serializable {    private String batteryNo;    private Integer batteryType;    private Float voltageDeviation;    private Float totalVoltage;    private String createTime;    private Integer createUser;    private Integer source;    private Float vol1;    private Float vol2;    private Float vol3;    private Float vol4;    private Float vol5;    private Float vol6;    private Float vol7;    private Float vol8;    private Float vol9;    private Float vol10;    private Float vol11;    private Float vol12;    private Float vol13;    private Float vol14;    private Float vol15;    private Float vol16;    private Float vol17;    private Float vol18;    private Float vol19;    private Float temprature1;    private Float temprature2;    private Float chargeNum;    private Float longtitude;    private Float latitude;    private String remarks;    private Float totalCurrent;    private Float soc;    private String testUserName;    private Integer cityId;    private Integer vehicleId;    private static final long serialVersionUID = 1L;    public String getBatteryNo() {        return batteryNo;    }    public void setBatteryNo(String batteryNo) {        this.batteryNo = batteryNo;    }    public Integer getBatteryType() {        return batteryType;    }    public void setBatteryType(Integer batteryType) {        this.batteryType = batteryType;    }    public Float getVoltageDeviation() {        return voltageDeviation;    }    public void setVoltageDeviation(Float voltageDeviation) {        this.voltageDeviation = voltageDeviation;    }    public Float getTotalVoltage() {        return totalVoltage;    }    public void setTotalVoltage(Float totalVoltage) {        this.totalVoltage = totalVoltage;    }    public String getCreateTime() {        return createTime;    }    public void setCreateTime(String createTime) {        this.createTime = createTime;    }    public Integer getCreateUser() {        return createUser;    }    public void setCreateUser(Integer createUser) {        this.createUser = createUser;    }    public Integer getSource() {        return source;    }    public void setSource(Integer source) {        this.source = source;    }    public Float getVol1() {        return vol1;    }    public void setVol1(Float vol1) {        this.vol1 = vol1;    }    public Float getVol2() {        return vol2;    }    public void setVol2(Float vol2) {        this.vol2 = vol2;    }    public Float getVol3() {        return vol3;    }    public void setVol3(Float vol3) {        this.vol3 = vol3;    }    public Float getVol4() {        return vol4;    }    public void setVol4(Float vol4) {        this.vol4 = vol4;    }    public Float getVol5() {        return vol5;    }    public void setVol5(Float vol5) {        this.vol5 = vol5;    }    public Float getVol6() {        return vol6;    }    public void setVol6(Float vol6) {        this.vol6 = vol6;    }    public Float getVol7() {        return vol7;    }    public void setVol7(Float vol7) {        this.vol7 = vol7;    }    public Float getVol8() {        return vol8;    }    public void setVol8(Float vol8) {        this.vol8 = vol8;    }    public Float getVol9() {        return vol9;    }    public void setVol9(Float vol9) {        this.vol9 = vol9;    }    public Float getVol10() {        return vol10;    }    public void setVol10(Float vol10) {        this.vol10 = vol10;    }    public Float getVol11() {        return vol11;    }    public void setVol11(Float vol11) {        this.vol11 = vol11;    }    public Float getVol12() {        return vol12;    }    public void setVol12(Float vol12) {        this.vol12 = vol12;    }    public Float getVol13() {        return vol13;    }    public void setVol13(Float vol13) {        this.vol13 = vol13;    }    public Float getVol14() {        return vol14;    }    public void setVol14(Float vol14) {        this.vol14 = vol14;    }    public Float getVol15() {        return vol15;    }    public void setVol15(Float vol15) {        this.vol15 = vol15;    }    public Float getVol16() {        return vol16;    }    public void setVol16(Float vol16) {        this.vol16 = vol16;    }    public Float getVol17() {        return vol17;    }    public void setVol17(Float vol17) {        this.vol17 = vol17;    }    public Float getVol18() {        return vol18;    }    public void setVol18(Float vol18) {        this.vol18 = vol18;    }    public Float getVol19() {        return vol19;    }    public void setVol19(Float vol19) {        this.vol19 = vol19;    }    public Float getTemprature1() {        return temprature1;    }    public void setTemprature1(Float temprature1) {        this.temprature1 = temprature1;    }    public Float getTemprature2() {        return temprature2;    }    public void setTemprature2(Float temprature2) {        this.temprature2 = temprature2;    }    public Float getChargeNum() {        return chargeNum;    }    public void setChargeNum(Float chargeNum) {        this.chargeNum = chargeNum;    }    public Float getLongtitude() {        return longtitude;    }    public void setLongtitude(Float longtitude) {        this.longtitude = longtitude;    }    public Float getLatitude() {        return latitude;    }    public void setLatitude(Float latitude) {        this.latitude = latitude;    }    public String getRemarks() {        return remarks;    }    public void setRemarks(String remarks) {        this.remarks = remarks;    }    public Float getTotalCurrent() {        return totalCurrent;    }    public void setTotalCurrent(Float totalCurrent) {        this.totalCurrent = totalCurrent;    }    public Float getSoc() {        return soc;    }    public void setSoc(Float soc) {        this.soc = soc;    }    public String getTestUserName() {        return testUserName;    }    public void setTestUserName(String testUserName) {        this.testUserName = testUserName;    }    public Integer getCityId() {        return cityId;    }    public void setCityId(Integer cityId) {        this.cityId = cityId;    }    public Integer getVehicleId() {        return vehicleId;    }    public void setVehicleId(Integer vehicleId) {        this.vehicleId = vehicleId;    }    @Override    public String toString() {        return "ResBatteryDataHistory{" +                "batteryNo:'" + batteryNo + '\'' +                ", batteryType:" + batteryType +                ", voltageDeviation:" + voltageDeviation +                ", totalVoltage:" + totalVoltage +                ", createTime:'" + createTime + '\'' +                ", createUser:" + createUser +                ", source:" + source +                ", vol1:" + vol1 +                ", vol2:" + vol2 +                ", vol3:" + vol3 +                ", vol4:" + vol4 +                ", vol5:" + vol5 +                ", vol6:" + vol6 +                ", vol7:" + vol7 +                ", vol8:" + vol8 +                ", vol9:" + vol9 +                ", vol10:" + vol10 +                ", vol11:" + vol11 +                ", vol12:" + vol12 +                ", vol13:" + vol13 +                ", vol14:" + vol14 +                ", vol15:" + vol15 +                ", vol16:" + vol16 +                ", vol17:" + vol17 +                ", vol18:" + vol18 +                ", vol19:" + vol19 +                ", temprature1:" + temprature1 +                ", temprature2:" + temprature2 +                ", chargeNum:" + chargeNum +                ", longtitude:" + longtitude +                ", latitude:" + latitude +                ", remarks:'" + remarks + '\'' +                ", totalCurrent:" + totalCurrent +                ", soc:" + soc +                ", testUserName:'" + testUserName + '\'' +                ", cityId:" + cityId +                ", vehicleId:" + vehicleId +                '}';    }}

封装查询条件类:

/** * * HBase条件查询封装实体类 * Created by liuhuichao on 2016/12/13. */public class QueryCondition {    String family; //列族    String qualifier; //列修饰符    CompareFilter.CompareOp  compareOp; //操作符    byte[] value; //列值    FilterList.Operator operator;  //连接操作符    public QueryCondition(String family, String qualifier, CompareFilter.CompareOp compareOp, byte[] value) {        this.family = family;        this.qualifier = qualifier;        this.compareOp = compareOp;        this.value = value;    }    public QueryCondition(String family, String qualifier, CompareFilter.CompareOp compareOp, byte[] value, FilterList.Operator operator) {        this.family = family;        this.qualifier = qualifier;        this.compareOp = compareOp;        this.value = value;        this.operator = operator;    }    public String getFamily() {        return family;    }    public void setFamily(String family) {        this.family = family;    }    public String getQualifier() {        return qualifier;    }    public void setQualifier(String qualifier) {        this.qualifier = qualifier;    }    public CompareFilter.CompareOp getCompareOp() {        return compareOp;    }    public void setCompareOp(CompareFilter.CompareOp compareOp) {        this.compareOp = compareOp;    }    public byte[] getValue() {        return value;    }    public void setValue(byte[] value) {        this.value = value;    }    public FilterList.Operator getOperator() {        return operator;    }    public void setOperator(FilterList.Operator operator) {        this.operator = operator;    }}

查询操作类:

/** * 功能:管理电池历史数据 * Created by liuhuichao on 2016/12/8. */public class HBaseBatteryDataManager extends Thread {    private static class HBaseBatteryDataMasterHolder{        private static final HBaseBatteryDataManager INSTANCE = new HBaseBatteryDataManager();    }    public  final String  colunm_family_baseData="baseData";//列族baseData    public  final String  colunm_family_extraData="extraData";//列族extraData    /**     * 构造:配置初始化     */    private HBaseBatteryDataManager() {        //集群环境下使用的配置代码      /*  config= HBaseConfiguration.create();        config.set("hbase.master",""); //HMaster地址        config.set("hbase.zookeeper.property.clientPort",""); //Zookeeper端口设置        config.set("hbase.zookeeper.quorum","");//Zookeeper队列名称        try{            table=new HTable(config, Bytes.toBytes("demo_table_name")); //连接表            admin=new HBaseAdmin(config);        }catch (IOException e){            e.printStackTrace();        }*/        //单机环境下的config        config= HBaseConfiguration.create();        config.set("hbase.zookeeper.quorum","lhc-centos");        try{            table=new HTable(config, Bytes.toBytes("batteryTest")); //连接表        }catch (IOException e){            e.printStackTrace();        }    }    /**     * 外部调用这个类的方法     * @return     */    public static final HBaseBatteryDataManager getInstance() {        return HBaseBatteryDataMasterHolder.INSTANCE;    }    private Configuration config;    public HTable table;    public HBaseAdmin admin;    /**     * 增加一条电池历史数据     * @param resBatteryDataHistory     */    public void addBatteryData(ResBatteryDataHistory resBatteryDataHistory) throws IOException {        if(resBatteryDataHistory==null){            return;        }        table.put(getSavePut(resBatteryDataHistory));        table.close();    }    /**     * 批量添加电池数据     * @param batteryList     */    public void addBatteryDataList(List
batteryList) throws IOException { List
puts = new ArrayList
(); for(ResBatteryDataHistory battery : batteryList){ puts.add(getSavePut(battery)); } table.put(puts); table.close(); } /** * 根据rowKey获取电池历史数据 * @param rowKey * @return */ public ResBatteryDataHistory getBatteryDataHistoryByRowKey(String rowKey) throws IOException { Get get=new Get(Bytes.toBytes(rowKey)); Result result=table.get(get); if(result==null){ return null; } return convertToData(result); } /** * 获取电池数据某个单元格的数据 * @param rowKey * @param colFamily * @param col * @return */ public byte[] getCellData(String rowKey,String colFamily,String col) throws IOException { Get get = new Get(Bytes.toBytes(rowKey)); get.addColumn(Bytes.toBytes(colFamily),Bytes.toBytes(col)); //获取的result数据是结果集,还需要格式化输出想要的数据才行 Result result = table.get(get); byte[] cellValue= result.getValue(colFamily.getBytes(),col==null?null:col.getBytes()); table.close(); return cellValue; } /** * 更新表中的一个单元格 * @param rowKey * @param familyName * @param columnName * @param value */ public void updateCell(String rowKey,String familyName, String columnName, byte[] value) throws IOException { Put put = new Put(Bytes.toBytes(rowKey)); put.addColumn(Bytes.toBytes(familyName), Bytes.toBytes(columnName), value); table.put(put); table.close(); } /** * 删除一个单元格 * @param rowKey * @param familyName * @param columnName */ public void deleteCell( String rowKey,String familyName, String columnName) throws IOException { Delete delete = new Delete(Bytes.toBytes(rowKey)); delete.addColumn(Bytes.toBytes(familyName), Bytes.toBytes(columnName)); table.delete(delete); table.close(); } /** * 删除一行 * @param rowKey */ public void deleteAllColumns(String rowKey) throws IOException { Delete delete = new Delete(Bytes.toBytes(rowKey)); table.delete(delete); table.close(); } /** * 获取所有数据 * @return */ public List
getResultScans() throws IOException { Scan scan = new Scan(); ResultScanner resultScanner = null; List
list=new ArrayList<>() ; long beginTime=System.currentTimeMillis(); resultScanner=table.getScanner(scan); long endTime=System.currentTimeMillis(); double spendTime=(endTime-beginTime)/1000.0; System.out.println("扫描表共计时间:------"+spendTime); if(resultScanner==null){ return null; } for (Result result : resultScanner){ list.add(convertToData(result)); } table.close(); return list; } /** * * 根据单个列查询数据 【and查询】 * 例如,查询extraData:create_user==‘1’的所有数据 * @param queryConditionList 条件拼接列表 * @return * @throws IOException */ public List
QueryDataByConditionsAnd(List
queryConditionList) throws IOException { if(queryConditionList==null || queryConditionList.size()<1){ return null; } ResultScanner rs = null; List
list=new ArrayList<>() ; List
filters = new ArrayList
(); for(QueryCondition query : queryConditionList){ SingleColumnValueFilter filter = new SingleColumnValueFilter( Bytes.toBytes(query.getFamily()), Bytes.toBytes(query.getQualifier()), query.getCompareOp(),query.getValue()); filter.setFilterIfMissing(true); //设置这些列不存在的数据不返回 filters.add(filter); } FilterList filterList = new FilterList(filters); Scan scan = new Scan(); scan.setFilter(filterList); rs = table.getScanner(scan); for (Result result : rs){ list.add(convertToData(result)); } table.close(); return list; } /** * 查询数据 【Or查询】 * @param queryConditionList * @return */ public List
QueryDataByConditionsOr(List
queryConditionList) throws IOException { if(queryConditionList==null || queryConditionList.size()<1){ return null; } List
list=new ArrayList<>() ; ResultScanner rs = null; List
filters = new ArrayList
(); Scan scan = new Scan(); for(QueryCondition query : queryConditionList){ SingleColumnValueFilter filter = new SingleColumnValueFilter( Bytes.toBytes(query.getFamily()), Bytes.toBytes(query.getQualifier()), query.getCompareOp(),query.getValue()); filter.setFilterIfMissing(true); filters.add(filter); } FilterList filterList = new FilterList( FilterList.Operator.MUST_PASS_ONE, filters); scan.setFilter(filterList); rs = table.getScanner(scan); for (Result result : rs){ list.add(convertToData(result)); } table.close(); return list; } /** * 混合条件查询 * @param queryConditionList * @return * @throws IOException */ public List
QueryDataByConditions(List
queryConditionList) throws IOException { if(queryConditionList==null || queryConditionList.size()<1){ return null; } List
list=new ArrayList<>() ; Scan scan = new Scan(); FilterList filterList = null; FilterList.Operator operator = null; List
filters = new ArrayList
(); ResultScanner rs = null; for(QueryCondition query : queryConditionList){ SingleColumnValueFilter filter = new SingleColumnValueFilter( Bytes.toBytes(query.getFamily()), Bytes.toBytes(query.getQualifier()), query.getCompareOp(),query.getValue()); filter.setFilterIfMissing(true); //去掉没有这种列的数据 if(query.getOperator()!=null){//有操作符的时候 if (operator == null) { operator = query.getOperator(); filterList = new FilterList( query.getOperator()); filterList.addFilter(filter); System.out.println("filterList==1" + filterList); } else if (operator.equals(query.getOperator())) { filterList.addFilter(filter); } else { filterList.addFilter(filter); System.out.println("filterList==2" + filterList); FilterList addFilterList = new FilterList( query.getOperator()); addFilterList.addFilter(filterList); System.out.println("addFilterList==1" + addFilterList); filterList = addFilterList; System.out.println("filterList==3" + filterList); } } else { if (filterList == null) { filterList = new FilterList(FilterList.Operator.MUST_PASS_ALL);// 默认只有一个条件的时候 } filterList.addFilter(filter); } } scan.setFilter(filterList); rs = table.getScanner(scan); for (Result result : rs){ list.add(convertToData(result)); } table.close(); return list; } /** *混合条件分页查询 * @param queryConditionList * @param pageSize * @param lastRow * @return */ public List
QueryDataByConditionsAndPage(List
queryConditionList, int pageSize,byte[] lastRow) throws IOException { List
list=new ArrayList<>() ; final byte[] POSTFIX = new byte[] { 0x00 }; ResultScanner rs = null; Scan scan = new Scan(); FilterList filterList = null; FilterList.Operator operator = null; //拼接查询条件 for(QueryCondition query : queryConditionList){ SingleColumnValueFilter filter = new SingleColumnValueFilter( Bytes.toBytes(query.getFamily()), Bytes.toBytes(query.getQualifier()), query.getCompareOp(),query.getValue()); filter.setFilterIfMissing(true); //去掉没有这种列的数据 if(query.getOperator()!=null){//有操作符的时候 if (operator == null) { operator = query.getOperator(); filterList = new FilterList( query.getOperator()); filterList.addFilter(filter); System.out.println("filterList==1" + filterList); } else if (operator.equals(query.getOperator())) { filterList.addFilter(filter); } else { filterList.addFilter(filter); System.out.println("filterList==2" + filterList); FilterList addFilterList = new FilterList( query.getOperator()); addFilterList.addFilter(filterList); System.out.println("addFilterList==1" + addFilterList); filterList = addFilterList; System.out.println("filterList==3" + filterList); } } else { if (filterList == null) { filterList = new FilterList(FilterList.Operator.MUST_PASS_ALL);// 默认只有一个条件的时候 } filterList.addFilter(filter); } } FilterList pageFilterList = new FilterList(FilterList.Operator.MUST_PASS_ALL);// 默认只有一个条件的时候 Filter pageFilter = new PageFilter(pageSize); pageFilterList.addFilter(pageFilter); pageFilterList.addFilter(filterList); if (lastRow != null) { // 注意这里添加了POSTFIX操作,不然死循环了 byte[] startRow = Bytes.add(lastRow, POSTFIX); scan.setStartRow(startRow); } System.out.println(pageFilterList + ":pageFilterList"); scan.setFilter(pageFilterList); rs = table.getScanner(scan); for (Result result : rs){ list.add(convertToData(result)); } table.close(); return list; } /** * 分页查询——无条件 * @param pageSize * @param lastRow * @return * @throws IOException */ public List
QueryDataByPage( int pageSize,byte[] lastRow) throws IOException { List
list=new ArrayList<>() ; final byte[] POSTFIX = new byte[] { 0x00 }; Scan scan = new Scan(); ResultScanner resultScanner = null; Table table = null; Filter filter = new PageFilter(pageSize); scan.setFilter(filter); if (lastRow != null) { // 注意这里添加了POSTFIX操作,不然死循环了 byte[] startRow = Bytes.add(lastRow, POSTFIX); scan.setStartRow(startRow); } resultScanner = table.getScanner(scan); for (Result result : resultScanner){ list.add(convertToData(result)); } table.close(); return list; } /** * 查询总行数 * @param pageSize * @return */ public int QueryDataByPage(int pageSize) throws IOException { final byte[] POSTFIX = new byte[] { 0x00 }; int totalRows = 0; Filter filter = new PageFilter(pageSize); byte[] lastRow = null; while (true) { Scan scan = new Scan(); scan.setFilter(filter); if (lastRow != null) { // 注意这里添加了POSTFIX操作,不然死循环了 byte[] startRow = Bytes.add(lastRow, POSTFIX); scan.setStartRow(startRow); } ResultScanner scanner = table.getScanner(scan); int localRows = 0; Result result; while ((result = scanner.next()) != null) { System.out.println(localRows++ + ":" + result); totalRows++; lastRow = result.getRow(); } scanner.close(); if (localRows == 0) break; } return totalRows; } /** * 将Result转换成电池历史数据对象 * @param result * @return */ private ResBatteryDataHistory convertToData(Result result){ ResBatteryDataHistory resBatteryDataHistory=new ResBatteryDataHistory(); if(result==null || result.list().size()<1){ return null; } for(KeyValue kv :result.raw()){ if(Bytes.toString(kv.getFamily()).equals(colunm_family_baseData)){ switch (Bytes.toString(kv.getQualifier())){ case "battery_no": resBatteryDataHistory.setBatteryNo(Bytes.toString(kv.getValue())); break; case "battery_type": resBatteryDataHistory.setBatteryType(Bytes.toInt(kv.getValue())); break; case "voltage_deviation": resBatteryDataHistory.setVoltageDeviation(Bytes.toFloat(kv.getValue())); break; case "total_voltage": resBatteryDataHistory.setTotalVoltage(Bytes.toFloat(kv.getValue())); break; case "total_current": resBatteryDataHistory.setTotalCurrent(Bytes.toFloat(kv.getValue())); break; case "vol1": resBatteryDataHistory.setVol1(Bytes.toFloat(kv.getValue())); break; case "vol2": resBatteryDataHistory.setVol2(Bytes.toFloat(kv.getValue())); break; case "vol3": resBatteryDataHistory.setVol3(Bytes.toFloat(kv.getValue())); break; case "vol4": resBatteryDataHistory.setVol4(Bytes.toFloat(kv.getValue())); break; case "vol5": resBatteryDataHistory.setVol5(Bytes.toFloat(kv.getValue())); break; case "vol6": resBatteryDataHistory.setVol6(Bytes.toFloat(kv.getValue())); break; case "vol7": resBatteryDataHistory.setVol7(Bytes.toFloat(kv.getValue())); break; case "vol8": resBatteryDataHistory.setVol8(Bytes.toFloat(kv.getValue())); break; case "vol9": resBatteryDataHistory.setVol9(Bytes.toFloat(kv.getValue())); break; case "vol10": resBatteryDataHistory.setVol10(Bytes.toFloat(kv.getValue())); break; case "vol11": resBatteryDataHistory.setVol11(Bytes.toFloat(kv.getValue())); break; case "vol12": resBatteryDataHistory.setVol12(Bytes.toFloat(kv.getValue())); break; case "vol13": resBatteryDataHistory.setVol13(Bytes.toFloat(kv.getValue())); break; case "vol14": resBatteryDataHistory.setVol14(Bytes.toFloat(kv.getValue())); break; case "vol15": resBatteryDataHistory.setVol15(Bytes.toFloat(kv.getValue())); break; case "vol16": resBatteryDataHistory.setVol16(Bytes.toFloat(kv.getValue())); break; case "vol17": resBatteryDataHistory.setVol17(Bytes.toFloat(kv.getValue())); break; case "vol18": resBatteryDataHistory.setVol18(Bytes.toFloat(kv.getValue())); break; case "vol19": resBatteryDataHistory.setVol19(Bytes.toFloat(kv.getValue())); break; case "temprature1": resBatteryDataHistory.setTemprature1(Bytes.toFloat(kv.getValue())); break; case "temprature2": resBatteryDataHistory.setTemprature2(Bytes.toFloat(kv.getValue())); break; case "charge_num": resBatteryDataHistory.setChargeNum(Bytes.toFloat(kv.getValue())); break; case "soc": resBatteryDataHistory.setSoc(Bytes.toFloat(kv.getValue())); break; case "create_time": resBatteryDataHistory.setCreateTime(Bytes.toString(kv.getValue())); break; case "city_id": resBatteryDataHistory.setCityId(Bytes.toInt(kv.getValue())); break; case "vehicle_id": resBatteryDataHistory.setVehicleId(Bytes.toInt(kv.getValue())); break; } } if(Bytes.toString(kv.getFamily()).equals(colunm_family_extraData)){ switch (Bytes.toString(kv.getQualifier())){ case "create_user" : resBatteryDataHistory.setCreateUser(Bytes.toInt(kv.getValue())); break; case "source" : resBatteryDataHistory.setSource(Bytes.toInt(kv.getValue())); break; case "longtitude" : resBatteryDataHistory.setLongtitude(Bytes.toFloat(kv.getValue())); break; case "latitude" : resBatteryDataHistory.setLatitude(Bytes.toFloat(kv.getValue())); break; case "remarks" : resBatteryDataHistory.setRemarks(Bytes.toString(kv.getValue())); break; case "test_user_name" : resBatteryDataHistory.setTestUserName(Bytes.toString(kv.getValue())); break; } } } return resBatteryDataHistory; } /** * 获取插入数据的Put对象 * @param resBatteryDataHistory * @return */ private Put getSavePut(ResBatteryDataHistory resBatteryDataHistory){ Put put=new Put(Bytes.toBytes(resBatteryDataHistory.getBatteryNo()+System.currentTimeMillis())); put.addColumn(Bytes.toBytes(colunm_family_baseData),Bytes.toBytes("battery_no"),Bytes.toBytes(resBatteryDataHistory.getBatteryNo()));//电池编号 put.addColumn(Bytes.toBytes(colunm_family_baseData),Bytes.toBytes("battery_type"),Bytes.toBytes(resBatteryDataHistory.getBatteryType()));//电池类型 put.addColumn(Bytes.toBytes(colunm_family_baseData),Bytes.toBytes("voltage_deviation"),Bytes.toBytes(resBatteryDataHistory.getVoltageDeviation()));//压差 put.addColumn(Bytes.toBytes(colunm_family_baseData),Bytes.toBytes("total_voltage"),Bytes.toBytes(resBatteryDataHistory.getTotalVoltage()));//总电压 put.addColumn(Bytes.toBytes(colunm_family_baseData),Bytes.toBytes("total_current"),Bytes.toBytes(resBatteryDataHistory.getTotalCurrent()));//总电流 put.addColumn(Bytes.toBytes(colunm_family_baseData),Bytes.toBytes("vol1"),Bytes.toBytes(resBatteryDataHistory.getVol1()));//电芯电压1 put.addColumn(Bytes.toBytes(colunm_family_baseData),Bytes.toBytes("vol2"),Bytes.toBytes(resBatteryDataHistory.getVol2()));//电芯电压2 put.addColumn(Bytes.toBytes(colunm_family_baseData),Bytes.toBytes("vol3"),Bytes.toBytes(resBatteryDataHistory.getVol3()));//电芯电压3 put.addColumn(Bytes.toBytes(colunm_family_baseData),Bytes.toBytes("vol4"),Bytes.toBytes(resBatteryDataHistory.getVol4()));//电芯电压4 put.addColumn(Bytes.toBytes(colunm_family_baseData),Bytes.toBytes("vol5"),Bytes.toBytes(resBatteryDataHistory.getVol5()));//电芯电压5 put.addColumn(Bytes.toBytes(colunm_family_baseData),Bytes.toBytes("vol6"),Bytes.toBytes(resBatteryDataHistory.getVol6()));//电芯电压6 put.addColumn(Bytes.toBytes(colunm_family_baseData),Bytes.toBytes("vol7"),Bytes.toBytes(resBatteryDataHistory.getVol7()));//电芯电压7 put.addColumn(Bytes.toBytes(colunm_family_baseData),Bytes.toBytes("vol8"),Bytes.toBytes(resBatteryDataHistory.getVol8()));//电芯电压8 put.addColumn(Bytes.toBytes(colunm_family_baseData),Bytes.toBytes("vol9"),Bytes.toBytes(resBatteryDataHistory.getVol9()));//电芯电压9 put.addColumn(Bytes.toBytes(colunm_family_baseData),Bytes.toBytes("vol10"),Bytes.toBytes(resBatteryDataHistory.getVol10()));//电芯电压10 put.addColumn(Bytes.toBytes(colunm_family_baseData),Bytes.toBytes("vol11"),Bytes.toBytes(resBatteryDataHistory.getVol11()));//电芯电压11 put.addColumn(Bytes.toBytes(colunm_family_baseData),Bytes.toBytes("vol12"),Bytes.toBytes(resBatteryDataHistory.getVol12()));//电芯电压12 put.addColumn(Bytes.toBytes(colunm_family_baseData),Bytes.toBytes("vol13"),Bytes.toBytes(resBatteryDataHistory.getVol13()));//电芯电压13 put.addColumn(Bytes.toBytes(colunm_family_baseData),Bytes.toBytes("vol14"),Bytes.toBytes(resBatteryDataHistory.getVol14()));//电芯电压14 put.addColumn(Bytes.toBytes(colunm_family_baseData),Bytes.toBytes("vol15"),Bytes.toBytes(resBatteryDataHistory.getVol15()));//电芯电压15 put.addColumn(Bytes.toBytes(colunm_family_baseData),Bytes.toBytes("vol16"),Bytes.toBytes(resBatteryDataHistory.getVol16()));//电芯电压16 put.addColumn(Bytes.toBytes(colunm_family_baseData),Bytes.toBytes("vol17"),Bytes.toBytes(resBatteryDataHistory.getVol17()));//电芯电压17 put.addColumn(Bytes.toBytes(colunm_family_baseData),Bytes.toBytes("vol18"),Bytes.toBytes(resBatteryDataHistory.getVol18()));//电芯电压18 put.addColumn(Bytes.toBytes(colunm_family_baseData),Bytes.toBytes("vol19"),Bytes.toBytes(resBatteryDataHistory.getVol19()));//电芯电压19 put.addColumn(Bytes.toBytes(colunm_family_baseData),Bytes.toBytes("temprature1"),Bytes.toBytes(resBatteryDataHistory.getTemprature1()));//温度1 put.addColumn(Bytes.toBytes(colunm_family_baseData),Bytes.toBytes("temprature2"),Bytes.toBytes(resBatteryDataHistory.getTemprature2()));//温度2 put.addColumn(Bytes.toBytes(colunm_family_baseData),Bytes.toBytes("charge_num"),Bytes.toBytes(resBatteryDataHistory.getChargeNum()));//充电次数 put.addColumn(Bytes.toBytes(colunm_family_baseData),Bytes.toBytes("soc"),Bytes.toBytes(resBatteryDataHistory.getSoc()));//总电压 put.addColumn(Bytes.toBytes(colunm_family_baseData),Bytes.toBytes("create_time"),Bytes.toBytes(resBatteryDataHistory.getCreateTime()));//创建时间 if(resBatteryDataHistory.getCityId()!=null){ put.addColumn(Bytes.toBytes(colunm_family_baseData),Bytes.toBytes("city_id"),Bytes.toBytes(resBatteryDataHistory.getCityId()));//城市ID } if(resBatteryDataHistory.getVehicleId()!=null){ put.addColumn(Bytes.toBytes(colunm_family_baseData),Bytes.toBytes("vehicle_id"),Bytes.toBytes(resBatteryDataHistory.getVehicleId()));//车辆ID } put.addColumn(Bytes.toBytes(colunm_family_extraData),Bytes.toBytes("create_user"),Bytes.toBytes(resBatteryDataHistory.getCreateUser()));//创建人 put.addColumn(Bytes.toBytes(colunm_family_extraData),Bytes.toBytes("source"),Bytes.toBytes(resBatteryDataHistory.getSource()));//数据来源 put.addColumn(Bytes.toBytes(colunm_family_extraData),Bytes.toBytes("longtitude"),Bytes.toBytes(resBatteryDataHistory.getLongtitude()));//精度 put.addColumn(Bytes.toBytes(colunm_family_extraData),Bytes.toBytes("latitude"),Bytes.toBytes(resBatteryDataHistory.getLatitude()));//纬度 put.addColumn(Bytes.toBytes(colunm_family_extraData),Bytes.toBytes("remarks"),Bytes.toBytes(resBatteryDataHistory.getRemarks()));//备注 put.addColumn(Bytes.toBytes(colunm_family_extraData),Bytes.toBytes("test_user_name"),Bytes.toBytes(resBatteryDataHistory.getTestUserName()));//测试用户 return put; } }

单元测试代码:

/** * 功能:测试HBase的工具类 * Created by liuhuichao on 2016/12/14. */public class HBaseBatteryManagerTest {    HBaseBatteryDataManager manager= HBaseBatteryDataManager.getInstance();    /**     * 测试Hbase的单条Put操作     */    @Test    public void testPut() throws IOException {        ResBatteryDataHistory battery=new ResBatteryDataHistory();        battery.setBatteryNo("4015106002");        battery.setBatteryType(0);        battery.setVoltageDeviation(1F);        battery.setTotalVoltage(1F);        battery.setCreateTime("2016-12-12 11:11:11");        battery.setCreateUser(250);        battery.setSource(3);        battery.setVol1(1F);        battery.setVol2(1F);        battery.setVol3(1F);        battery.setVol4(1F);        battery.setVol5(1F);        battery.setVol6(1F);        battery.setVol7(1F);        battery.setVol8(1F);        battery.setVol9(1F);        battery.setVol10(1F);        battery.setVol11(1F);        battery.setVol12(1F);        battery.setVol13(1F);        battery.setVol14(1F);        battery.setVol15(1F);        battery.setVol16(1F);        battery.setVol17(1F);        battery.setVol18(1F);        battery.setVol19(1F);        battery.setTemprature1(1F);        battery.setTemprature2(1F);        battery.setChargeNum(11F);        battery.setLongtitude(12F);        battery.setLatitude(12F);        battery.setRemarks("lhc-代码测试");        battery.setTotalCurrent(22F);        battery.setSoc(22F);        battery.setTestUserName("lhc");        battery.setCityId(11011);        battery.setVehicleId(11011);        manager.addBatteryData(battery);    }    @Test    public void addBatteryDataListTest() throws IOException {        List
batteryList=new ArrayList<>(); for(int i=20000;i<200000;i++){ ResBatteryDataHistory battery=new ResBatteryDataHistory(); battery.setBatteryNo(String.valueOf(i)); battery.setBatteryType(0); battery.setVoltageDeviation(1F); battery.setTotalVoltage(1F); battery.setCreateTime("2016-12-12 11:11:11"); battery.setCreateUser(250); battery.setSource(3); battery.setVol1(1F); battery.setVol2(1F); battery.setVol3(1F); battery.setVol4(1F); battery.setVol5(1F); battery.setVol6(1F); battery.setVol7(1F); battery.setVol8(1F); battery.setVol9(1F); battery.setVol10(1F); battery.setVol11(1F); battery.setVol12(1F); battery.setVol13(1F); battery.setVol14(1F); battery.setVol15(1F); battery.setVol16(1F); battery.setVol17(1F); battery.setVol18(1F); battery.setVol19(1F); battery.setTemprature1(1F); battery.setTemprature2(1F); battery.setChargeNum(11F); battery.setLongtitude(12F); battery.setLatitude(12F); battery.setRemarks("lhc-代码测试"); battery.setTotalCurrent(22F); battery.setSoc(22F); battery.setTestUserName("lhc"); battery.setCityId(11011); battery.setVehicleId(11011); batteryList.add(battery); } long begin=System.currentTimeMillis(); System.out.println("开始存入:"+begin); manager.addBatteryDataList(batteryList); long end=System.currentTimeMillis(); System.out.println("结束存入:"+end); System.out.println((end-begin)/1000.0); } /** * 测试根据RowKey获取数据 * @throws IOException */ @Test public void testGetByRowKey() throws IOException { System.out.println(manager.getBatteryDataHistoryByRowKey("40151060021481685540182")); } /** * 测试获取单元格数据 */ @Test public void getCellDataTest() throws IOException { System.out.println(Bytes.toFloat(manager.getCellData("40151060021481685540182",manager.colunm_family_baseData,"vol1"))); } /** * 更新用户名 * @throws IOException */ @Test public void updateCellTest() throws IOException { System.out.println(manager.getBatteryDataHistoryByRowKey("40151060021481685540182")); manager.updateCell("40151060021481685540182",manager.colunm_family_extraData,"test_user_name",Bytes.toBytes("liuhuichao128")); System.out.println(manager.getBatteryDataHistoryByRowKey("40151060021481685540182")); } /** * 测试表扫描 * @throws IOException */ @Test public void scanTest() throws IOException { System.out.println( manager.getResultScans().size()); } /** * 测试and查询 */ @Test public void QueryDataByConditionsAnd() throws IOException { List
queryConditionList=new ArrayList<>(); queryConditionList.add(new QueryCondition(manager.colunm_family_baseData,"vol1", CompareFilter.CompareOp.EQUAL,Bytes.toBytes(1F))); long begin=System.currentTimeMillis(); System.out.println(manager.QueryDataByConditionsAnd(queryConditionList).size()); long end=System.currentTimeMillis(); System.out.println((end-begin)/1000.00); } /** * 测试or查询 * @throws IOException */ @Test public void QueryDataByConditionsOrTest() throws IOException { List
queryConditionList=new ArrayList<>(); queryConditionList.add(new QueryCondition(manager.colunm_family_baseData,"vol1", CompareFilter.CompareOp.EQUAL,Bytes.toBytes(1F))); System.out.println(manager.QueryDataByConditionsOr(queryConditionList)); }}

自行体会吧。

转载地址:http://puznl.baihongyu.com/

你可能感兴趣的文章
微软必应从.NET Core 2.1获得了性能提升
查看>>
微信程序开发系列教程(三)使用微信API给微信用户发文本消息
查看>>
linux 历史(histroy)命令记录过滤
查看>>
Namenode主备切换或报 IPC Server handler 23 on 8020
查看>>
windows server 2008虚拟化技术一览
查看>>
图案研究2--九格定义
查看>>
java web应用解决乱码问题
查看>>
java各种容器内部实现原理
查看>>
linux下同时安装多个tomcat实例
查看>>
validate做前端表单验证
查看>>
主动,是因为在乎,不再联系,是因为感到自己多余
查看>>
PHP语言中global和$GLOBALS[]的分析
查看>>
Delphi 的编译指令(1): $DEFINE、$UNDEF、$IFDEF、$ELSE、$ENDI
查看>>
轻量级HTTP服务器Nginx(配置与调试Nginx)(转)
查看>>
推荐给c++学习者的经典
查看>>
Windows下如何安装MariaDB
查看>>
GraphView
查看>>
php调试方法
查看>>
js模仿flash写字动画
查看>>
通过变长数组(VLA)来看编译器的不同
查看>>