143.8. HBase Mapping


上面提到过默认映射策略是 标头和正文 映射。
您可以参阅每个映射策略如何工作的一些详细示例。

143.8.1. HBase Header 映射示例

标头映射是默认映射。将值 "myvalue" 置于 HBase 行 "myrow" 中,并列 "myfamily:mycolum",消息应包含以下标头:

标头

CamelHBaseRowId

myrow

CamelHBaseFamily

myfamily

CamelHBaseQualifier

myqualifier

CamelHBaseValue

myvalue

要为不同的列和 / 或不同的行放置更多值,您可以使用标头的索引指定额外的标头后缀,例如:

标头

CamelHBaseRowId

myrow

CamelHBaseFamily

myfamily

CamelHBaseQualifier

myqualifier

CamelHBaseValue

myvalue

CamelHBaseRowId2

myrow2

CamelHBaseFamily2

myfamily

CamelHBaseQualifier2

myqualifier

CamelHBaseValue2

myvalue2

如果是检索操作,如 get 或 scan,您也可以为每个列指定您希望数据转换为的类型。对于考试:

标头

CamelHBaseFamily

myfamily

CamelHBaseQualifier

myqualifier

CamelHBaseValueType

Long

请注意,为了避免被视为所有消息的样板标头,您也可以将它们指定为 endpoint uri 的一部分,如下所示。

143.8.2. 正文映射示例

要使用正文映射策略,您必须将选项 mappingStrategy 指定为 uri 的一部分,例如:

hbase:mytable?mappingStrategyName=body

要使用正文映射策略,正文需要包含 org.apache.camel.component.hbase.model.HBaseData 的实例。您可以构建 t

HBaseData data = new HBaseData();
HBaseRow row = new HBaseRow();
row.setId("myRowId");
HBaseCell cell = new HBaseCell();
cell.setFamily("myfamily");
cell.setQualifier("myqualifier");
cell.setValue("myValue");
row.getCells().add(cell);
data.addRows().add(row);

上面的对象可用于放置操作,并将导致创建或更新 ID 为 myRowId 的行,并将值 myvalue 添加到列 myfamily:myqualifier 中。
正文映射策略可能根本不会非常好。它相对于标头映射策略的好处是,HBaseData 对象可以轻松地转换为或从 xml/json 转换为或来自 xml/json。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.