> ## Documentation Index
> Fetch the complete documentation index at: https://www.integrate.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# ETL: 초급 Part05: Destination 설정

> Integrate.io ETL의 Destination 컴포넌트 종류와 각 데이터베이스, 클라우드 스토리지, SaaS 등 로드 대상별 상세 설정 방법을 ETL을 처음 사용하는 사용자도 이해하기 쉽게 단계별로 소개합니다. 사용자 환경에 맞춰 활용해 보시기 바랍니다.

안녕하세요. 이번에는 Destination 컴포넌트의 설정, 즉 데이터의 로드 대상이 되는 **Destination**의 데이타베이스나 스토리지에 관한 설정에 대해서 이야기 하겠습니다. 먼저 Destination 컴포넌트에는 보시는 바와 같은 유형이 있습니다.

<Frame>
  <img src="https://mintcdn.com/integrateio/IQlUL6V1DEOwV22h/images/korean-knowledge-base/novice-part05-ko/image-1.webp?fit=max&auto=format&n=IQlUL6V1DEOwV22h&q=85&s=26d92ed793b0c0ae564986b2cb079c3a" alt="novice-part05-ko image 1" width="1055" height="801" data-path="images/korean-knowledge-base/novice-part05-ko/image-1.webp" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/integrateio/IQlUL6V1DEOwV22h/images/korean-knowledge-base/novice-part05-ko/image-2.webp?fit=max&auto=format&n=IQlUL6V1DEOwV22h&q=85&s=43aa53d61b2a8cb6adea0bf12139cf28" alt="novice-part05-ko image 2" width="1054" height="522" data-path="images/korean-knowledge-base/novice-part05-ko/image-2.webp" />
</Frame>

