HBase 테이블을 디자인했습니다. 여기서는 rowkey
이 실행해야하는 쿼리로 구동됩니다. 베스트 프랙티스에 따라 해시 부분을 내 행키의 접두사로 포함하여 테이블 영역 전체에 가능한 한 균일 한 행을 펼치려고했습니다.HBase에서 효율적으로 쿼리하는 전략
나는 다음과 같은 시나리오에 대한 걱정 :
나는 3 개 지역간 내 HBase를 테이블 분할의 행 수십억을 얻었다. 이 테이블을 사용하여 REST API에 대한 데이터를 제공하므로 가능한 한 빨리 행을 제공해야합니다.
불행하게도, 나는 내가 HBase와 쉘 또는 startrow
및 stoprow
parameters.It을 포함한 다른 스캔 중 count "table_name"
를 호출 할 경우에도 유명한 시간 초과 오류 Failed to get result within timeout, timeout=60000ms
을 치는거야하면 rowkey
를 사용하여 범위로 검색 전체 HBase를 테이블을 휩쓸고 보인다 .
내가 좋아하는 것이 시나리오는이 개 질문을 고려 :
1) 정말 시간 초과 오류를 타격하지 않고 가능한 한 빨리 행의 범위를 검색 할 수있는 전략이 있습니까? 나는 정말 여기에 어떤 포인터를 주셔서 감사합니다.
2) HBase가 처음이므로 HBase가 REST API에 빠른 검색 데이터를 제공하기위한 최선의 해결책이라고 생각하십니까? 실제로 검색은 행키 범위를 기준으로 검사합니다.