143.2. Camel 和 HBase
当在 camel 路由中使用 datasotre 时,始终存在 chalenge 来指定 camel 信息如何存储到数据存储中。基于文档的存储更加容易,因为消息正文可以直接映射到文档。在关系数据库中,可以使用 ORM 解决方案将属性映射到列等。在基于列的存储中,更有挑战性,因为没有执行这种映射的标准方法。
HBase 增加了两个额外的挑战:
- HBase 将列分组到系列中,因此仅使用名称惯例将属性映射到列不足够。
- HBase 没有类型的概念,这意味着它将所有内容存储为 byte[],并且不知道 byte[] 代表 String、数字、序列化 Java 对象或只是二进制数据。
为了克服这些挑战,camel-hbase 使用消息标头来指定消息到 HBase 列的映射。它还能够使用一些 camel-hbase 提供的类,这些类为 HBase 数据,并可轻松转换为 xml/json 等。
最后,它提供了用户实施和使用自己的映射策略的功能。
无论映射策略 camel-hbase 都可以将消息转换为 org.apache.camel.component.hbase.model.HBaseData 对象,并将该对象用于其内部操作。