하이브 24

Hive Buckets (버켓)

Hive Buckets (버켓) · Version : Hadoop 3.0.0-cdh6.3.2, Hive 하이브는 쿼리 성능을 높이기 위해 버켓(Buckets)이라는 데이터 모델을 제공하며, 버켓은 지정된 칼럼의 값을 해쉬 처리하고 지정한 수의 파일로 나누어 저장한다. 조인에 사용되는 키로 버켓 컬럼을 생성하면 필요한 버켓만 조회하면 되기 때문에 전제 디렉터리를 풀스캔하는 것보다 훨씬 빠르게 처리할 수 있다. 파티션은 데이터를 디렉터리로 나누어 저장하는 방식이며 버켓은 데이터를 파일별로 나누어 저장한다. 아래 그림은 파티션과 버켓의 차이점을 쉽게 정의하고 있다. 아래 스크립트는 버켓 테이블을 생성한다. -- col2를 버켓팅하여 20개의 파일에 저장 CREATE TABLE tbl1( col1 STRING,..

Hive Skewed (스큐)

Hive Skewed (스큐) · Version : Hadoop 3.0.0-cdh6.3.2, Hive 스큐(skewed)의 사전적 의미는 “비스듬하다”라는 뜻으로, 특정 데이터가 많이 입력되는 경우, 데이터 파일 한쪽에만 너무 많은 데이터가 쌓이는 것을 의미한다. 하이브에서 스큐 테이블로 생성하면 따로 파일을 만들어서 사용하므로 성능상 이점이 있다. 스큐는 파티션과 유사하지만 용도가 조금 다르다. 파티션은 크게 데이터를 분류하는 용도로 사용되며, 스큐는 컬럼의 데이터를 구분할 때 사용된다. 하이브 매뉴얼에는 아래와 같은 내용이 있다. 스큐 테이블은 스큐의 정보를 저장하고, 리스트 버켓팅까지 추가하면 스큐된 서브 디렉터리를 생성한다. Skewed Table vs. List Bucketing Table · ..

Hive 테이블 생성

Hive 테이블 생성 · Version : Hive Apache Hive에서 테이블은 HDFS에 저장된 파일과 디렉터리 구조에 대한 메터 정보를 저장한다. Hive는 HiveQL이라는 SQL과 유사한 언어를 제공하며 아래와 같은 특징이 있다. · Hive에서 사용하는 테이블은 HDFS에 저장되며, HDFS는 한번 저장한 파일은 수정할 수 없기 때문에 UPDATE와 DELETE는 사용할 수 없다. · 데이터를 INSERT할때 빈 테이블에 입력하거나 입력된 데이터를 덮어쓰는 경우(INSERT OVERWRITE 구문 사용)에만 가능하다. · HiveQL은 FROM 절에만 서브쿼리를 사용할 수 있다. · HiveQL 뷰는 읽기 전용이다. · SELECT 문을 사용할때 HAVING절을 사용할 수 없다. · Sto..

Hive Architecture

Hive Architecture · Version : Hive Apache Hive는 데이터 쿼리 및 분석을 제공하기 위해 Apache Hadoop 위에 구축 된 데이터웨어 하우스 소프트웨어 프로젝트이다. Hive는 Hadoop과 통합되는 다양한 데이터베이스 및 파일 시스템에 저장된 데이터를 쿼리하기위한 SQL과 유사한 인터페이스를 제공한다. 분산 된 데이터에 대해 SQL 응용 프로그램 및 조회를 실행하려면 MapReduce Java API에서 기존 SQL 조회를 구현해야한다. Hive는Java API에서 쿼리를 구현할 필요없이 SQL과 유사한 쿼리 (HiveQL)를 기본 Java에 통합하는 데 필요한 SQL 추상화를 제공한다. 대부분의 데이터웨어 하우징 응용 프로그램은 SQL 기반 쿼리 언어와 함께 작..