

 Amazon Redshift는 패치 198부터 새 Python UDF 생성을 더 이상 지원하지 않습니다. 기존 Python UDF는 2026년 6월 30일까지 계속 작동합니다. 자세한 내용은 [블로그 게시물](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)을 참조하세요.

# 새 데이터 업데이트 및 삽입
<a name="t_updating-inserting-using-staging-tables-"></a>

MERGE 명령을 사용하여 기존 테이블에 새 데이터를 효율적으로 추가할 수 있습니다. 스테이징 테이블을 만든 다음 이 섹션에 설명된 방법 중 하나를 사용하여 스테이징 테이블에서 대상 테이블을 업데이트하여 병합 작업을 수행합니다. MERGE 명령에 대한 자세한 내용은 [MERGE](r_MERGE.md) 섹션을 참조하세요.

[병합 예](merge-examples.md)에서는 TICKIT 데이터 세트라고 하는 Amazon Redshift용 샘플 데이터 세트를 사용합니다. 필수 조건으로 [일반 데이터베이스 작업 시작하기](https://docs.aws.amazon.com/redshift/latest/gsg/database-tasks.html)에서 제공되는 지침에 따라 TICKIT 테이블과 데이터를 설정할 수 있습니다. 샘플 데이터 세트에 대한 자세한 내용은 [샘플 데이터베이스](https://docs.aws.amazon.com/redshift/latest/dg/c_sampledb.html)에서 확인할 수 있습니다.

## 병합 방법 1: 기존 행 교체
<a name="merge-method-replace-existing-rows"></a>

대상 테이블의 모든 열을 덮어쓰는 경우 병합을 수행하는 가장 빠른 방법은 기존 행을 바꾸는 것입니다. 이렇게 하면 업데이트할 행을 내부 조인을 사용하여 삭제하기 때문에 대상 테이블을 한 번만 스캔합니다. 행은 삭제된 후에 스테이징 테이블에서 단일 삽입 작업을 통해 새 행으로 교체됩니다.

다음이 모두 참인 경우, 이 방법을 사용하세요.
+ 대상 테이블과 스테이징 테이블에 동일한 열이 포함되어 있습니다.
+ 대상 테이블 열의 모든 데이터를 스테이징 테이블의 모든 열로 교체하려 합니다.
+ 병합에서 스테이징 테이블의 모든 열을 사용합니다.

이러한 기준 중 하나라도 해당되지 않는 경우 다음 섹션에 설명된 병합 방법 2: MERGE를 사용하지 않고 열 목록 지정을 사용하세요.

스테이징 테이블의 열 일부를 사용하지 않는 경우, 변경되지 않는 행을 WHERE 절을 이용해 배제하여 DELETE 및 INSERT 문을 필터링합니다. 하지만 스테이징 테이블의 열 대부분이 병합에 참여하지 않는다면 이 섹션 후반부에서 설명하는 것처럼 별도의 단계에서 UPDATE와 INSERT를 수행하는 것이 좋습니다.

## 병합 방법 2: MERGE를 사용하지 않고 열 목록 지정
<a name="merge-method-specify-column-list"></a>

전체 행을 덮어쓰는 대신 대상 테이블의 특정 열을 업데이트하려면 이 방법을 사용합니다. 이 방법은 추가 업데이트 단계가 필요하고 MERGE 명령을 사용하지 않기 때문에 이전 방법보다 시간이 오래 걸립니다. 다음 중 참인 것이 있다면 이 방법을 사용하세요.
+ 대상 테이블의 모든 열을 업데이트하는 것이 아닙니다.
+ 스테이징 테이블의 행 대부분이 업데이트에서 사용되지 않습니다.

**Topics**
+ [병합 방법 1: 기존 행 교체](#merge-method-replace-existing-rows)
+ [병합 방법 2: MERGE를 사용하지 않고 열 목록 지정](#merge-method-specify-column-list)
+ [임시 스테이징 테이블 생성](merge-create-staging-table.md)
+ [기존 행을 교체하여 병합 작업 수행](merge-replacing-existing-rows.md)
+ [MERGE 명령을 사용하지 않고 열 목록을 지정하여 병합 작업 수행](merge-specify-a-column-list.md)
+ [병합 예](merge-examples.md)