복붙노트

[HADOOP] HDFS 변경 사항이있는 Hive 외부 테이블 업데이트

HADOOP

HDFS 변경 사항이있는 Hive 외부 테이블 업데이트

말하자면, myFile.csv 파일 (HDFS에 있음)에서 Hive 외부 테이블 "myTable"을 만들었습니다.

myFile.csv가 매일 바뀌면 "myTable"을 하루에 한 번 업데이트하는 데 관심이 있습니다.

매일 테이블을 업데이트하라는 HiveQL 쿼리가 있습니까?

고맙습니다.

추신

내가 디렉토리와 같은 방식으로 작동하는지 알고 싶습니다 : "myDir"에 10 개의 파일이 들어있을 때 HDFS 디렉토리 "myDir"에서 하이브 파티션을 만듭니다. 다음날 "myDIr"에는 20 개의 파일이 포함됩니다 (10 개의 파일이 추가되었습니다). 하이브 파티션을 업데이트해야합니까?

해결법

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

    1.Hive에는 기본적으로 두 가지 유형의 테이블이 있습니다.

    Hive에는 기본적으로 두 가지 유형의 테이블이 있습니다.

    하나는 테이블 데이터를 생성 할 때마다 하이브 창고가 관리하는 Managed Table이며 내부웨어 하우스에 복사됩니다. 쿼리 결과에는 최신 데이터를 사용할 수 없습니다.

    기타는 하이브가 내부웨어 하우스로 데이터를 복사하지 않는 외부 테이블입니다.

    따라서 테이블에서 쿼리를 실행할 때마다 파일에서 데이터를 검색합니다.

    따라서 쿼리 출력에서 ​​최신 데이터를 가질 수도 있습니다.

    그것이 외부 테이블의 목표 중 하나입니다.

    테이블을 삭제할 수도 있으며 데이터가 손실되지 않습니다.

  2. ==============================

    2.LOCATION '/path/to/myFile.csv'절을 테이블 create 문에 추가하면 Hive에서 아무 것도 업데이트하지 않아도됩니다. 쿼리에서 항상 최신 버전의 파일을 사용합니다.

    LOCATION '/path/to/myFile.csv'절을 테이블 create 문에 추가하면 Hive에서 아무 것도 업데이트하지 않아도됩니다. 쿼리에서 항상 최신 버전의 파일을 사용합니다.

  3. from https://stackoverflow.com/questions/17027853/updating-hive-external-table-with-hdfs-changes by cc-by-sa and MIT license