1

나는 스테이징 테이블에서 데이터를 삽입 할 하나의 DW 테이블을 가지고 있습니다. DW 테이블에 5 개의 열이 포함되어 있고 스테이징 테이블에서 선택하는 동안 DW 테이블에 이미 5 개의 열이 모두 있는지 확인하고 있습니다. 그렇다면 삽입 (또는 업데이트)을하지 않고 건너 뛰기 그 행 (이미 존재하는 것처럼).적색 변이로 Upsert

5 개의 열이 결합되지 않은 행이 있으면 삽입을합니다.

upsert를 사용하여이를 달성하는 방법이 있습니까? 여기서는 업데이트 작업을하지 않으므로 (삽입 만 무시하고 삭제는 삭제). 나는 업서 트가 올바른 선택인지 확신 할 수 없다.

답변

2

Redshift에는 UPSERT과 같은 것이 없습니다 (documentation 참조). 아직 포함되지 않은 행만 표에로드하려는 경우 트릭을 수행해야합니다.

insert into target_table 
    select 
     * 
    from 
     source_table 
    left join 
     target_table using(col1, col2, col3, col4, col5) 
    where 
     target_table.col1 is null 
;