HCatalog Load and Store Interfaces

HCatalog Load and Store Interfaces

HCatalog가 데이터를 로드하고 저장하기 위해 제공하는 인터페이스에 대한 문서예요. HCatalog는 Hive와 Hadoop 생태계 도구들이 공통된 방식으로 데이터를 읽고 쓸 수 있게 해 주는 메타데이터 계층입니다.

출처: 문서

본문

HCatalog는 실행 도구(예: MapReduce, Pig, Spark)들이 Hive 메타스토어에 정의된 테이블을 투명하게 읽고 쓸 수 있게 하는 계층입니다. 이 문서는 HCatalog의 데이터 로드·저장 인터페이스(LoadStore)를 다룹니다.

핵심 개념:

  • LoadStore 인터페이스: HCatalog는 입력·출력 포맷을 추상화하는 인터페이스를 제공합니다. 도구들은 이 인터페이스를 통해 테이블의 스키마와 파티션, 파일 포맷을 몰라도 데이터를 읽고 쓸 수 있습니다.
  • HCatInputFormat / HCatOutputFormat: 대표적인 구현체로, MapReduce 잡에서 HCatalog 테이블을 입력으로 읽거나 출력으로 쓰는 데 사용합니다.

MapReduce에서 읽기 예시:

import org.apache.hcatalog.mapreduce.HCatInputFormat;

job.setInputFormatClass(HCatInputFormat.class);
HCatInputFormat.setInput(job, dbName, tableName);

MapReduce에서 쓰기 예시:

import org.apache.hcatalog.mapreduce.HCatOutputFormat;

job.setOutputFormatClass(HCatOutputFormat.class);
HCatOutputFormat.setOutput(job, OutputJobInfo.create(dbName, tableName, null));

분할(파티션) 처리:

  • 읽을 때는 파티션 필터를 지정해 원하는 파티션만 읽을 수 있습니다.
  • 쓸 때는 파티션 값을 함께 지정해 해당 파티션에 데이터를 저장합니다.

참고 사항:

  • HCatalog는 도구가 테이블의 물리적 저장 위치와 포맷을 직접 다루지 않아도 되도록 추상화를 제공합니다.
  • HCatalog를 사용하려면 클래스패스에 HCatalog/Hive 관련 라이브러리가 포함되어 있어야 합니다.

더 알아보기 (Learn more)