2016-12-08 2 views
0

HBase-Hive 통합을 사용하여 HBase를 하이브로 읽고 쓰려면 documentation을 따르십시오. 그것은 완벽하게 작동하고HBase-Hive 통합으로 값 삭제

CREATE EXTERNAL TABLE hbase.test (
    col1 string, 
    col2 map<string, double> 
) 
STORED BY 
    'org.apache.hadoop.hive.hbase.HBaseStorageHandler' 
WITH SERDEPROPERTIES (
    'hbase.columns.mapping'=':key, cf:', 
    'hbase.table.name'='test') 

읽기, 쓰기 :

는 기본적으로, 내가 좋아하는 HBaseStorageHandler와 하이브의 테이블을 만들 수 있습니다. 하지만 지금은 값으로 잘못된 데이터를 정리하고 싶습니다. 이 값은 행 키와 열 셀, 즉 col1 및 col2의 키에 있습니다.

document에서 데이터 삭제와 관련된 항목을 찾지 못했습니다. 바라건대, 비슷한 경험을 가진 사람이 내 질문에 대답 할 수 있습니다.

미리 감사드립니다.

답변

1

가장 가까운 사용 사례는 덮어 쓰기입니다. 당신이 제공 한 문서에서 찾을 수 있습니다.

일반적으로 큰 데이터 영역에서는 삭제가 쉽지 않습니다. HBase에서는 삭제 표시와 압축을 사용하여 수행됩니다. 하이브에서는 0.14 버전에서만 사용 가능합니다. 또한 ACID를 지원하는 테이블의 경우에도 마찬가지입니다. 다시 ACID는 0.13에서 지원됩니다.

입찰가 데이터 세트 삭제 작업은 최근에만 선택됩니다. 잘못된 데이터 지우기를 처리하려면 덮어 쓰기 삽입과 같은 더 나은 옵션을 계획해야합니다.

hbase 또는 독립 실행 형 하이브와 같이 각 프레임 워크를 개별적으로 사용하지 않으므로 둘 중 하나의 전체 기능을 사용할 수 없습니다. 백엔드에서 무거운 SQL 뷰와 HBase를 사용하는 경우에만 통합이 유용합니다.

다시 HBase가 백엔드에서 선택된 이유는 다시 자체 요구 사항이있을 수 있습니다. 이것이 더 나은 솔루션 설계에 도움이되기를 바랍니다.

+0

덮어 쓰기는 hbase의 기존 데이터를 삭제하지 않고 업데이트 만합니다. 매우 큰 데이터 볼륨 삭제가 아니기 때문에 최종 해결책은 [this] (https://www.tutorialspoint.com/hbase/hbase_delete_data.htm)를 따라하는 것입니다. – yuan0122

+0

두 가지 사항을 확인하고 싶습니다. 가장 가까운 것 및 완료되지 않은 것. 또한 하이브에서 데이터를 삭제하고 HBase에 반영해야한다고 가정합니다. hbase 삭제를위한 링크가 제공됩니다. HBase에서 삭제하면 귀하의 요구 사항이 충족되기를 바랍니다. 해피 코딩. – Ramzy