2011-11-17 5 views
2

저는 거의 HBase가 처음입니다. MySQL을 기반으로 현재 사이트를 추적하고 MySQL을 단순히 확장하지 않기 때문에 HBase에 배치하려고합니다. 나는 완전히 INT 어 첫 걸음을 잃었어요분석에 HBase 사용하기

...

나는 다양한 사용자 행동을 추적하고 몇 가지 측면 (날짜별로 집계 할 수 있어야합니다, 국가 그들이 수행, 제품에서 오는 등) ...

내가 현재 저장하는 방법은 이러한 모든 측면 (국가, 날짜, 제품, ...) 및 나머지 필드가있는 복합 PK가있는 테이블을 가지고 있다는 것입니다 행동에 대한 카운터입니다. 작업이 수행 될 때 작업의 열을 하나씩 증가시키는 테이블에 삽입합니다 (이중 키 업데이트시 ...).

*date  | *country | *product | visited | liked | put_to_basket | purchased 
2011-11-11 | US  | 123  | 2  | 1  | 0    | 0 
2011-11-11 | GB  | 123  | 23  | 10 | 5    | 4 
2011-11-12 | GB  | 555  | 54  | 0  | 10   | 2 

나는이 완전히 HBase와 방법에 대해하다는 느낌을 가지고 있고, (키 삽입 비싼 얻을 경우 증가와 함께)도 정말 확장하지 않습니다 정말 유연하지.

HBase에서 사용자 동작을 효과적으로 추적하려면 어떻게해야합니까? 어떻게 테이블 (들)을 보일까? MapReduce가 어디에서 오는가?

모든 의견을 제공해 주셔서 감사합니다.

답변

1

다음과 같이 수행 할 수 있습니다,

는 HBase와의 고유 한 행 ID가 달성하고자하는 것과 매우 유사한 디자인을 설명하고,

rowid = date + country + product --->이를 단일 엔터티에 추가하고이를 키로 사용하십시오.

그런 다음 카운터를 열로 사용하십시오. 따라서 다음과 같은 이벤트가 발생하면

if(event == liked){ 
increment the liked column of the hbase by 1 for the corresponding key combination. 
} 

등의 경우가 있습니다.

희망이 도움이됩니다!