142.8. HBase マッピング


デフォルトのマッピングストラテジーは ヘッダーボディの マッピングであることは前述しました。
以下に、各マッピングストラテジーがどのように機能するかの詳細な例をいくつか示します。

142.8.1. HBase ヘッダーマッピングの例

ヘッダーマッピングはデフォルトのマッピングです。値 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

以下に示すように、すべてのメッセージで一定と見なされるボイラープレートヘッダーを回避するために、それらをエンドポイント uri の一部として指定することもできます。

142.8.2. ボディーマッピングの例

ボディーマッピング戦略を使用するには、uri の一部としてオプション mappingStrategy を指定する必要があります。次に例を示します。

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);

上記のオブジェクトは、たとえば put 操作で使用でき、id myRowId の行を作成または更新し、値 myvalue を列 myfamily:myqualifier に追加します。
ボディマッピングストラテジーは、最初はあまり魅力的ではないように見えるかもしれません。ヘッダーマッピングストラテジーに対する利点は、HBaseData オブジェクトを xml/json との間で簡単に変換できることです。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.