문제

이 RDBM 테이블이 있다고 가정 해Entity-Attribute-value_model):

col1: entityID
col2: attributeName
col3: value

그리고 스케일링 문제로 인해 HBase를 사용하고 싶습니다.

HBase 테이블에 액세스하는 유일한 방법은 기본 키 (커서)를 사용하는 것입니다. 특정 키에 대한 커서를 얻을 수 있고 행을 하나씩 반복 할 수 있습니다.

문제는 제 경우에는 3 개의 열을 모두 반복 할 수 있기를 원한다는 것입니다. 예를 들어 :

  • 주어진 EntityId의 경우 모든 속성과 가치를 얻고 싶습니다.
  • Attributeame과 가치를 기부하기 위해 나는 모든 initiids에 ...

따라서 내가 가진 아이디어 중 하나는 데이터를 보유하는 HBase 테이블 하나 (EntityID를 기본 색인으로 사용하는 테이블 데이터), 기본 키로 속성을 가진 2 "색인"테이블을 구축하는 것입니다.

각 인덱스 테이블에는 데이터 테이블에 대한 포인터 (EntityIds) 목록이 보유됩니다.

합리적인 접근 방식입니까? 아니면 HBase 개념의 '남용'입니까?

이것에서 블로그 그만큼 작가 말하다:

HBase를 사용하면 기본 키 및 스캔 (생각 : 커서)을 통해 행 범위를 통해 GET 작업을 허용합니다. (규모와 2 차 지수가 모두 필요하다면, 걱정하지 마십시오 - 루센은 구조대에! 그러나 그것은 또 다른 게시물입니다.)

루센이 어떻게 도울 수 있는지 아십니까?

- 야나탄

도움이 되었습니까?

해결책

2 차 지수는 실제로 HBase의 많은 잠재적 응용 프로그램에 유용 할 것이며, 개발자들이 실제로 그것을보고 있다고 생각합니다. 점검 http://www.mail-archive.com/hbase-dev@hadoop.apache.org/msg04801.html.

그 동안 응용 프로그램 데이터 저장소를 스타 스키마로 모델링 할 수있는 경우 http://en.wikipedia.org/wiki/star_schema) 하이퍼 테이블이 보조 인덱스 유형이 필요한 솔루션을 체크 아웃 할 수 있습니다. http://markmail.org/message/rphm4q6cbar2ycgp

다른 팁

EntityId가 주어진 속성+값을 찾는 하나와 하나는 EntityId가 주어진 속성+값을 찾기위한 두 가지 플랫 테이블을 사용하는 것이 좋습니다.

표 1은 다음과 같습니다.

entityID1 {
  attribute1: value1;
  attribute2: value2;
  ...
}

및 표 2 :

attribute1_value1 {
  entityID1;
}
attribute2_value2 {
  entityID1;
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top