> ## 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/_vK8uOUIVr8vjE07/images/creating-packages/novice-part05-ko/image-1.webp?fit=max&auto=format&n=_vK8uOUIVr8vjE07&q=85&s=470ee977a856dc8282921979489b3af8" alt="novice-part05-ko image 1" width="1055" height="801" data-path="images/creating-packages/novice-part05-ko/image-1.webp" />
</Frame>

]\([https://cdn.filestackcontent.com/auto\_image//compress/cache=expiry:max/Oy6EHKf8QpO22shQrJpN)\[](https://cdn.filestackcontent.com/auto_image//compress/cache=expiry:max/Oy6EHKf8QpO22shQrJpN\)\[)

<Frame>
  <img src="https://mintcdn.com/integrateio/_vK8uOUIVr8vjE07/images/creating-packages/novice-part05-ko/image-2.webp?fit=max&auto=format&n=_vK8uOUIVr8vjE07&q=85&s=05556ae3bb681c9e4c10ce84283f865d" alt="novice-part05-ko image 2" width="1054" height="522" data-path="images/creating-packages/novice-part05-ko/image-2.webp" />
</Frame>

]\([https://cdn.filestackcontent.com/auto\_image//compress/cache=expiry:max/coWPt9NjSCe5WpCCdmre](https://cdn.filestackcontent.com/auto_image//compress/cache=expiry:max/coWPt9NjSCe5WpCCdmre))

위의 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/_vK8uOUIVr8vjE07/images/creating-packages/novice-part05-ko/image-3.webp?fit=max&auto=format&n=_vK8uOUIVr8vjE07&q=85&s=be4f247d8943e055c7e36288c3b7c57f" alt="novice-part05-ko image 3" width="1053" height="624" data-path="images/creating-packages/novice-part05-ko/image-3.webp" />
</Frame>

]\([https://cdn.filestackcontent.com/auto\_image//compress/cache=expiry:max/IGJrkpEBTBSHSZF9mdiw](https://cdn.filestackcontent.com/auto_image//compress/cache=expiry:max/IGJrkpEBTBSHSZF9mdiw))

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

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

\[

<Frame>
  <img src="https://mintcdn.com/integrateio/_vK8uOUIVr8vjE07/images/creating-packages/novice-part05-ko/image-4.webp?fit=max&auto=format&n=_vK8uOUIVr8vjE07&q=85&s=657e0f7966ecb58407c5b2b8369ce7f1" alt="novice-part05-ko image 4" width="1056" height="829" data-path="images/creating-packages/novice-part05-ko/image-4.webp" />
</Frame>

]\([https://cdn.filestackcontent.com/auto\_image//compress/cache=expiry:max/kK4XcFDoRT2rPjI8nZnl](https://cdn.filestackcontent.com/auto_image//compress/cache=expiry:max/kK4XcFDoRT2rPjI8nZnl))

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

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

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

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

\[

<Frame>
  <img src="https://mintcdn.com/integrateio/_vK8uOUIVr8vjE07/images/creating-packages/novice-part05-ko/image-5.webp?fit=max&auto=format&n=_vK8uOUIVr8vjE07&q=85&s=a9d172a304bcef44fa84a71e786f990c" alt="novice-part05-ko image 5" width="1055" height="647" data-path="images/creating-packages/novice-part05-ko/image-5.webp" />
</Frame>

]\([https://cdn.filestackcontent.com/auto\_image//compress/cache=expiry:max/7KrgloUQCucWhogQpz6l](https://cdn.filestackcontent.com/auto_image//compress/cache=expiry:max/7KrgloUQCucWhogQpz6l))

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

*

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

\[

<Frame>
  <img src="https://mintcdn.com/integrateio/_vK8uOUIVr8vjE07/images/creating-packages/novice-part05-ko/image-6.webp?fit=max&auto=format&n=_vK8uOUIVr8vjE07&q=85&s=7133d2820365a33083ae623a15cd994e" alt="novice-part05-ko image 6" width="1053" height="353" data-path="images/creating-packages/novice-part05-ko/image-6.webp" />
</Frame>

]\([https://cdn.filestackcontent.com/auto\_image//compress/cache=expiry:max/ntlA0uI6RPu1ma4raGkF](https://cdn.filestackcontent.com/auto_image//compress/cache=expiry:max/ntlA0uI6RPu1ma4raGkF))

*

\*\*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/_vK8uOUIVr8vjE07/images/creating-packages/novice-part05-ko/image-7.webp?fit=max&auto=format&n=_vK8uOUIVr8vjE07&q=85&s=642e0b63b88919cb44002ebcc4512707" alt="novice-part05-ko image 7" width="1200" height="173" data-path="images/creating-packages/novice-part05-ko/image-7.webp" />
</Frame>

]\([https://cdn.filestackcontent.com/auto\_image//compress/cache=expiry:max/wDbHf44FQUWtnfFBFUq6](https://cdn.filestackcontent.com/auto_image//compress/cache=expiry:max/wDbHf44FQUWtnfFBFUq6))

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

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

<Frame>
  <img src="https://mintcdn.com/integrateio/_vK8uOUIVr8vjE07/images/creating-packages/novice-part05-ko/image-8.webp?fit=max&auto=format&n=_vK8uOUIVr8vjE07&q=85&s=ab8aed0f3f0869c25c5d2904650dff5d" alt="novice-part05-ko image 8" width="1053" height="517" data-path="images/creating-packages/novice-part05-ko/image-8.webp" />
</Frame>

]\([https://cdn.filestackcontent.com/auto\_image//compress/cache=expiry:max/Mz1qbhQPQoW75EToSA8q](https://cdn.filestackcontent.com/auto_image//compress/cache=expiry:max/Mz1qbhQPQoW75EToSA8q))

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

<Frame>
  <img src="https://mintcdn.com/integrateio/_vK8uOUIVr8vjE07/images/creating-packages/novice-part05-ko/image-9.webp?fit=max&auto=format&n=_vK8uOUIVr8vjE07&q=85&s=b7ab3c71849c877002d2be7b0bfa8e87" alt="novice-part05-ko image 9" width="1053" height="287" data-path="images/creating-packages/novice-part05-ko/image-9.webp" />
</Frame>

]\([https://cdn.filestackcontent.com/auto\_image//compress/cache=expiry:max/w28FbRypQkG7gZT2DVuk](https://cdn.filestackcontent.com/auto_image//compress/cache=expiry:max/w28FbRypQkG7gZT2DVuk))

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

<Frame>
  <img src="https://mintcdn.com/integrateio/_vK8uOUIVr8vjE07/images/creating-packages/novice-part05-ko/image-10.webp?fit=max&auto=format&n=_vK8uOUIVr8vjE07&q=85&s=3238c4be858da37f2309ddaeb9eefe5a" alt="novice-part05-ko image 10" width="1192" height="264" data-path="images/creating-packages/novice-part05-ko/image-10.webp" />
</Frame>

]\([https://cdn.filestackcontent.com/auto\_image//compress/cache=expiry:max/3WH34eMgQs6uc7iFhfZm](https://cdn.filestackcontent.com/auto_image//compress/cache=expiry:max/3WH34eMgQs6uc7iFhfZm))

##

**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/_vK8uOUIVr8vjE07/images/creating-packages/novice-part05-ko/image-11.webp?fit=max&auto=format&n=_vK8uOUIVr8vjE07&q=85&s=a35e51562567837791cbdc07ff22c2c4" alt="novice-part05-ko image 11" width="1053" height="433" data-path="images/creating-packages/novice-part05-ko/image-11.webp" />
</Frame>

]\([https://cdn.filestackcontent.com/auto\_image//compress/cache=expiry:max/1nfpywkaQ5COP8AoIDwz](https://cdn.filestackcontent.com/auto_image//compress/cache=expiry:max/1nfpywkaQ5COP8AoIDwz))

\<!-- notionvc: 811757cd-f1c2-41e0-ae73-653b9cae7f7a -->

##

\<!-- Google Tag Manager hidden fields -->

\<!-- End Google Tag Manager hidden fields -->

\<!-- Text input-->

Get Started

Free 7-day trial. Easy setup. Cancel any time
