[HADOOP] HBase : 여러 개의 테이블 또는 여러 개의 열이있는 단일 테이블을 만드시겠습니까?
HADOOPHBase : 여러 개의 테이블 또는 여러 개의 열이있는 단일 테이블을 만드시겠습니까?
많은 수의 열이있는 단일 테이블이 아닌 여러 개의 테이블을 만드는 것이 적합한 경우는 언제입니까? 일반적으로 테이블에는 몇 가지 열 패밀리 (1-2) 만 있고 각 열 패밀리는 1000+ 열을 지원할 수 있음을 알고 있습니다.
HBase가 단일 테이블 내에서 잠재적으로 많은 수의 열을 가지고 잘 수행 할 때 별도의 테이블을 만드는 것이 언제 의미가 있습니까?
해결법
-
==============================
1.질문 자체에 대답하기에 앞서 먼저 중요한 요소들을 설명하겠습니다. 사용중인 파일 시스템이 HDFS라고 가정합니다.
질문 자체에 대답하기에 앞서 먼저 중요한 요소들을 설명하겠습니다. 사용중인 파일 시스템이 HDFS라고 가정합니다.
HBase에서 /로 데이터를 읽거나 쓰는 것을 다루는 동안 몇 가지 최적화가 필요하지만 위에 주어진 정보는 개념적으로 사실입니다. 위의 진술을 감안할 때, 다음은 몇 가지 열과 여러 가지 테이블을 다른 방법보다 많이 사용하는 장점입니다.
다중 열이있는 단일 테이블
언제 이것을 사용합니까?
다중 테이블
사용시기 :
일종의 대안 : 단일 테이블의 여러 CF
위에서 볼 수 있듯이 두 가지 접근 방식의 장점이 있습니다. 선택 항목은 여러 열에 대해 행 키의 구조가 동일하기 때문에 (행 효율을 높이기 위해 행 키를 공유하거나 열에서 트랜잭션을 필요로 함) 데이터가 매우 희박한 경우 (행 쓰기 / 읽기 전용을 의미) 행 키에 대한 열의 작은 비율). 이 경우 두 세계의 장점을 필요로하는 것처럼 보입니다. 열 집합이 들어있는 곳입니다. 열 집합을 하나의 하위 집합 만 액세스 / 읽기 / 쓰기 할 수있는 논리 하위 집합으로 만들거나 하위 집합 당 저장소 수준 구성이 필요한 경우 (예 : TTL, 저장소 클래스, 무거운 압축 일정 작성 등), 각 하위 집합을 열 패밀리로 만들 수 있습니다. 특정 열 패밀리의 데이터는 단일 파일 (파일 세트)에 저장되므로 스캔 속도를 저하시키지 않으면 서 열의 하위 세트를 읽는 동안 지역 성이 향상됩니다.
그러나 catch가 있습니다.
컬럼 패밀리를 불필요하게 사용하지 마십시오. 그들과 관련된 비용이 있으며, HBase는 지역 레벨 쓰기 잠금, 모니터링 등 HBase에서 작동하는 방법으로 인해 10 개 이상의 CF를 제대로 처리하지 못합니다. CF를 가로 지르는 컬럼간에 논리적 인 관계가 있지만 일반적으로 CF에서 오퍼레이션을 수행하지 않거나 다른 CF에 대해 다른 스토리지 구성을 가질 필요가있는 경우에만 CF를 사용하십시오. 매우 드문 드문 한 데이터 세트가 없다면 행 키 스키마를 공유하는 경우 모든 열을 포함하는 단일 CF 만 사용하는 것이 좋으며 위에서 언급 한 점을 기반으로 다른 CF 또는 테이블이 필요할 수 있습니다.
from https://stackoverflow.com/questions/51326717/hbase-create-multiple-tables-or-single-table-with-many-columns by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] hadoop을 사용하여 자체 조인 / 교차 제품을 구현하는 방법은 무엇입니까? (0) | 2019.07.28 |
---|---|
[HADOOP] 행의 배열 값을 확장하는 방법 !! 하이브 SQL 사용 (0) | 2019.07.28 |
[HADOOP] CDH4 및 Yarn을 사용하여 Hadoop 작업 내역 및 로그를 보려면 어떻게합니까? (0) | 2019.07.28 |
[HADOOP] 하이브의 mm / dd / yyyy에서 yyyy-mm-dd로 변환 (0) | 2019.07.28 |
[HADOOP] Amazon EMR에서 java의 hbase를 사용하는 데 문제가 발생했습니다. (0) | 2019.07.28 |