Hive는 HBase와 어떻게 다릅니 까?
최근 출시 된 ( http://mirror.facebook.com/facebook/hive/hadoop-0.17/ ) Hive가 성능 측면에서 HBase와 어떻게 비교 되는지 알고 싶습니다 . Hive에서 사용하는 SQL과 유사한 인터페이스는 우리가 구현 한 HBase API보다 훨씬 더 좋습니다.
Hive에 대해 많이 찾기는 어렵지만 HBase 사이트에서 HBase (굵게 추가됨)를 선호하는 이 스 니펫 을 발견했습니다 .
Hive는 일괄 처리 시스템 인 Hadoop을 기반으로합니다. 따라서이 시스템은 쿼리에 대한 낮은 지연 시간을 약속하지 않으며 약속 할 수도 없습니다 . 여기서 패러다임은 엄격하게 작업을 제출하고 실시간 쿼리와 달리 작업이 완료되면 알림을받는 것입니다. 결과적으로 분석이 훨씬 적은 양의 데이터에 대해 수행되는 Oracle과 같은 시스템과 비교해서는 안되지만 반복 사이의 응답 시간이 몇 분 미만인 분석이 훨씬 더 반복적으로 진행됩니다. Hive 쿼리의 경우 가장 작은 작업에 대한 응답 시간은 5-10 분 정도일 수 있으며 더 큰 작업의 경우 몇 시간까지 걸릴 수 있습니다.
HBase와 HyperTable은 모두 성능에 관한 것이므로 (Google의 BigTable에서 모델링 됨) 기능과 더 높은 학습 곡선 (예 : 조인 또는 SQL -유사 구문).
한 가지 관점에서 Hive는 SQL과 유사한 문법 및 파서, 쿼리 플래너, 쿼리 실행 엔진, 메타 데이터 저장소 및 열 형식 스토리지 레이아웃의 다섯 가지 주요 구성 요소로 구성됩니다. 주요 초점은 데이터웨어 하우스 스타일의 분석 워크로드이므로 키로 값을 짧은 지연 시간으로 검색 할 필요가 없습니다.
HBase에는 자체 메타 데이터 저장소와 컬럼 형 스토리지 레이아웃이 있습니다. HBase 테이블을 통해 HiveQL 쿼리를 작성할 수 있으므로 HBase가 Hive의 문법 및 파서, 쿼리 플래너 및 쿼리 실행 엔진을 활용할 수 있습니다. 자세한 내용은 http://wiki.apache.org/hadoop/Hive/HBaseIntegration 을 참조하십시오.
Hive는 분석 도구입니다. pig와 마찬가지로 map reduce를 활용하여 잠재적으로 막대한 양의 데이터를 임시 일괄 처리하도록 설계되었습니다. 테라 바이트를 생각해보십시오. 관계형 데이터베이스에서 그렇게하려고한다고 상상해보십시오.
HBase는 BigTable을 기반으로하는 열 기반 키 값 저장소입니다. HBase를 통해 맵 축소 작업을 실행할 수 있지만 쿼리 자체는 수행 할 수 없습니다. 주요 사용 사례는 키로 행을 가져 오거나 행 범위를 스캔하는 것입니다. 주요 기능은 열 '패밀리'에 대해 행 키 범위를 스캔 할 때 데이터 지역성을 가질 수 있다는 것입니다.
내 겸손한 지식으로 Hive는 Pig와 더 비슷합니다. Hive는 SQL과 유사하고 Pig는 스크립트 기반입니다. Hive는 쿼리 최적화 및 실행 엔진으로 인해 더 복잡해 보일뿐만 아니라 최종 사용자가 스키마 매개 변수 (파티션 등)를 지정해야합니다. 둘 다 텍스트 파일 또는 sequenceFiles를 처리하려고합니다.
HBase는 키 값 데이터 저장소 및 검색 용입니다 ... 해당 키 값 쌍 (행)을 스캔하거나 필터링 할 수 있습니다. (key, value) 행에 대한 쿼리를 수행 할 수 없습니다.
최신 Hive 릴리스에서는 Hive와 HBase가 통합되었으므로 작은 업데이트가 필요한 많은 변경 사항 이 있습니다 . 이것이 의미하는 바는 Hive를 HBase 데이터 저장소에 대한 쿼리 계층으로 사용할 수 있다는 것입니다. 이제 사람들이 대체 HBase 인터페이스를 찾고 있다면 Pig는 HBase 데이터 를 로드하고 저장 하는 정말 좋은 방법을 제공합니다 . 또한 Cloudera Impala 가 HBase를 기반으로하는 쿼리 기반의 상당한 성능을 제공 할 수있는 것 같습니다 . 기존 Hive 설정에 비해 쿼리가 최대 45 배 빠르다고 주장합니다.
Hive와 HBase는 다른 목적 으로 사용됩니다 .
하이브 :
장점 :
- Apache Hive 는 Hadoop 위에 구축 된 데이터웨어 하우스 인프라 입니다.
- 그것은에 저장된 데이터 쿼리 수 있습니다 HDFS 를 통해 분석을 위해 HQL을 , SQL과 같은 언어 의 시리즈로 변환됩니다, 지도 채용 감소
- Hadoop 에서만 배치 프로세스 를 실행 합니다.
- 그것의 JDBC의 준수는 , 또한 기존의 SQL 기반 도구와 통합
- Hive는 파티션을 지원 합니다.
- 일정 기간 동안 수집 된 데이터의 분석 쿼리를 지원합니다.
단점 :
- 현재 업데이트 문을 지원하지 않습니다.
- 파일과 디렉토리를 열로 매핑하기 위해 미리 정의 된 스키마와 함께 제공되어야합니다.
HBase :
장점 :
- 대형 테이블에 대한 구조화 된 데이터 스토리지를 지원 하는 확장 가능한 분산 데이터베이스
- 빅 데이터에 대한 임의의 실시간 읽기 / 쓰기 액세스 를 제공합니다. HBase 작업은 MapReduce 작업이 아닌 데이터베이스에서 실시간으로 실행됩니다.
- 테이블에 대한 파티션 을 지원 하고 테이블은 열 패밀리로 추가 분할됩니다.
- Hadoop을 사용하여 방대한 양의 데이터로 수평 확장
- 저장하거나 검색 할 때 데이터에 대한 키 기반 액세스를 제공합니다. 그것은 추가 또는 업데이트 지원 행.
- 데이터 버전 화 를 지원합니다 .
단점 :
- HBase 쿼리는 학습해야하는 사용자 지정 언어로 작성됩니다.
- HBase는 ACID를 완전히 준수하지 않습니다.
- 복잡한 액세스 패턴 (예 : 조인)과 함께 사용할 수 없습니다.
- 또한 대규모 배치 MapReduce를 수행 할 때 HDFS를 완전히 대체하지 않습니다.
요약:
Hive는 분석 쿼리에 사용할 수 있고 HBase는 실시간 쿼리에 사용할 수 있습니다. Hive에서 HBase로 데이터를 읽고 쓸 수도 있습니다.
Hive와 Hbase를 비교하기 위해 아래 정의를 기억하고 싶습니다.
트랜잭션을 처리하도록 설계된 데이터베이스는 분석을 처리하도록 설계되지 않았습니다. 분석을 잘 수행하도록 구성되지 않았습니다. 반면에 데이터웨어 하우스는 분석을 빠르고 쉽게 할 수 있도록 구성되어 있습니다.
Hive는 장기 실행 ETL 작업에 적합한 Hadoop 위에 구축 된 데이터웨어 하우스 인프라입니다. Hbase는 실시간 트랜잭션을 처리하도록 설계된 데이터베이스입니다.
참조 URL : https://stackoverflow.com/questions/24179/how-does-hive-compare-to-hbase
'programing tip' 카테고리의 다른 글
“C : \ Microsoft.Cpp.Default.props”를 찾을 수 없습니다. (0) | 2020.12.31 |
---|---|
수익률 내부의 수익률은 무엇을합니까? (0) | 2020.12.31 |
Log4Net Wrapper 클래스는 어떻게 생겼습니까? (0) | 2020.12.31 |
docker-compose 동일한 이미지에 대해 여러 인스턴스 생성 (0) | 2020.12.30 |
Angular의 canLoad와 canActivate의 차이점은 무엇입니까? (0) | 2020.12.30 |