143.2. Camel と HBase
camel ルート内でデータストアを使用する場合、camel メッセージをデータストアに保存する方法を指定するという課題が常にあります。ドキュメントベースのストアでは、メッセージボディーをドキュメントに直接マップできるため、作業がより簡単になります。リレーショナルデータベースでは、ORM ソリューションを使用して、プロパティーを列などにマップできます。列ベースのストアでは、その種のマッピングを実行する標準的な方法がないため、より困難です。
HBase はさらに 2 つの課題を追加します。
- HBase は列をファミリーにグループ化するため、名前付け規則を使用してプロパティーを列にマッピングするだけでは十分ではありません。
- HBase には型の概念がありません。つまり、すべてを byte[] として格納し、byte[] が文字列、数値、シリアル化された Java オブジェクト、または単にバイナリーデータを表しているかどうかはわかりません。
これらの課題を克服するために、camel-hbase はメッセージヘッダーを使用して、メッセージの HBase 列へのマッピングを指定します。また、HBase データをモデル化し、xml/json などとの間で簡単に変換できる、camel-hbase が提供するいくつかのクラスを使用する機能も提供します。
最後に、ユーザーが独自のマッピングストラテジーを実装して使用できるようにします。
マッピングストラテジーに関係なく、camel-hbase はメッセージを org.apache.camel.component.hbase.model.HBaseData オブジェクトに変換し、そのオブジェクトを内部操作に使用します。