Sqoop을 증가 추출 유사한 병합 동작 하이브 오라클을 달성하면

데이터웨어 하우스 구축의 데이터 추출 측면은 종종 증가 비즈니스 라이브러리 데이터를 추출해야합니다. 그러나 사업은 상태 변경, 당신은 하이브를 업데이트 동기화 데이터 변경에 필요한 시간에 따라 일어날 것 같은 라이브러리 데이터의 계층이 아니다. 오라클 데이터웨어 하우스 작업을 수행하는 데 사용하면 병합 방법 병합 이전 및 새 데이터를 사용할 수 있습니다. 그러나,이 기능하지 않는 벌집 본원 Sqoop을 추출하여 목적은 자동적으로 데이터를 병합.

테이블 디자인

테이블은 세 가지로 구분된다 추출

  1. PT 필드 파티션에 따라 매일 결합의 스냅 샷을 저장 테이블, _arc
  2. PT 필드 분할에 따라, 상기 추출 된 데이터 일 증분 저장하는 테이블 _Inc
  3. 접미사 테이블이없는 한, 후속 최종 테이블 ETL 작업을 가리 킵니다.

단계

  1. 하이브 수입, 데이터 가져 오기 시트 _inc에 대한 사용 Sqoop을
  2. 전체를 사용하여 코어, 가입, 유착, SQL 합병의 조합이 파티션 데이터 테이블의 inc한다면 그 날과 아크 전날 분할 된 데이터 파티션 _arc 테이블을 병합 더 많은 일.
  3. 파티션 테이블 포인트의 마지막 날은 하이브 명령 세트 위치에 따라 _arc.

코드 포인트 :

병합 SQL

use ods; 
insert overwrite table mytable_arc partition (pt='20200407') 
select coalesce(a.id,b.id), if(a.id is null, b.type, a.type), if(a.id is null, b.amt, a.amt) from (
  select id, type, amt
  from mytable_inc where pt='20200407'
) a full join (
  select id, type, amt
  from mytable_arc where pt='20200406'
) b on a.%s = b.%s" 

하이브 설정 위치

use ods; 
alter table mytable set location 'hdfs://hadoop01:9000/user/hive/warehouse/ods.db/mytable_arc/pt=20200407'"

추천

출처www.cnblogs.com/hupingzhi/p/12654898.html