143.5. Spring Boot 자동 구성


구성 요소는 아래에 나열된 4 가지 옵션을 지원합니다.

Expand
이름설명Default유형

camel.component.hbase.configuration

공유 구성을 사용하려면 다음을 수행합니다. 옵션은 org.apache.hadoop.conf.Configuration 유형입니다.

 

문자열

camel.component.hbase.enabled

hbase 구성 요소 활성화

true

부울

camel.component.hbase.pool-max-size

HTable 풀의 각 테이블에 저장할 최대 참조 수입니다. 기본값은 10입니다.

10

정수

camel.component.hbase.resolve-property-placeholders

구성 요소 시작 시 속성 자리 표시자를 자체적으로 확인해야 하는지 여부입니다. String 유형의 속성만 속성 자리 표시자를 사용할 수 있습니다.

true

부울

143.5.1. 운영합니다.

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

카멜 경로에서 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 속성이 있는 개체가 포함되어 있다고 가정하고 value의 내용을 HBase 열 myfamily:myqualifier에 id로 지정한 행에 저장합니다. 둘 이상의 열/값 쌍을 지정해야 하는 경우 추가 열 매핑을 지정할 수 있습니다. 2차 헤더의 숫자(예: 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 options, message headers or a combination of both을 사용할 수 있습니다. 상수를 헤더로 uri 및 동적 값의 일부로 지정하는 것이 좋습니다. 어떤 것이 헤더로 정의되고 uri의 일부로 정의되면 헤더가 사용됩니다.

143.5.2. 운영 받기.

Get Operation은 지정된 HBase 행에서 하나 이상의 값을 검색하는 데 사용되는 작업입니다.A Get Operation is an operation that is used to retrieve one or more values from a specified HBase row. 검색하려는 값을 지정하려면 uri 또는 메시지 헤더로 지정할 수 있습니다.

        <route>
            <from uri="direct:in"/>
            <!-- Set the HBase Row of the Get -->
            <setHeader headerName="CamelHBaseRowId">
                <el>${in.body.id}</el>
            </setHeader>
            <to uri="hbase:mytable?operation=CamelHBaseGet&amp;family=myfamily&amp;qualifier=myqualifier&amp;valueType=java.lang.Long"/>
            <to uri="log:out"/>
        </route>

위 예제에서는 get 작업 결과가 CamelHBaseValue라는 이름의 헤더로 저장됩니다.

143.5.3. 작업 삭제.

또한 camel-hbase를 사용하여 HBase 삭제 작업을 수행할 수도 있습니다. 삭제 작업은 전체 행을 제거합니다. 메시지 헤더의 일부로 하나 이상의 행을 지정해야 합니다.All that needs to be specified is one or more rows as part of the message headers.

        <route>
            <from uri="direct:in"/>
            <!-- Set the HBase Row of the Get -->
            <setHeader headerName="CamelHBaseRowId">
                <el>${in.body.id}</el>
            </setHeader>
            <to uri="hbase:mytable?operation=CamelHBaseDelete"/>
        </route>

143.5.4. 스캔 작업.

검사 작업은 HBase의 쿼리와 동일합니다. 검사 작업을 사용하여 여러 행을 검색할 수 있습니다. 결과에 포함되어야 하는 열을 지정하고 uri options 또는 headers를 사용할 수 있는 값으로 변환되는 방법도 지정합니다.

        <route>
            <from uri="direct:in"/>
            <to uri="hbase:mytable?operation=CamelHBaseScan&amp;family=myfamily&amp;qualifier=myqualifier&amp;valueType=java.lang.Long&amp;rowType=java.lang.String"/>
            <to uri="log:out"/>
        </route>

이 경우 결과를 제한하기 위해 필터 목록을 지정해야 합니다. 필터 목록을 uri 및 camel의 일부로 지정하면 모든 필터를 충족하는 행만 반환할 수 있습니다.
메시지에 포함된 정보를 확인할 필터를 사용하려면 camel은 ModelAwareFilter를 정의합니다. 이렇게 하면 필터에서 메시지와 매핑 전략에 의해 정의된 모델을 고려할 수 있습니다.
ModelAwareFilter camel-hbase를 사용하면 선택한 매핑 전략을 메시지에 적용하여 매핑을 모델링하고 해당 개체를 필터에 전달하는 개체를 만듭니다.

예를 들어 메시지 헤더를 기준으로 사용하여 검사를 수행하려면 다음과 같이 ModelAware>-<MatchingFilter를 사용할 수 있습니다.

        <route>
            <from uri="direct:scan"/>
            <!-- Set the Criteria -->
            <setHeader headerName="CamelHBaseFamily">
                <constant>name</constant>
            </setHeader>
            <setHeader headerName="CamelHBaseQualifier">
                <constant>first</constant>
            </setHeader>
            <setHeader headerName="CamelHBaseValue">
                <el>in.body.firstName</el>
            </setHeader>
            <setHeader headerName="CamelHBaseFamily2">
                <constant>name</constant>
            </setHeader>
            <setHeader headerName="CamelHBaseQualifier2">
                <constant>last</constant>
            </setHeader>
            <setHeader headerName="CamelHBaseValue2">
                <el>in.body.lastName</el>
            </setHeader>
            <!-- Set additional fields that you want to be return by skipping value -->
            <setHeader headerName="CamelHBaseFamily3">
                <constant>address</constant>
            </setHeader>
            <setHeader headerName="CamelHBaseQualifier3">
                <constant>country</constant>
            </setHeader>
            <to uri="hbase:mytable?operation=CamelHBaseScan&amp;filters=#myFilterList"/>
        </route>

        <bean id="myFilters" class="java.util.ArrayList">
            <constructor-arg>
                <list>
                    <bean class="org.apache.camel.component.hbase.filters.ModelAwareColumnMatchingFilter"/>
                </list>
            </constructor-arg>
        </bean>

위의 경로는 pojo에 속성이 firstName이고 lastName이 메시지 본문으로 전달되고 해당 속성을 사용하여 메시지 헤더의 일부로 추가한다고 가정합니다. 기본 매핑 전략은 헤더를 HBase 열에 매핑하는 모델 개체를 만들고 ModelAware CryostatMatchingFilter 모델을 전달합니다. 필터는 모델과 일치하는 열이 포함되지 않은 모든 행을 필터링합니다. 예를 들어 쿼리와 같습니다.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동