[HADOOP] HIVE 테이블에서 가장 최근의 파티션을 찾는 방법
HADOOPHIVE 테이블에서 가장 최근의 파티션을 찾는 방법
나는 201 개의 파티션을 가진 파티션 테이블을 가지고있다. 이 테이블에서 최신 파티션을 찾고이를 사용하여 데이터를 처리해야합니다. 모든 파티션의 목록을 찾는 쿼리는 다음과 같습니다.
use db;
show partitions table_name;
이 파티션의 최신 버전을 찾으려면 쿼리가 필요합니다. 파티션 형식입니다.
ingest_date=2016-03-09
내게 잘못된 결과를 준 max ()를 사용하여 시도했다. 나는 전체 테이블을 가로 질러 가고 싶지 않다.
select max(ingest_date) from db.table_name;
이것은 나에게 예상되는 출력을 줄 것이다 ..하지만 1 위 자리에 파티션을 가지고있는 모든 지점을 죽인다.
HIve 테이블의 최신 파티션을 가져 오는 더 효율적인 쿼리가 있습니까?
해결법
-
==============================
1."쇼 파티션"을 사용할 수 있습니다 :
"쇼 파티션"을 사용할 수 있습니다 :
hive -e "set hive.cli.print.header=false;show partitions table_name;" | tail -1 | cut -d'=' -f2
이렇게하면 "2016-03-09"가 출력됩니다.
-
==============================
2.위에 제시된 것처럼 하이브 쉘에서 "show partitions"을 실행하지 않으려면 max () 쿼리에 필터를 적용 할 수 있습니다. 그것은 완전한 스캔을하지 않을 것이며 결과는 상당히 빨라야합니다!
위에 제시된 것처럼 하이브 쉘에서 "show partitions"을 실행하지 않으려면 max () 쿼리에 필터를 적용 할 수 있습니다. 그것은 완전한 스캔을하지 않을 것이며 결과는 상당히 빨라야합니다!
db.table_name에서 max (ingest_date)를 선택하십시오. 여기서 ingest_date> date_add (current_date, -3)는 2-3 개의 파티션 만 검색합니다.
from https://stackoverflow.com/questions/36095790/how-to-find-the-most-recent-partition-in-hive-table by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] SQOOP SQLSERVER "적절한 연결 관리자가 설정되지 않았습니다"드라이버를로드하지 못했습니다. (0) | 2019.07.15 |
---|---|
[HADOOP] Hadoop : 클러스터에 여러 IP 주소 바인딩 NameNode (0) | 2019.07.15 |
[HADOOP] 파이썬과 하이브 간의 연결 (1) | 2019.07.15 |
[HADOOP] spark-submit을 사용하면 --total-executor-core 옵션의 동작은 무엇입니까? (0) | 2019.07.15 |
[HADOOP] Mahout을 사용하여 속도를 높이려면 Mahout in Action을 구입할 가치가 있습니까? 아니면 다른 우수한 소스가 있습니까? (0) | 2019.07.15 |