[HADOOP] 다른 하이브 테이블에서 하나 개의 하이브 테이블을 새로 고침
HADOOP다른 하이브 테이블에서 하나 개의 하이브 테이블을 새로 고침
난 내가 매 시간마다 Sqoop을에게 증분 수입을 사용하고이를 준비 RDBMS에서 데려하고 몇 하이브 테이블을 가지고있다. 나는이 테이블을 조인하고 새로운 차원 테이블을 만드는 오전. 내가 하이브 스테이징 테이블에 RDBMS에서 새 행에 가져올 때마다, 나는 차원 테이블을 새로해야합니다. 새로운 행이없는 경우, 희미한 테이블의 새로 고침을 수행 할 수 없습니다. 내가 사용 하이브 버전은 ACID 기능이 없습니다.
이것은 하이브에서 얻을 수있는 방법에 대한 몇 가지 조언이 필요합니다.
해결법
-
==============================
1.당신은 다른 데이터베이스와 같은 기존 하이브 테이블에 새로운 데이터를 삽입 할 수 있습니다. 그리고 하이브는 또한 WHERE 절이 존재합니다 지원합니다.
당신은 다른 데이터베이스와 같은 기존 하이브 테이블에 새로운 데이터를 삽입 할 수 있습니다. 그리고 하이브는 또한 WHERE 절이 존재합니다 지원합니다.
INSERT INTO TABLE MyDim SELECT Id, Blah1, Blah2 FROM MySource s WHERE NOT EXISTS (SELECT 1 FROM MyDim z WHERE z.Id =s.Id)
그러나 캐치가있다 : 각 INSERT 새로운 HDFS 파일을 생성합니다, 참여 제로 레코드가있는 경우에도. 너무 많은 분열은 시간이 지남에 따라 성능이 저하됩니다.
주간 "압축"작업이 도움이 될 것입니다 (예를 들어, 이름이 테이블에서 INSERT의 덮어 쓰기를 테이블을 다시 작성 조각난 테이블의 이름을 바꿀 이름을 드롭)
from https://stackoverflow.com/questions/32004374/refresh-one-hive-table-from-another-hive-table by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 여기서 절 어떻게 다른과 하이브에 덮어 쓰기 표를 삽입? (0) | 2019.10.19 |
---|---|
[HADOOP] 아파치 스파크의 배포 문제 (클러스터 모드) 하이브로 (0) | 2019.10.19 |
[HADOOP] 무한 EMR에 loopin S3-distcp 및 하둡 distcp 작업 (0) | 2019.10.19 |
[HADOOP] / 빈 / SH : 행 62 :에 : 명령을 찾을 수 없습니다 (0) | 2019.10.19 |
[HADOOP] 선택 스파크 및 별명에 열을 추가 (0) | 2019.10.19 |