위의 Destination 목록의 대상 외에도 Curl로 데이터 쓰기를 지원합니다. 여기에 대해서는, 다른 가이드 「[Xplenty : Curl Function을 사용한 데이터 갱신 (데모 동영상 있음)](https://www.notion.so/Curl-Function-e443d7c90e854f8fac3318768915905e?pvs=21)」에서 해설하고 있으므로 확인 해 보세요.
이번에는 Destination 컴포넌트 중에서 Amazon Redshift나 BigQuery와 같은 특정 Destination에 저장하는 것도 있지만, Database나 Storage와 같이, Destination의 대상을 설정하는 것이 있습니다. 그래서 Database와 Storage에 대해 자세히 살펴 보겠습니다.

**1. Database** 컴포넌트

이 중에서 Database를 선택하면 다음 목록에서 원하는 데이터베이스를 선택할 수 있습니다.

<Frame>
  <img src="https://mintcdn.com/integrateio/IQlUL6V1DEOwV22h/images/korean-knowledge-base/novice-part05-ko/image-3.webp?fit=max&auto=format&n=IQlUL6V1DEOwV22h&q=85&s=33c3200897f8c27402d5e12f70588207" alt="novice-part05-ko image 3" width="1053" height="624" data-path="images/korean-knowledge-base/novice-part05-ko/image-3.webp" />
</Frame>

### **데이터 조작 방법이 다양함**

또, 상세 설정에서 선택가능한 조작 방법으로는 **추가,** **2가지 덮어쓰기, 2가지 추가 혹은 덮어쓰기**의 설정이 가능합니다. Destination 데이터베이스에서 허용된 명령어에 따라 적절한 옵션 선택이 필요합니다.

<Frame>
  <img src="https://mintcdn.com/integrateio/iVRIdUvvN5zDvCJc/images/korean-knowledge-base/novice-part05-ko/image-4.webp?fit=max&auto=format&n=iVRIdUvvN5zDvCJc&q=85&s=b168938c8255550c7147a557dad7dc23" alt="novice-part05-ko image 4" width="1056" height="829" data-path="images/korean-knowledge-base/novice-part05-ko/image-4.webp" />
</Frame>

### **데이터 조작 전과 조작 후에 추가적인 SQL을 실행할 수 있습니다.**

Pre-action SQL과 Post-action SQL에서는 데이터를 데이터베이스에 쓰기 직전과 직후에 추가적인 SQL 처리를 설정할 수 있습니다.
구체적인 예로서는 사전에 테이블을 만들거나 대상 테이블에 데이터 조작 후에 업데이트된 데이터를 바탕으로 다른 테이블에 데이터를 쓰는데 이용할 수 있습니다.

**2. File Storage** 컴포넌트

File storage를 선택한 경우에 원하는 스토리지를 선택할 수 있습니다.

<Frame>
  <img src="https://mintcdn.com/integrateio/iVRIdUvvN5zDvCJc/images/korean-knowledge-base/novice-part05-ko/image-5.webp?fit=max&auto=format&n=iVRIdUvvN5zDvCJc&q=85&s=1e54115679d444d5f694b77dec4543fe" alt="novice-part05-ko image 5" width="1055" height="647" data-path="images/korean-knowledge-base/novice-part05-ko/image-5.webp" />
</Frame>

**저장시 옵션은 다음 4가지가 있습니다**

*

**Write all files directly and fail the job if target directory already exists**
파일은 대상 디렉토리에 직접 기록됩니다. 기본적으로 대상 디렉토리가 이미 있으면 작업이 실패합니다.
변수를 사용하여 작업이 실행될 때마다 새 디렉토리 이름을 동적으로 생성할 수 있습니다(예:/output/\$\{\_JOB\_ID}).

<Frame>
  <img src="https://mintcdn.com/integrateio/iVRIdUvvN5zDvCJc/images/korean-knowledge-base/novice-part05-ko/image-6.webp?fit=max&auto=format&n=iVRIdUvvN5zDvCJc&q=85&s=03d2b39417f6ebddbc15d51a7209b62b" alt="novice-part05-ko image 6" width="1053" height="353" data-path="images/korean-knowledge-base/novice-part05-ko/image-6.webp" />
</Frame>

*

**Write all files directly and delete target directory if already exists**
파일은 대상 디렉토리에 직접 기록됩니다.
**주의:** 실행시에 대상 디렉토리가 있는지 확인하고 존재하는 경우 대상 디렉터리를 삭제합니다.

*

**Write all files directly and replace files in directory if they already exist**
대상 디렉토리에 직접 파일을 씁니다. 이 옵션을 선택하면 실행할 디렉토리가 있어도 작업이 실패하지 않고 기존 디렉토리에 파일이 기록됩니다.
같은 이름의 파일이 디렉토리에 있으면 덮어씁니다. 디렉토리에 파일을 추가하려면 작업 실행마다 고유한 파일 패턴을 사용하도록 변경하십시오(예: 파일 접두사에 변수 \$\{\_JOB\_ID} 사용(아래 참조)).
**주의:** 대상 디렉토리는 작업 실패 시 삭제됩니다.

*

**Use intermediate storage and copy files to an existing directory in destination**
파일은 중간 스토리지에 기록된 후 대상 디렉토리에 복사됩니다.
**주의:** 이 옵션을 사용하는 경우 대상 디렉터리가 있는지 확인합니다. 디렉토리가 없으면 오류가 발생합니다.

## 힌트: 스토리지를 저장할 때 파일 이름 지정에 대해

Xplenty에서 파일을 출력할 때 다음과 같이 자동으로 번호가 부여되는 구조로 되어 있습니다.

<Frame>
  <img src="https://mintcdn.com/integrateio/iVRIdUvvN5zDvCJc/images/korean-knowledge-base/novice-part05-ko/image-7.webp?fit=max&auto=format&n=iVRIdUvvN5zDvCJc&q=85&s=13d834338e8602f7561caa45d265b4b0" alt="novice-part05-ko image 7" width="1200" height="173" data-path="images/korean-knowledge-base/novice-part05-ko/image-7.webp" />
</Frame>

이 파일명에 자동적으로 부여되는 번호를 피해, 원하는 대로 파일명을 설정하는 방법은 아래와 같습니다.

* File storage 컴포넌트 설정 화면의 **Destination action** 에서 **Use intermediate storage and copy files to an existing directory in destination** 을 선택합니다.

<Frame>
  <img src="https://mintcdn.com/integrateio/iVRIdUvvN5zDvCJc/images/korean-knowledge-base/novice-part05-ko/image-8.webp?fit=max&auto=format&n=iVRIdUvvN5zDvCJc&q=85&s=6106d0de837b90b4271b8652f5c474dd" alt="novice-part05-ko image 8" width="1053" height="517" data-path="images/korean-knowledge-base/novice-part05-ko/image-8.webp" />
</Frame>

* 폴더 경로의 지정에 저장할 파일 이름도 포함합니다.

<Frame>
  <img src="https://mintcdn.com/integrateio/iVRIdUvvN5zDvCJc/images/korean-knowledge-base/novice-part05-ko/image-9.webp?fit=max&auto=format&n=iVRIdUvvN5zDvCJc&q=85&s=849748cd8df80f3229079a53a736ec56" alt="novice-part05-ko image 9" width="1053" height="287" data-path="images/korean-knowledge-base/novice-part05-ko/image-9.webp" />
</Frame>

* 의도한 파일 이름으로 지정한 스토리지 경로로 출력됩니다.

<Frame>
  <img src="https://mintcdn.com/integrateio/IQlUL6V1DEOwV22h/images/korean-knowledge-base/novice-part05-ko/image-10.webp?fit=max&auto=format&n=IQlUL6V1DEOwV22h&q=85&s=94e6a977f0cb5a05f6da60efb9275158" alt="novice-part05-ko image 10" width="1192" height="264" data-path="images/korean-knowledge-base/novice-part05-ko/image-10.webp" />
</Frame>

##

**File Storage** 컴포넌트 : 기타 Tips

*

스토리지를 선택하면 유연하게 파일을 저장하는 옵션이 많이 있습니다.
자세한 것은 「[스토리지 서비스 제휴 기능 : Shift-JIS도 대응](https://www.integrate.io/jp/blog/integrateio-storage-ja/)(일본어)」으로 해설하고 있습니다.

*

Merge output to single file
대상 디렉토리에 단일 파일만 기록되는지 확인하십시오. 특정 플랫폼의 파일 크기 제한 때문에 작업이 실패할 수 있습니다.

<Frame>
  <img src="https://mintcdn.com/integrateio/IQlUL6V1DEOwV22h/images/korean-knowledge-base/novice-part05-ko/image-11.webp?fit=max&auto=format&n=IQlUL6V1DEOwV22h&q=85&s=1f506d6013b5951d018ef6795e5a6200" alt="novice-part05-ko image 11" width="1053" height="433" data-path="images/korean-knowledge-base/novice-part05-ko/image-11.webp" />
</Frame>
