복붙노트

[HADOOP] 하이브 : 테이블의 모든 파티션을 표시하는 방법?

HADOOP

하이브 : 테이블의 모든 파티션을 표시하는 방법?

나는 1000 개가 넘는 파티션이있는 테이블을 가지고있다.

"Show partitions"명령은 적은 수의 파티션 만 나열합니다.

모든 파티션을 어떻게 표시합니까?

최신 정보:

해결법

  1. ==============================

    1.출력이 표시 될 때 CLI에 약간의 제한이 있습니다. 출력을 로컬 파일로 내보내는 것이 좋습니다.

    출력이 표시 될 때 CLI에 약간의 제한이 있습니다. 출력을 로컬 파일로 내보내는 것이 좋습니다.

    $hive -e 'show partitions table;' > partitions
    
  2. ==============================

    2.hive> show partitions table_name;

    hive> show partitions table_name;

  3. ==============================

    3.Hive MetaStore 테이블, "PARTITIONS"테이블의 파티션 정보를 볼 수 있습니다. "TBLS"조인 "파티션"을 사용하여 특수 테이블 파티션을 쿼리 할 수 ​​있습니다.

    Hive MetaStore 테이블, "PARTITIONS"테이블의 파티션 정보를 볼 수 있습니다. "TBLS"조인 "파티션"을 사용하여 특수 테이블 파티션을 쿼리 할 수 ​​있습니다.

  4. ==============================

    4.좋아, 나는 wmky의 답변을 위와 같이 확장하여이 답변을 작성하고있다. 더비 대신 metastore 용으로 mysql을 설정했다고 가정한다.

    좋아, 나는 wmky의 답변을 위와 같이 확장하여이 답변을 작성하고있다. 더비 대신 metastore 용으로 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가 관련되어있을 때 DB_ID에 DBS 테이블을 가입 시키십시오 (예 : 여러 DB에 동일한 table_name이있는 경우).

  5. from https://stackoverflow.com/questions/15616290/hive-how-to-show-all-partitions-of-a-table by cc-by-sa and MIT license