HCatalog-파티션 표시
파티션은 별도의 테이블 또는 뷰를 생성하는 데 사용되는 테이블 형식 데이터의 조건입니다. SHOW PARTITIONS는 주어진 기본 테이블에 대한 모든 기존 파티션을 나열합니다. 파티션은 알파벳 순서로 나열됩니다. Hive 0.6 이후에는 파티션 사양의 일부를 지정하여 결과 목록을 필터링 할 수도 있습니다.
SHOW PARTITIONS 명령을 사용하여 특정 테이블에있는 파티션을 볼 수 있습니다. 이 장에서는 HCatalog에서 특정 테이블의 파티션을 나열하는 방법에 대해 설명합니다.
Show Partitions 문
구문은 다음과 같습니다-
SHOW PARTITIONS table_name;
다음 쿼리는 employee −
./hcat –e "Show partitions employee;"
쿼리가 성공적으로 실행되면 다음 응답을 볼 수 있습니다.
OK
Designation = IT
Time taken: 5.3 seconds
동적 파티션
HCatalog는 테이블을 파티션으로 구성합니다. 날짜, 도시, 부서 등 분할 된 열의 값을 기준으로 테이블을 관련 부분으로 나누는 방법입니다. 파티션을 사용하면 데이터의 일부를 쉽게 쿼리 할 수 있습니다.
예를 들어, 이름이 Tab1ID, 이름, 부서 및 yoj (예 : 입사 연도)와 같은 직원 데이터를 포함합니다. 2012 년에 가입 한 모든 직원의 세부 정보를 검색해야한다고 가정합니다. 쿼리는 전체 테이블에서 필요한 정보를 검색합니다. 그러나 직원 데이터를 연도로 분할하여 별도의 파일에 저장하면 쿼리 처리 시간이 단축됩니다. 다음 예는 파일과 데이터를 분할하는 방법을 보여줍니다.
다음 파일에는 employeedata 표.
/ tab1 / employeedata / file1
id, name, dept, yoj
1, gopal, TP, 2012
2, kiran, HR, 2012
3, kaleel, SC, 2013
4, Prasanth, SC, 2013
위의 데이터는 연도를 사용하여 두 개의 파일로 분할됩니다.
/ tab1 / employeedata / 2012 / file2
1, gopal, TP, 2012
2, kiran, HR, 2012
/ tab1 / employeedata / 2013 / file3
3, kaleel, SC, 2013
4, Prasanth, SC, 2013
파티션 추가
테이블을 변경하여 테이블에 파티션을 추가 할 수 있습니다. 다음과 같은 테이블이 있다고 가정하겠습니다.employee Id, Name, Salary, Designation, Dept 및 yoj와 같은 필드가 있습니다.
통사론
ALTER TABLE table_name ADD [IF NOT EXISTS] PARTITION partition_spec
[LOCATION 'location1'] partition_spec [LOCATION 'location2'] ...;
partition_spec:
: (p_column = p_col_value, p_column = p_col_value, ...)
다음 쿼리는 파티션을 추가하는 데 사용됩니다. employee 표.
./hcat –e "ALTER TABLE employee ADD PARTITION (year = '2013') location '/2012/part2012';"
파티션 이름 바꾸기
RENAME-TO 명령을 사용하여 파티션의 이름을 바꿀 수 있습니다. 구문은 다음과 같습니다.
./hact –e "ALTER TABLE table_name PARTITION partition_spec RENAME TO PARTITION partition_spec;"
다음 쿼리는 파티션의 이름을 바꾸는 데 사용됩니다-
./hcat –e "ALTER TABLE employee PARTITION (year=’1203’) RENAME TO PARTITION (Yoj='1203');"
파티션 삭제
파티션을 삭제하는 데 사용되는 명령 구문은 다음과 같습니다.
./hcat –e "ALTER TABLE table_name DROP [IF EXISTS] PARTITION partition_spec,.
PARTITION partition_spec,...;"
다음 쿼리는 파티션을 삭제하는 데 사용됩니다-
./hcat –e "ALTER TABLE employee DROP [IF EXISTS] PARTITION (year=’1203’);"