协处理器¶
起源¶
Hbase 作为列族数据库最经常被人诟病的特性包括: 1. 无法轻易建立“二级索引”; 2. 难以执 行求和、计数、排序等操作。
HBase 在 0.92 之后引入了协处理器(coprocessors),实现一些激动人心的新特性:能够轻易建立二次索引、复杂过滤器(谓词下推)以及访问控制等。
协处理器有两种: observer 和 endpoint¶
observer¶
Observer 类似于传统数据库中的触发器,当发生某些事件的时候这类协处理器会被 Server 端调用。 简单来说:Hook!
以 HBase 0.96 版本为例,提供了三种Observer接口:
- RegionObserver:提供客户端的数据操纵事件钩子: Get、 Put、 Delete、 Scan 等。
- WALObserver:提供 WAL 相关操作钩子。
- MasterObserver:提供 DDL-类型的操作钩子。如创建、删除、修改数据表等。
- RegionServerObserver: 提供RegionServer相关操作的Hook(包括启动、start、performing merges、Stop等操作)
Observer 允许集群在正常的客户端操作过程中可以有不同的行为表现,可以用来构建二级索引、权限管理、监控、ddl 控制等功能。
endpoint¶
类似传统数据中的存储过程,通过endpoint可以实现min、 max、 avg、 sum、 distinct、 group by 等功能。