HPL/SQL - PART_LOC 함수

HPL/SQL - PART_LOC 함수

PART_LOC 함수는 지정한 테이블 파티션의 위치를 HDFS나 다른 스토리지에서 반환해요. 파티션 데이터가 어디에 저장돼 있는지 경로를 알려줘요.

출처: 문서

본문

PART_LOC 함수는 지정한 테이블 파티션의 위치를 HDFS 또는 다른 스토리지에서 반환합니다.

구문:

PART_LOC([db_name.]table_name, part_col=filter, ... [, with_hostname]); 

매개변수:

매개변수 타입 설명
[dbname.]table_name VARCHAR 식별자, 변수 또는 표현식 테이블 이름
part_col=filter 하나 이상의 파티션 필터
with_hostname INT 변수 또는 표현식 1 - 호스트 이름 포함 경로 반환 / 0 - 호스트 이름 제외(기본값)

참고 사항:

  • HPL/SQL은 파티션 정보를 얻기 위해 다음 Hive 문을 사용합니다:
DESCRIBE EXTENDED db_name.tab_name PARTITION (part_col=filter, ...)

반환 값:

  • 파티션 디렉터리
  • 테이블이나 파티션이 존재하지 않으면 NULL

반환 타입:

STRING (VARCHAR/CHAR).

예제:

테이블 _db.orders_는 _country_로 파티셔닝되어 있고 다음과 같은 파티션이 있습니다:

파티션 디렉터리
country='US' /data/db/orders/country=US
country='UK' /data/db/orders/country=UK
country='DE' /data/db/orders/country=DE
country='BY' /data/db/orders/country=BY

country=US 파티션의 위치 가져오기:

PART_LOC(db.orders, country='US', 1); 

Result:
hdfs://hostname:8020/data/db/orders/country=US

호스트 이름 없이 경로 반환하기:

PART_LOC(db.orders, country='US'); 

Result:
/data/db/orders/country=US

호환성: HPL/SQL 확장

더 알아보기 (Learn more)

파티션의 위치를 코드로 알아내면 외부 시스템과 연동하거나 파일을 직접 다룰 때 유용해요. 관련 파티션 함수로는 MAX_PART_DATE, MAX_PART_STRING 등이 있어요.