IT용어위키



아파치 하이브 테이블

Apache Hive의 테이블(Table)은 데이터 웨어하우스 내에서 데이터를 저장하고 관리하는 기본 단위이다. Hive는 관계형 데이터베이스처럼 테이블을 지원하며, 다양한 저장 형식과 파티션 기능을 제공하여 대규모 데이터를 효율적으로 관리할 수 있다.

개요

Hive 테이블은 HDFS(Hadoop Distributed File System)에 저장된 데이터를 논리적으로 표현하며, 사용자는 HiveQL을 사용하여 데이터를 질의하고 조작할 수 있다. Hive는 테이블을 관리형(Managed)과 외부(External) 테이블로 구분하며, 데이터 저장 형식과 파티션, 버킷 기능 등을 활용할 수 있다.

Hive 테이블의 종류

Hive는 데이터 저장 방식에 따라 두 가지 유형의 테이블을 제공한다.

  • 관리형 테이블(Managed Table)
    • Hive가 데이터 파일을 직접 관리하며, 테이블 삭제 시 데이터도 삭제됨.
  • 외부 테이블(External Table)
    • 데이터는 외부 저장소에 존재하며, 테이블 삭제 시 데이터는 유지됨.

관리형 테이블

CREATE TABLE employees (
    id INT,
    name STRING,
    department STRING
) ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
  • 데이터는 Hive의 기본 데이터 저장소(HDFS) 내부에 저장됨.
  • 테이블을 삭제(DROP)하면 데이터도 함께 삭제됨.

외부 테이블

CREATE EXTERNAL TABLE sales (
    order_id INT,
    amount DOUBLE,
    date STRING
) ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE
LOCATION '/user/hive/external/sales_data';
  • 데이터는 지정된 외부 경로(HDFS, S3 등)에 저장됨.
  • 테이블을 삭제해도 데이터는 유지됨.

Hive 메타데이터(Metadata)

Hive는 테이블 및 데이터의 구조 정보를 메타스토어(Metastore)에 저장하며, 이 메타데이터는 테이블의 구조와 속성을 관리하는 역할을 한다.

  • 테이블 스키마 - 테이블의 컬럼명, 데이터 타입, 파티션 정보 저장.
  • 스토리지 위치 - 데이터 파일이 저장된 HDFS 경로.
  • 파티션 정보 - 테이블이 파티션을 포함할 경우 파티션별 메타데이터 저장.
  • 버킷 정보 - 데이터가 특정 컬럼 기준으로 버킷화된 경우 버킷 개수 저장.
  • 파일 형식 - TEXTFILE, ORC, PARQUET 등 저장 형식 정보.

Hive 메타데이터는 일반적으로 관계형 데이터베이스(MySQL, PostgreSQL)에서 관리되며, Hive의 성능 최적화 및 테이블 관리를 담당한다.

파티션 테이블(Partitioned Table)

Hive는 데이터를 특정 컬럼을 기준으로 나누어 저장하는 파티션(Partition) 기능을 제공하여 성능을 최적화한다.

CREATE TABLE logs (
    event STRING,
    timestamp STRING
) PARTITIONED BY (date STRING)
STORED AS PARQUET;
  • 파티션 생성 및 데이터 추가
ALTER TABLE logs ADD PARTITION (date='2023-01-01') LOCATION '/data/logs/2023-01-01';

버킷 테이블(Bucketed Table)

버킷(Bucket)은 테이블 데이터를 해시 함수 기반으로 나누어 저장하여 성능을 향상시키는 기법이다.

CREATE TABLE users (
    id INT,
    name STRING
) CLUSTERED BY (id) INTO 4 BUCKETS;
  • 버킷을 사용하면 특정 컬럼(id)에 따라 데이터를 4개의 파일로 나눠 저장하여 성능을 향상시킴.

테이블 데이터 조작

데이터 삽입

INSERT INTO TABLE employees VALUES (1, 'Alice', 'HR'), (2, 'Bob', 'IT');

데이터 조회

SELECT * FROM employees WHERE department = 'IT';

테이블 삭제

DROP TABLE employees; -- 관리형 테이블은 데이터까지 삭제됨.
DROP TABLE IF EXISTS sales; -- 외부 테이블의 경우 메타데이터만 삭제됨.

Hive 테이블의 특징

  • HDFS 기반으로 대용량 데이터를 저장 및 관리.
  • 스키마 온 리드(Schema-on-Read) 방식으로 데이터를 읽을 때 스키마 적용.
  • 다양한 저장 형식 지원(TEXTFILE, ORC, PARQUET, AVRO 등).
  • 파티션과 버킷 기능을 사용하여 성능 최적화 가능.
  • 테이블 정보는 메타스토어(Metastore)에 저장되어 빠른 데이터 탐색이 가능.

같이 보기


  출처: IT위키(IT위키에서 최신 문서 보기)
  * 본 페이지는 공대위키에서 미러링된 페이지입니다. 일부 오류나 표현의 누락이 있을 수 있습니다. 원본 문서는 공대위키에서 확인하세요!