2013-08-22 2 views
0

수백만 개의 레코드가 포함 된 HBase 테이블이 있습니다. 몇 가지 목적을 위해, 테이블의 레코드 수를 실시간으로 쿼리해야합니다.실시간으로 HBase 테이블의 행 개수 찾기 (밀리 초)

  1. 행 개수 MR 작업은 옵션이 아닙니다. (빨리해야 함)
  2. ResultScanner를 사용하는 것이 느립니다. 몇 천 개의 레코드 만 있으면 몇 초가 걸립니다.

답변

0

HBase는이 기능을 지원하지 않습니다. Tariq의 제안을 사용할 수는 있지만 HBase에는 교차 테이블 트랜잭션이 없다는 점을 명심해야합니다. 하나의 누적 숫자가 다른 행의 정확한 행 수를 나타내는 것은 아닙니다.

+0

내가 말하는 테이블에 더 많은 행을 추가하는 단일 메커니즘이 있습니다. 실제로 저는 크로스 테이블 트랜잭션에 대한 언급을 완전히 이해하지 못했습니다. 그 행을 주목하지 않고도 행에 행이 추가 될 수 있다는 의미입니까? –

+0

한 테이블에 행을 추가 할 때 다른 테이블의 카운터를 늘리면 업데이트간에 충돌이 발생합니다. HBase는 두 업데이트가 모두 성공하거나 실패 할 것이라고 보증하지 않습니다 (두 업데이트의 트랜잭션 없음). –

+0

감사합니다. Arnon. 나는이 솔루션과 Tariq가 거의 같다고 생각한다. 나는 그들을 점검 할 것이다. –

0

실시간을 만드는 유일한 방법은 행 수를 추적하여 어딘가에 저장하는 것입니다. 새로운 행을 추가 할 때마다 업데이트하십시오. 필요할 때마다 제공하십시오. 위의 두 옵션 모두 실시간 번호이 실제로 필요한 경우 도움이되지 않습니다.

+0

감사합니다. 이 제안. –