2013-09-25 1 views
3

CDH3에서 CDH4로 마이그레이션 할 계획입니다.이 마이그레이션의 일환으로 HBASE를 CDH3의 데이터로 업데이트하기 때문에 시스템을 외부로 가져올 계획입니다. 웨어 하우스로 하이브를 사용하고 있습니다.하이브리드 테이블 파티션과 마찬가지로 Hbase 테이블에서 파티션을 만드는 방법

마이그레이션에서 중요한 문제가 발생했습니다. Hive는 파티션을 테이블로 지원합니다. 그리고 우리 시스템에는 다른 스키마에 많은 테이블이 있으며 일부 테이블에는 날짜 기반의 파티션이 있습니다. 우리는 지난 5 년간의 데이터 기록을 가지고 있습니다 (일부 테이블에는 365 * 5 파티션이 있음).

우리는 HBase에서 파티션을 만들기위한 솔루션을 찾지 못했습니다. 이 파티션을 구현할 때 HBase의 테이블 생성을 도와 줄 수있는 사람이 있습니까?

우리가 HBASE로가는 이유는 업데이트를 지원하기 때문입니다.

HBASE가 다른 것을 지원하지 않는 경우 (MangoDB와 마찬가지로 Cassandra) 우리 행동을 지원합니다.

우리가 솔루션을 둘러싼 몇 가지 작업을 찾을 수 있다면 정말 큰 도움이됩니다.

답변

0

Hive에서와 같이 HBase에서 데이터를 분할 할 수없는 것 같습니다. 이 두 도구는 모두 디자인과 동작면에서 서로 다릅니다. HBase는 키 공간을 분할하고 각 파티션은 테이블이라고 부르기 때문에 HBase의 데이터는 이미 사용자를 위해 분할되어 있습니다. 더 세분화 된 파티셔닝이 여전히 필요하다면 컬럼 패밀리를 현명하게 사용하여이를 달성 할 수 있습니다.

예를 들어과 같이 1 년마다 열 패밀리를 가질 수 있습니다. 따라서 5 열 가족이있는 테이블을 사용하게 될 것입니다.


편집 :

당신이 당신의 마지막 코멘트에서 언급 한 내용과 같은 일을해야하는 경우에는 미리 갈라 테이블을 만들 수 있습니다. 사용자의 편의에 따라 영역의 시작 및 끝 행 키를 선택할 수 있습니다. 매일 그날의 첫번째와 마지막 엔트리가 그 특정 영역의 시작 행과 끝 경계가 될 하나의 파티션.

+0

답장을 보내 주시면 감사하겠습니다. 그러나 언젠가는 거의 10 + 수백만 개의 레코드가 있으므로 하루에 파티션을 만들고 싶습니다. 컬럼 패밀리는 좋은 디자인이 아닙니다. 우리는 각 스키마에 대해 현명한 파티션을 찾고 있습니다. 어떤 방법이 있습니까? – GHK

+0

좋은 지적. 나 한동안 생각하게 해줘. – Tariq

+0

이러한 레코드 각각을 행으로 푸시하면 행 아웃 키가 특정 날짜로 시작되는 캐치는 무엇입니까? – Tariq

3

HBase는 region이라는 파티션에 가까운 개념을 가지고 있습니다. 그러나 HBase의 이러한 파티션은 Hive (또는 RDBMS) 파티션처럼 작동하지 않습니다. 각 영역에는 키 범위가 있지만 키 범위를 분할하거나 나눠서 작은 영역으로 나눌 수 있습니다 (예 : 원래의 영역에 0-9 키가있는 경우 두 개의 작은 영역 0-4 및 5-9 또는 10 개의 파티션 0,1,2 ...로 나눌 수 있습니다.

키가 복합되어 날짜가 그 첫 부분이 될 것이고 당신의 열쇠가 오늘 무엇이든 당신은 hbase을 미리 나누어서 매일 하나 이상의 지역을 얻을 수 있습니다.

그러나 가장 중요한 바이트가 순차적 인 키는 "핫 스폿"이라는 문제 (일회로드를하는 경우 문제가되지 않을 수도 있음)가 느려지는 것을 나타냅니다. 그것에 대해 읽고 그것을 극복 할 수있는 샘플 접근법을 읽을 수 있습니다. blog post by Alex Baranau from sematext

+0

'demoschema'라는 스키마가 있고 'transtable'이라는 테이블을 가지고 있고 각 파티션에 1,000 만 개가 넘는 레코드가있는 일별 파티션이있는 경우이 작업이 어떻게 진행되는지 간단히 알려주시겠습니까? HBASE에 적합합니다. – GHK

+0

테이블에 몇 년 동안 저장 하시겠습니까? 너의 현재 열쇠는 뭐니? 현재 오라클에있는 –

+0

, TID가 기본 키입니다. 데이터를 하이브에 가져올 때 우리는 현명한 파티션에 넣을 것입니다. 그리고 현재 우리는 매일 파티션으로 하이브에 5 년간의 데이터의 역사를 가지고 있습니다. 따라서 우리는 Hive의 시스템에 약 365 * 5 파티션을 가지고 있으며, 매일 하나의 새로운 파티션을 만들고이 파티션에 1,000 만 개의 새로운 레코드를 저장합니다. – GHK

관련 문제