Data Engineering/Hive

[Linux/Hive] Apache Hive에 대해 알아보자

seoraroong 2024. 8. 22. 00:00

 

Apache Hive

대규모 데이터 웨어하우스 시스템을 위한 데이터 쿼리 및 분석 프레임워크이다.

Hive는 Hadoop의 위에서 실행되며, 사용자가  SQL과 유사한 언어를 통해 Hadoop 분산 파일 시스템과 상호작용할 수 있게 해준다.

 

Apache Hive의 특징

1. 쿼리 언어

HiveQL (HQL) : Hive는 SQL과 유사한 쿼리 언어인 HiveQL 또는 HQL을 사용한다.

HiveQL은 표준 SQL 문법을 바탕으로 하며, 데이터를 쿼리하고 분석하는 데 필요한 기능을 제공한다.

-> 사용자는 복잡한 MapReduce 작업을 작성하지 않아도 데이터 분석을 수행할 수 있다.

 

2. 데이터 모델

 

  • 테이블: Hive는 데이터를 테이블 형태로 저장한다. 테이블은 데이터베이스 내의 논리적 구조로, 실제 데이터는 HDFS에 저장된다.
  • 파티셔닝: 데이터가 날짜, 지역 등 여러 기준으로 나누어져 저장될 수 있다. 파티셔닝을 통해 쿼리 성능을 개선할 수 있다.
  • 버킷팅: 데이터를 여러 버킷으로 나누어 저장할 수 있다. 이는 쿼리 성능 향상과 데이터 관리의 효율성을 높인다.

3. 데이터 저장 형식

TextFile, ORC (Optimized Row Columnar), Parquet, Avro 등이 있다.

이러한 데이터 저장 형식은 데이터 압축 및 쿼리 성능을 최적화하는 데 도움을 준다.

 

4. 작업 처리

 

  • 쿼리 컴파일: HiveQL 쿼리는 내부적으로 MapReduce 작업으로 변환된다. Hive는 사용자가 작성한 쿼리를 자동으로 MapReduce 작업으로 변환하여 Hadoop 클러스터에서 실행한다.
  • 성능 최적화: Hive는 쿼리 성능을 향상시키기 위한 여러 최적화 기법을 지원한다. 예를 들어, 쿼리의 실행 계획을 분석하고, 다양한 캐싱 기법을 사용할 수 있다.

5. 메타스토어

Hive는 메타데이터를 저장하고 관리하기 위해 메타스토어라는 중앙 저장소를 사용한다.

메타스토어는 테이블 스키마, 데이터 위치, 파티셔닝 정보 등을 저장한다.

일반적으로 관계형 데이터베이스(MySQL, PostgreSQL 등)를 사용하여 메타스토어를 구현한다.