134.4.4. 操作を行います。
HBase は列ベースのストアで、特定行の特定の列にデータを保存できます。列はファミリーにグループ化されるため、列ファミリーとその列の修飾子を指定する必要があります。データを特定の列に保存するには、列と行の両方を指定する必要があります。
camel ルートから HBase にデータを保存する最も簡単なシナリオは、メッセージボディーの一部を指定された HBase 列に保存することです。
<route> <from uri="direct:in"/> <!-- Set the HBase Row --> <setHeader headerName="CamelHBaseRowId"> <el>${in.body.id}</el> </setHeader> <!-- Set the HBase Value --> <setHeader headerName="CamelHBaseValue"> <el>${in.body.value}</el> </setHeader> <to uri="hbase:mytable?operation=CamelHBasePut&family=myfamily&qualifier=myqualifier"/> </route>
上記のルートは、メッセージボディーに id および value プロパティーを持つオブジェクトが含まれ、値の内容を id で指定された行の HBase 列 myfamily:myqualifier に保存することを前提としています。複数の列/値のペアを指定する必要がある場合は、追加の列マッピングを指定することもできます。2 番目のヘッダー以降は、RowId2、RowId3、RowId4 などの数字を使用する必要があります。1st ヘッダーのみの番号は 1 ではありません。
<route> <from uri="direct:in"/> <!-- Set the HBase Row 1st column --> <setHeader headerName="CamelHBaseRowId"> <el>${in.body.id}</el> </setHeader> <!-- Set the HBase Row 2nd column --> <setHeader headerName="CamelHBaseRowId2"> <el>${in.body.id}</el> </setHeader> <!-- Set the HBase Value for 1st column --> <setHeader headerName="CamelHBaseValue"> <el>${in.body.value}</el> </setHeader> <!-- Set the HBase Value for 2nd column --> <setHeader headerName="CamelHBaseValue2"> <el>${in.body.othervalue}</el> </setHeader> <to uri="hbase:mytable?operation=CamelHBasePut&family=myfamily&qualifier=myqualifier&family2=myfamily&qualifier2=myqualifier2"/> </route>
uri オプション、メッセージヘッダー、またはその両方の組み合わせを使用することができることに注意してください。定数を uri の一部として指定し、動的な値をヘッダーとして指定することが推奨されます。何かがヘッダーとして定義され、URI の一部として定義されている場合は、ヘッダーが使用されます。