Skip to content

HBase 读取数据像JPA一样简单,提供了基于注解的ORM支持,已经在好几个线上项目中压测了

Notifications You must be signed in to change notification settings

WTree/HBase-Reader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

使用这个库,读取HBase时可以像JPA的方式一样去获取数据,使用api相关的工程

使用教程

1、使用前的准备要配置好HBase 集群的连接

2、配置仓库地址

<repositories>
     <repository>
	<id>jitpack.io</id>
	    <url>https://jitpack.io</url>
    </repository>
</repositories>
	
	
<dependency>
     <groupId>com.github.WTree</groupId>
     <artifactId>HBase-Reader</artifactId>
     <version>v0.1</version>
</dependency>
	 

3、配置要读取的实体

@HBaseInfo(tableName = "product", tableNameSpace = "ay")
public class ProductInfo implements IFieldCheck, Serializable {

    //family 默认值是r 如果是这个可以不配置
    @HBaseFieldName(PackType = EnumPack.PACK_BYTES, HBaseKey = "i", family = "e")
    private String id;
    
    @HBaseFieldName(PackType = EnumPack.PACK_BYTES, HBaseKey = "t", family = "e")
    private String title;
    
    @HBaseFieldName(PackType = EnumPack.PACK_BYTES, HBaseKey = "p", family = "e")
    private String price;
    
    //这个为了允许实体里面的部分字段为空
    @Override
    public boolean isEmptyValue() {
        return StringUtils.isEmpty(id);
    }

4、读取

  byte[] rowKey = DigestUtils.sha1Hex("34514").getBytes();
  //这个callBack是为了只读取部分字段而设置的
  IGetFieldCallBack callBack = () -> new String[]{"id", "price"};
  //getConnection() 自己集群的连接池
  ProductInfo info = HBaseReadHelper.read(getConnection(), ProductInfo.class, callBack, rowKey);

  //如果想把几个想读的字段直接转成JSON 对象,可以使用这个
  BeanFactoryInterceptorHelper.intercept(info, callBack.fieldValue())
  

About

HBase 读取数据像JPA一样简单,提供了基于注解的ORM支持,已经在好几个线上项目中压测了

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages