SlideShare a Scribd company logo
https://github.com/zhang-xzhi/simplehbase
https://github.com/zhang-xzhi/simplehbaseviewer
xinzhi.zhang
简介
小例子
Simplehbase技术依赖
Simplehbase架构与组件
Simplehbase数据映射
code test doc
simplehbaseviewer
提纲
simplehbase是java和hbase之间的轻量级中间件。 主要包含以下功能。
1. 数据类型映射:java类型和hbase的bytes之间的数据转换。
2. 简单操作封装:封装了hbase的put,get,scan等操作为简单的java操作
方式。
3. hbase query封装:封装了hbase的filter,可以使用sql-like的方式操作
hbase。
4. 动态query封装:类似于myibatis,可以使用xml配置动态语句查询
hbase。
5. insert,update支持: 建立在hbase的checkAndPut之上。
6. hbase多版本支持:提供接口可以对hbase多版本数据进行查询,映射。
7. hbase原生接口支持。
简介
小例子 - put
小例子 - search
小例子 - dynamic query
小例子 - delete
小例子 - POJO
小例子 - rowkey
小例子 - simplehbaseclient
小例子 – config file
Simplehbase技术依赖
xml
Spring
Resource
anltr4 annotation
tomcat
Hbase
client
API
maven reflection
simplehbaseviewer
Simplehbase架构
hbase
simplehbaseclient
Java appJOPO config
Client configRowKey
Simplehbase架构
hbase
simplehbaseclient
Java appJOPO config
Client configRowKey
Client config
Client config
HBaseDataSource
Hbase,zk config
自定义配置:
HTABLE_POOL_SIZE
HBaseTableConfig
Table schema
HQL
SimpleHbase
RuntimeSetting
Scan caching size
Delete batch size
RowKeyTextFunc
LiteralInterpreter
Client config
Client config
HBaseDataSource
Hbase,zk config
自定义配置:
HTABLE_POOL_SIZE
HBaseTableConfig
Table schema
HQL
SimpleHbase
RuntimeSetting
Scan caching size
Delete batch size
RowKeyTextFunc
LiteralInterpreter
Client config
Client config
HBaseDataSource
Hbase,zk config
自定义配置:
HTABLE_POOL_SIZE
HBaseTableConfig
Table schema
HQL
SimpleHbase
RuntimeSetting
Scan caching size
Delete batch size
RowKeyTextFunc
LiteralInterpreter
TableSchema
定义htable的schema。
tableName 必填 表名。
defaultFamily 选填 默认family名。
rowKeyHandlerName 选填 rowkey由bytes转为Java object的handler类名。
默认值为BytesRowKeyHandler。
HBaseColumnSchema中
family
如果指定了defaultFamily,则可以不填该列的family,如果未指定defaultFamily,则必填。
qualifier
列名 必填
typeName
java类型 必填
handler
java类型和bytes之间的数据转换handler,选填,不填则使用默认的handler。
TableSchema
typeName对于普通java类型需要使用全类名。
对于以下类型可以使用缩写。
byte short int long char float double boolean
Byte Short Int Long Char Float Double Boolean
string String date Date
TableSchema
当不指定handler时,使用如下默认handler。
boolean Boolean BooleanHandler 1 byte 保存。
byte Byte ByteHandler 1 byte 保存。
char Character CharacterHandler 2 bytes 保存。
double Double 8 bytes 保存。
float Float 4 bytes 保存。
int Integer 4 bytes 保存。
long Long 8 bytes 保存。
short Short 2 bytes 保存。
String utf-8编码后保存。
Date DateHandler 8 bytes 保存。保存getTime值。
Enum name utf-8编码后保存。
TypeHandler
自定义typehandler。
可以通过实现TypeHandler来自定义TypeHandler。 推荐直接extends
AbstractTypeHandler实现。TypeHandler定义如下
TypeHandler
Client config
Client config
HBaseDataSource
Hbase,zk config
自定义配置:
HTABLE_POOL_SIZE
HBaseTableConfig
Table schema
HQL
SimpleHbase
RuntimeSetting
Scan caching size
Delete batch size
RowKeyTextFunc
LiteralInterpreter
hbase query language
HQL
目前simplehbase支持以下查询语句。
Select条件语句
Count条件语句
HQL
列名 二元比较符 比较值
lessequal less greaterequal greater notequal equal
String类型特有的二元比较符
notmatch match
包含操作符
in notin
in ( 常量 , 常量 , 常量 )
in 变量 变量必须为列表
notin ( 常量 , 常量 , 常量 )
notin 变量 变量必须为列表
between操作符
between 常量 and 常量
between 变量 and 变量
notbetween 常量 and 常量
notbetween 变量 and 变量
HQL - 二元操作符
列名 isnull
列名 isnotnull
列名 ismissing
列名 isnotmissing
HQL – 单目操作符
逻辑连接符
and or
优先级符
小括号()
HQL – 其他操作符
常量使用字符串外包双引号的形式。如"1","2011-10-10"。
目前支持的常量类型。
String,Boolean,Byte,Short,Character,Integer,Long,Float,Double。
Date 支持格式
yyyy-MM-dd_HH:mm:ss:SSS
yyyy-MM-dd_HH:mm:ss
yyyy-MM-dd_HH:mm
yyyy-MM-dd_HH
yyyy-MM-dd
Enum支持name的字符串表示。
HQL – 常量
另外,支持用户自定义常量解释器。
具体请参考SimpleHbaseRuntimeSetting和LiteralInterpreter。
HQL – 常量
变量使用字符串外包#的形式。如#name#,#age#。
由查询时的Map对象传入。#key#自动解析参数map中的value。
HQL – 变量
DHQL
dynamic hbase query language
simplehbase支持动态查询,动态查询可以避免应用代码大量if-else之类的
判断,拼接查询条件,提高代码质量。
DHQL
DHQL -单目动态语句
DHQL -双目动态语句
DHQL - Dynamic
Client config
Client config
HBaseDataSource
Hbase,zk config
自定义配置:
HTABLE_POOL_SIZE
HBaseTableConfig
Table schema
HQL
SimpleHbase
RuntimeSetting
Scan caching size
Delete batch size
RowKeyTextFunc
LiteralInterpreter
Client config
Client config
HBaseDataSource
Hbase,zk config
自定义配置:
HTABLE_POOL_SIZE
HBaseTableConfig
Table schema
HQL
SimpleHbase
RuntimeSetting
Scan caching size
Delete batch size
RowKeyTextFunc
LiteralInterpreter
Rowkey字符串函数。
转换string为RowKey对象。
主要为simplebaseviewer中使用。
RowKeyTextFunc
Client config
Client config
HBaseDataSource
Hbase,zk config
自定义配置:
HTABLE_POOL_SIZE
HBaseTableConfig
Table schema
HQL
SimpleHbase
RuntimeSetting
Scan caching size
Delete batch size
RowKeyTextFunc
LiteralInterpreter
支持用户自定义常量解释器。
上下文自动类型感知。
如 id equal “abc” 当id的java类型设为A时(simplehbase默认不支持的类型),
需要自定义常量解释器来解释”abc”的含义,转换”abc”为A类型的实例。
LiteralInterpreter
Simplehbase架构
hbase
simplehbaseclient
Java appJOPO config
Client configRowKey
转换java对象为hbase的rowkey。
框架提供了一些简单的实现。
RowKey
Simplehbase架构
hbase
simplehbaseclient
Java appJOPO config
Client configRowKey
JOPO
config
@HBaseColumn
@HBaseTable@HBaseVersion
JOPO config
Simplehbase架构
hbase
simplehbaseclient
Java appJOPO config
Client configRowKey
simplehbaseclient
分层服务
BasicService
AggregateService
SimpleHbaseVersionedService
HbaseMultipleVersionService
HbaseRawService
HbaseService
HBaseDataSourceAware
HBaseTableConfigAware
SimpleHbaseRuntimeSettingAware
BasicService
AggregateService
SimpleHbaseVersionedService
HbaseMultipleVersionService
HbaseRawService
HbaseService
Simplehbase数据映射
Rowkey bytes
Cf:column bytes
Cf:column bytes
HBase
RowKeyObject JAVATYPE
HQL rowkey 字符串 HQL 中常量字符串
LiteralInterpreter
大量默认实现
TypeHandler
大量默认实现
RowKeyTextFunc
少量默认实现
RowKey
少量实现
RowKeyHandler
少量实现
https://github.com/zhang-xzhi/simplehbase
https://github.com/zhang-xzhi/simplehbase/wiki
https://github.com/zhang-xzhi/simplehbaseviewer
https://github.com/zhang-xzhi/simplehbaseviewer/wiki
Code test doc
simplehbaseviewer是基于simplehbase的web操作界面.
目前提供以下功能:
htable插入数据,指定时间戳。
htable查询数据,SQL-Like,可以指定maxversion,时间戳范围,limit分
页查询。
htable删除数据。
自定义rowkey生成函数,方便查询。
例子: 月账单rowkey设计如下: md5(userId)前4位userId反转账单周期反
转 自定义一个rowkey生成函数billCategoryRowKey,配置在
simplehbaseviewer中,可以使用如下方式查询。
select * from billCategory rowkey is billCategoryRowKey
("2088123456781234_20140401")
simplehbaseviewer
htable查看功能:
查看htable信息。
查看htable数据列的配置信息。
查看该表上的rowkey函数。
查看该表上的字面常量解释器
simplehbaseviewer
simplehbaseviewer
simplehbaseviewer
simplehbaseviewer
END

