가상 컬럼
가상 컬럼 (Virtual Columns)
가상 컬럼
Hive 0.8.0은 두 가지 가상 컬럼을 지원해요.
하나는 INPUT__FILE__NAME으로, 매퍼(mapper) 작업의 입력 파일 이름이에요.
다른 하나는 BLOCK__OFFSET__INSIDE__FILE로, 현재의 전역 파일 위치(global file position)입니다. 블록 압축(block compressed) 파일의 경우 현재 블록의 파일 오프셋, 즉 현재 블록의 첫 바이트 파일 오프셋을 의미해요.
Hive 0.8.0 이후로 다음 가상 컬럼들이 추가되었어요.
ROW__OFFSET__INSIDE__BLOCKRAW__DATA__SIZEROW__IDGROUPING__ID
중요한 점은, 여기에 나열된 가상 컬럼들은 다른 어떤 목적으로도 사용할 수 없다는 거예요. (가상 컬럼 이름으로 테이블을 만들면 SemanticException Error 10328: Invalid column name.. 오류가 발생합니다.)
출처: 문서
본문
간단한 예제 (Simple Examples)
select `INPUT__FILE__NAME`, key, `BLOCK__OFFSET__INSIDE__FILE` from src;
select key, count(`INPUT__FILE__NAME`) from src group by key order by key;
select * from src where `BLOCK__OFFSET__INSIDE__FILE` > 12000 order by key;
더 알아보기 (Learn more)
가상 컬럼은 파일 경로, 파일 내 오프셋, 행 ID 같은 물리적 메타데이터를 쿼리에서 접근할 수 있게 해 줘요. 데이터 프로파일링이나 디버깅, 파일 위치 기반 필터링에 유용하지만, 일반 컬럼 이름으로 사용할 수는 없답니다.