일괄 예외 처리
HBase API는 여러 작업을 일괄 작업으로 전송하는 두 가지 방법을 제공합니다.
Table#batch(List, Object[])
는 여러 get과 mutation을 단일 일괄 작업으로 결합합니다.BufferedMutator#mutate(List<? extends Mutation> mutations)
는 여러 mutation을 일괄 작업 하나 또는 일련의 일괄 작업으로 결합합니다.
자바용 Cloud Bigtable HBase 클라이언트를 사용하면 두 메서드 모두에서 RetriesExhaustedWithDetailsException
이 발생할 수 있습니다. 이 예외는 연결 실패 등의 이유로 일괄 작업이 한 개 이상 실패할 때 발생합니다. 여기에는 실패한 요청 목록과 각 요청 실패 원인인 예외에 대한 세부정보가 포함됩니다.
RetriesExhaustedWithDetailsException
자체는 요청 실패 이유를 알려주지 않습니다. RetriesExhaustedWithDetailsException#getCauses()
를 호출하여 실패한 각 요청의 세부 예외를 검색해야 합니다. 그런 다음 각 세부 예외에 대한 정보를 로깅할 수 있습니다. 이 정보는 오류를 진단하는 데 유용합니다.
try {
mutator.mutate(mutationList);
} catch (RetriesExhaustedWithDetailsException e) {
for (Throwable cause : e.getCauses()) {
cause.printStackTrace();
}
throw e;
}