More Related Content

PDF
配置Oracle 10g 双向流复制
PPT
MySQL源码分析.01.代码结构与基本流程
DOC
jsp基础速成精华讲解
PPSX
浅谈 My sql 性能调优
PPTX
Mongo db 特性
PDF
MySQL InnoDB 源码实现分析(一)
PPT
Oracle Data Buffer Cache
PDF
统一接入的架构思考
配置Oracle 10g 双向流复制
MySQL源码分析.01.代码结构与基本流程
jsp基础速成精华讲解
浅谈 My sql 性能调优
Mongo db 特性
MySQL InnoDB 源码实现分析(一)
Oracle Data Buffer Cache
统一接入的架构思考

What's hot (18)

PDF
用JAX-RS和Jersey完成RESTful Web Services
PPTX
NoSQL-MongoDB介紹
DOC
J2ee面试知识
PDF
数据库内核分享——第一期
PPT
MySQL源码分析.03.InnoDB 物理文件格式与数据恢复
PDF
J2ee经典学习笔记
DOC
中远公司 Java培训资料
DOC
Cassandra的初步使用及一些简单的操作
PPTX
Hbase拾荒者
PDF
数据库内核分享第二期(Inno db 日志 回滚段 & 崩溃恢复实现详解)
PPTX
Ch07 使用 JSTL
PDF
Hadoop基线选定
PPT
MySQL源码分析.02.Handler API
PDF
Kid171 chap03 traditional Chinese Version
PPTX
7, OCP - configure database for backup and recovery
PDF
1号店数据库架构
PPTX
3, OCP - instance management
PDF
A.oracle 查询结果的缓存问题
用JAX-RS和Jersey完成RESTful Web Services
NoSQL-MongoDB介紹
J2ee面试知识
数据库内核分享——第一期
MySQL源码分析.03.InnoDB 物理文件格式与数据恢复
J2ee经典学习笔记
中远公司 Java培训资料
Cassandra的初步使用及一些简单的操作
Hbase拾荒者
数据库内核分享第二期(Inno db 日志 回滚段 & 崩溃恢复实现详解)
Ch07 使用 JSTL
Hadoop基线选定
MySQL源码分析.02.Handler API
Kid171 chap03 traditional Chinese Version
7, OCP - configure database for backup and recovery
1号店数据库架构
3, OCP - instance management
A.oracle 查询结果的缓存问题
Ad

