2012-08-11 6 views
0

최근에 Hbase 및 hadoop 스택을 실험하기 시작했습니다. 나는 처음부터 응용 프로그램을 만들려고합니다. 나는 Google n-gram 데이터 세트를 사용할 응용 프로그램에 대한 스키마를 설계하고 있습니다.Hbase 스키마 디자인 - 제안 필요

데이터 세트를 ngram이 행 키로, 하나의 열 패밀리가 여러 한정자 (연도, 페이지 수, match_count)가있는 모델로 만들 수 있거나 모델이 n- 그램을 행 키로 가질 수 있다는 것을 알고 있습니다. Year, page_count, match_count에 대한 여러 열 패밀리.

이 데이터를 사용하는 방식에 따라 모델이 다르다는 것을 알고 있지만이 두 가지 방법의 장점과 단점을 이해하고 싶습니다.

건배, Dwarak

답변

0

는 HBase를 책에서이 장을 읽어보십시오 : 그래서에서 열 가족의 수를 유지 6.2. On the number of column families

"HBase를 현재 두 개 또는 세 개의 열 가족 이상 아무것도 잘하지 않는 당신의 스키마가 낮습니다. 현재 플러싱 및 압축이 지역 단위로 수행되므로 한 컬럼 제품군이 플러시를 가져 오는 대량의 데이터를 운반하는 경우 인접한 패밀리는 전송하는 데이터 양이 적지 만 플러시됩니다. 많은 경우 열 패밀리에서 플러시 및 컴팩 션 상호 작용을 통해 불필요한 I/O 로딩을 만들 수 있습니다 (chang 플러싱 (flushing) 및 압축 (compaction)을 통해 열 단위 패밀리 단위로 작업 할 수 있습니다.) "

"스키마에서 할 수있는 경우 하나의 열 패밀리와 작업하십시오. 데이터 액세스가 일반적으로 열 범위 인 경우에만 두 번째 및 세 번째 열 패밀리 만 소개하십시오. 즉 한 열 패밀리 또는 다른 열 패밀리를 쿼리합니다 한 번에 둘 다 사용하지 마십시오. "

이제 물리적으로 모든 열 패밀리가 파일 시스템에 함께 저장됩니다. 조정 및 저장 지정은 열 패밀리 레벨에서 수행되므로 모든 열 패밀리 구성원은 동일한 일반 액세스 패턴 및 크기 특성을 갖습니다. 모든 데이터가 동시에 처리되는 경우 하나의 열 패밀리 만있는 테이블을 고려하는 것이 좋습니다. 거의 항상 따로 사용하지 않는 한 여러 가족을 사용하지 않는 것이 좋습니다.