142.8. HBase 매핑
기본 매핑 전략은 헤더 및 본문 매핑입니다.
아래에서 각 매핑 전략이 작동하는 방법에 대한 자세한 예를 확인할 수 있습니다.
142.8.1. HBase 헤더 매핑 예
헤더 매핑은 기본 매핑입니다. 값 "myvalue"를 HBase 행 "myrow"에 배치하고 "myfamily:mycolum" 열에는 다음 헤더가 포함되어야 합니다.
header | 현재의 |
---|---|
CamelHBaseRowId | Myrow |
CamelHBaseFamily | myfamily |
CamelHBaseQualifier | myqualifier |
CamelHBaseValue | myvalue |
다른 열 및 / 또는 다른 행에 대해 더 많은 값을 배치하려면 헤더 인덱스로 접미사로 추가 헤더를 지정할 수 있습니다. 예를 들면 다음과 같습니다.
header | 현재의 |
---|---|
CamelHBaseRowId | Myrow |
CamelHBaseFamily | myfamily |
CamelHBaseQualifier | myqualifier |
CamelHBaseValue | myvalue |
CamelHBaseRowId2 | myrow2 |
CamelHBaseFamily2 | myfamily |
CamelHBaseQualifier2 | myqualifier |
CamelHBaseValue2 | myvalue2 |
get 또는 scan과 같은 검색 작업의 경우 데이터를 변환할 각 열에 대해 지정할 수도 있습니다.In the case of retrieval operations such as get or scan you can also specify for each column the type that you want the data to be converted to. 시험의 경우:
header | 현재의 |
---|---|
CamelHBaseFamily | myfamily |
CamelHBaseQualifier | myqualifier |
CamelHBaseValueType | long |
모든 메시지에 대해 일정하게 간주되는 상용구 헤더를 방지하려면 아래와 같이 엔드포인트 uri의 일부로 지정할 수도 있습니다.
142.8.2. 본문 매핑 예
본문 매핑 전략을 사용하려면 옵션 mappingStrategy를 uri의 일부로 지정해야 합니다. 예를 들면 다음과 같습니다.
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으로 쉽게 변환할 수 있다는 점입니다.