Similar to Hbase orm framework simplehbase0.5 introduction (20)

PDF
Hbase架构简介、实践
PPTX
Hbase简介与实践分享
PPT
基于hbase的实时计算框架prom(20111114)
PDF
HFile,Compact And Split of HBase
PPTX
An introduce to n hibernate (part 1) pub
PPT
Hbase
PDF
诗檀软件 Oracle开发优化基础
PPTX
数据库持续集成
PDF
Hbase性能测试文档
PPT
Hibernate教程
PPTX
淘宝Hadoop数据分析实践
PPTX
Ocean base 千亿级海量数据库-日照
PDF
Zh tw introduction_to_h_base
PPTX
Linux c++ 编程之链接与装载 -基础篇--v0.3--20120509
PDF
Servlet & JSP 教學手冊第二版 - 第 9 章:整合資料庫
PPT
Hibernate
PDF
Google protocol buffers简析
PPTX
高性能队列Fqueue的设计和使用实践
PDF
Hacking Nginx at Taobao
PPT
Cassandra简介.ppt
Hbase架构简介、实践
Hbase简介与实践分享
基于hbase的实时计算框架prom(20111114)
HFile,Compact And Split of HBase
An introduce to n hibernate (part 1) pub
Hbase
诗檀软件 Oracle开发优化基础
数据库持续集成
Hbase性能测试文档
Hibernate教程
淘宝Hadoop数据分析实践
Ocean base 千亿级海量数据库-日照
Zh tw introduction_to_h_base
Linux c++ 编程之链接与装载 -基础篇--v0.3--20120509
Servlet & JSP 教學手冊第二版 - 第 9 章:整合資料庫
Hibernate
Google protocol buffers简析
高性能队列Fqueue的设计和使用实践
Hacking Nginx at Taobao
Cassandra简介.ppt
Ad

Hbase orm framework simplehbase0.5 introduction