141.4.4. 작업 배치.

HBase는 열 기반 저장소로서 데이터를 특정 행의 특정 열에 저장할 수 있습니다.HBase is a column based store, which allows you to store data into a specific column of a specific row. 열은 제품군으로 그룹화되므로 열 패밀리와 해당 열의 한정자를 지정해야 하는 열을 지정합니다. 데이터를 특정 열에 저장하려면 행과 열을 모두 지정해야 합니다.

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&amp;family=myfamily&amp;qualifier=myqualifier"/>
        </route>

위의 경로는 메시지 본문에 id 및 value 속성이 있는 개체가 포함되어 있으며 HBase 열 myfamily:myqualifier에 id로 지정된 행의 내용을 저장한다고 가정합니다. 두 개 이상의 열/값 쌍을 지정해야 하는 경우 추가 열 매핑을 지정할 수 있습니다. 두 번째 헤더의 eg RowId2, RowId3, RowId4 등의 숫자를 사용해야 합니다. 첫 번째 헤더에만 숫자 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&amp;family=myfamily&amp;qualifier=myqualifier&amp;family2=myfamily&amp;qualifier2=myqualifier2"/>
        </route>

uri 옵션, 메시지 헤더 또는 두 가지 조합을 사용할 수 있다는 것을 기억하는 것이 중요합니다. URI 및 동적 값의 일부로 상수를 헤더로 지정하는 것이 좋습니다. URI로 정의되고 uri의 일부로 헤더가 정의된 경우 헤더가 사용됩니다.