반응형
Hive : 테이블의 모든 파티션을 표시하는 방법은 무엇입니까?
1000 개 이상의 파티션이있는 테이블이 있습니다.
" Show partitions
"명령은 적은 수의 파티션 만 나열합니다.
모든 파티션을 어떻게 표시 할 수 있습니까?
최신 정보:
"
show partitions
"명령은 정확히 500 개의 파티션 만 나열합니다."
select ... where ...
"는 500 개의 파티션 만 처리합니다!
출력이 표시 될 때 CLI에 약간의 제한이 있습니다. 출력을 로컬 파일로 내보내는 것이 좋습니다.
$hive -e 'show partitions table;' > partitions
하이브> 파티션 표시 table_name;
Hive MetaStore 테이블, "PARTITIONS"테이블에서 파티션 정보를 볼 수 있습니다. "TBLS"조인 "Partition"을 사용하여 특수 테이블 파티션을 쿼리 할 수 있습니다.
좋아, 나는 wmky의 답변을 위와 확장 하여이 답변을 작성하고 있으며, 더비 대신 메타 스토어에 대해 mysql을 구성했다고 가정합니다.
select PART_NAME FROM PARTITIONS WHERE TBL_ID=(SELECT TBL_ID FROM TBLS WHERE TBL_NAME='<table_name>');
위의 쿼리는 파티션 열의 가능한 모든 값을 제공합니다.
예:
hive> desc clicks_fact;
OK
time timestamp
..
day date
file_date varchar(8)
# Partition Information
# col_name data_type comment
day date
file_date varchar(8)
Time taken: 1.075 seconds, Fetched: 28 row(s)
파티션 열의 값을 가져 오겠습니다.
mysql> select PART_NAME FROM PARTITIONS WHERE TBL_ID=(SELECT TBL_ID FROM TBLS WHERE TBL_NAME='clicks_fact');
+-----------------------------------+
| PART_NAME |
+-----------------------------------+
| day=2016-08-16/file_date=20160816 |
| day=2016-08-17/file_date=20160816 |
....
....
| day=2017-09-09/file_date=20170909 |
| day=2017-09-08/file_date=20170909 |
| day=2017-09-09/file_date=20170910 |
| day=2017-09-10/file_date=20170910 |
+-----------------------------------+
1216 rows in set (0.00 sec)
모든 파티션 열을 반환합니다.
참고 : 관련된 DB가있을 때 JOIN
테이블 DBS
ON DB_ID
(즉, 여러 DB에 동일한 table_name이있는 경우)
참조 URL : https://stackoverflow.com/questions/15616290/hive-how-to-show-all-partitions-of-a-table
반응형
'IT박스' 카테고리의 다른 글
다중 블루투스 연결 (0) | 2020.12.26 |
---|---|
PHP-IN 절 배열과 함께 PDO 사용 (0) | 2020.12.25 |
포크 대 스레딩 (0) | 2020.12.25 |
JVM에서 부동 소수점 연산이 모든 플랫폼에서 동일한 결과를 제공합니까? (0) | 2020.12.25 |
Visual Studio 2017에서 WiX 프로젝트를 활성화하는 방법 (0) | 2020.12.25 |