Skip to content

协处理器

起源

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 等功能。

参考

官方说明

二级索引案例