본문 바로가기
빅데이터 & 시스템/Impala

Impala 에서 invalidate metadata 와 refresh 차이

by True_No.9 2023. 7. 5.

Impala에서 `invalidate metadata`와 `refresh`는

둘 다 메타데이터를 업데이트하는 명령어입니다.

 

그러나 두 명령어 사이에는 중요한 차이점이 있습니다.

 

1. invalidate metadata:

이 명령은 Impala가 메타데이터의 변경 사항에 대해 선행 지식이 없을 때 사용됩니다.

예를 들어, Impala 밖에서 테이블 구조가 변경된 경우에 이 명령어를 사용하면 됩니다.

`invalidate metadata`를 실행하면 Impala는 해당 정보를 카탈로그 서버에서 다시 가져옵니다.

 

사용법은 다음과 같습니다:

sql
INVALIDATE METADATA [database_name].[table_name];

여기서 `database_name`와 `table_name`에는 해당하는 데이터베이스와 테이블 이름을 넣어줍니다.

 

2. `refresh`:

이 명령은 주로 테이블의 데이터에 대한 변경이 있을 때 사용되며

Impala가 이미 메타데이터를 알고 있는 경우에 사용됩니다.

예를 들어, 테이블에 새로운 파티션을 추가하는 경우에 `refresh` 명령어를 사용할 수 있습니다.

Impala의 카탈로그 서버가 메타데이터 정보를 이미 인식하고 있는 상황에서 변경 사항을 반영하기 위해 사용합니다.

 

사용법은 다음과 같습니다:

sql
REFRESH [database_name].[table_name];

여기서 `database_name`와 `table_name`에는 해당하는 데이터베이스와 테이블 이름을 넣어줍니다.

 

결론적으로,

`invalidate metadata`는 Impala가 메타데이터 변경 사항을 알지 못하는 상황에서

메타데이터를 리로드하는 데 사용되며,

`refresh`는 Impala가 메타데이터를 이미 알고 있는 상황에서

데이터 변경 사항을 반영할 때 사용됩니다.

 

주로 `invalidate metadata`는 테이블의 구조가 변경된 경우 사용하고,

`refresh`는 테이블에 새로운 데이터가 추가되거나 삭제된 경우 사용합니다.