2016-05-31 2 views
4

하이브에서 관리되는 테이블과 외부 테이블의 두 가지 종류를 만들 수 있습니다.외부 하이브 테이블의 위치에 대한 쓰기 권한이 필요한 이유는 무엇입니까?

관리되는 테이블의 경우 사용자가 데이터를 소유하므로 사용자가 테이블을 삭제하면 데이터가 삭제됩니다.

외부 테이블의 경우 데이터 소유권이 없으므로 이러한 테이블을 삭제하면 기본 데이터가 삭제되지 않습니다. 메타 데이터 만 삭제됩니다.

최근에는 HDFS에서 쓰기 (수정) 권한이없는 위치에 외부 테이블을 만들 수 없다는 사실을 확인했습니다. 나는 이것을 완전히 이해하지 못한다.

사용 사례 : 사용자가 대량 생산하는 데이터가 읽기 전용이므로 매우 일반적입니다. 따라서 하이브를 통해 이러한 데이터를 변환하려면이 거대한 데이터를 쓰기 권한이있는 위치로 복사해야합니까?

도와주세요.

답변

0

외부 데이터를 삭제해도 데이터가 삭제되지는 않지만, 외부 테이블이 읽기 전용임을 의미하지는 않습니다. 예를 들어, 외부 테이블에서 INSERT OVERWRITE을 수행 할 수 있어야합니다.

즉, 읽기 액세스 권한이있을 때만 (내부) 테이블을 사용할 수 있으므로 외장 테이블의 경우도 마찬가지라고 생각합니다. 쓰기 권한이있는 계정으로 테이블을 만든 다음 일반 계정으로 사용하십시오.

관련 문제