143.8. HBase Mapping


上面提到了默认的映射策略是 标头和正文 映射。
您可以在下面找到有关每个映射策略的工作方式的详细示例。

143.8.1. HBase Header 映射示例

标头映射是默认的映射。将值 "myvalue" 放入 HBase row "myrow",列 "myfamily:mycolum",消息应包含以下标头:

标头value

CamelHBaseRowId

myrow

CamelHBaseFamily

myfamily

CamelHBaseQualifier

myqualifier

CamelHBaseValue

myValue

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

标头value

CamelHBaseRowId

myrow

CamelHBaseFamily

myfamily

CamelHBaseQualifier

myqualifier

CamelHBaseValue

myValue

CamelHBaseRowId2

myrow2

CamelHBaseFamily2

myfamily

CamelHBaseQualifier2

myqualifier

CamelHBaseValue2

myvalue2

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

标头value

CamelHBaseFamily

myfamily

CamelHBaseQualifier

myqualifier

CamelHBaseValueType

Long

请注意,为了避免对所有消息保持恒定的样板标头,您也可以将它们指定为端点 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 创建或更新行,并将值 myfamily:myqualifier 添加到列 myfamily:myqualifier 中。
正文映射策略最初看似没有非常满意。它相对于标头映射策略的好处是,可以将 HBaseData 对象轻松转换为 xml/json。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.