Simple Data Integrator 応用編：ローカル・FTP・SFTP・クラウド間のファイル転送自動化

# はじめに
システム間の連携や定期的なバッチ処理では、ファイル転送が必要となるケースが多くあります。  
「Simple Data Integrator（SDI）」は、GUIベースでデータ連携ジョブを作成・実行できる軽量ETLツールであり、ローカルディスク、FTP/SFTPサーバー、クラウドストレージ間のファイル転送をノーコードで実現できます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560129/15e15bde-4259-4109-bc90-8d09a884ff15.png" width="500">

本記事では、SDIを用いてローカル・FTP・SFTP・クラウド間のファイル転送を自動化する構成例とその設定方法について解説します。

# 構成
Simple Data Integrator（SDI）を使用すると、ローカル、FTP、SFTP、クラウドストレージ間の任意の2拠点間でファイル転送が可能です。  
ソースをFTP、ターゲットをAWS S3とし、CSVファイルを転送する例で設定してみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560129/4cce09e5-6c6f-46e3-8309-f5a1984ca1fa.png)

# 要件
`test*.csv` を FTP から AWS S3 へ転送

# 設定

## 1. ソースコネクション設定（FTP）

### 1.1 「新規コネクション」ボタンをクリックして設定画面を開く
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560129/eb0f9d6b-6be6-7107-5474-eb6ce6950591.png)

### 1.2 FTP接続情報を設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560129/b6f9780c-5983-434e-bc31-47957e6147c8.png)

| No | 項目 | 説明 |
|----|------|------|
| 1 | コネクション名 | 任意の名前を入力（例：`CSV_FTP`）。重複チェックはありませんが、ユニークな名前を推奨します。 |
| 2 | ロケーション | `ファイル` を選択 |
| 3 | データタイプ | `CSV` を選択<br>※ ファイルをそのまま転送する場合、ソースとターゲットのデータタイプは同じ必要があります。 |
| 4 | Storage Type | `FTP/FTPS` を選択 |
| 5 | ファイル保存先の情報 | FTP接続に必要な情報を入力してください。<br>参考: https://ja.sdi.ricct.com/userguide/connectioncsvexcel/#ftpftps |
| 6 | 接続テスト | `[接続テスト]` ボタンで接続確認。成功すると下記メッセージが表示されます。<br> ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560129/2895baaa-276a-fd49-f9fd-163d1a3b86ea.png) |

## 2. ターゲットコネクション設定（AWS S3）

### 2.1 「新規コネクション」ボタンをクリックして設定画面を開く
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560129/eb0f9d6b-6be6-7107-5474-eb6ce6950591.png)

### 2.2 AWS S3接続情報を設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560129/b280c17c-bc1f-4576-9d77-86bec7d7b90b.png)

| No | 項目 | 説明 |
|----|------|------|
| 1 | コネクション名 | 任意の名前を入力（例：`AWS_CSV`）。管理上ユニークな名前を推奨。 |
| 2 | ロケーション | `ファイル` を選択 |
| 3 | データタイプ | `CSV` を選択 |
| 4 | Storage Type | `AWS S3` を選択 |
| 5 | ファイル保存先の情報 | S3 接続に必要な情報を入力してください。<br>参考: https://ja.sdi.ricct.com/userguide/connectioncsvexcel/#aws-s3 |
| 6 | 接続テスト | `[接続テスト]` ボタンで接続確認。成功すると下記メッセージが表示されます。<br> ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560129/2895baaa-276a-fd49-f9fd-163d1a3b86ea.png) |

## 3. マッピング設定

### 3.1 「新規マッピング」ボタンをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560129/a55e5ced-619b-975f-37db-4a50437b4993.png)

### 3.2 ファイル転送マッピングの設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560129/80de47af-217a-4332-b036-511eb522219a.png)

| No | 項目 | 説明 |
|----|------|------|
| 1 | マッピング名 | 任意の名前を入力（ユニーク推奨） |
| 2 | ソースコネクション | `CSV_FTP` を選択 |
| 3 | ターゲットコネクション | `AWS_CSV` を選択 |
| 4 | ソースファイルをそのまま転送 | チェックを入れる |
| 5 | ターゲット CSV ファイル名 | 「ソースファイル名を使用」にチェックを入れる |

### 3.3 対象ファイル詳細設定
「対象ファイル詳細」ボタンをクリックし設定画面を開く  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560129/d0758284-44ad-4f2e-b591-2c4b33b4b95c.png)

| No | 項目 | 説明 |
|----|------|------|
| 1 | データ読込対象 | `ファイル名パターン` を選択 |
| 2 | ファイル名パターン | `ワイルドカード` を選択 |
| 3 | ファイルマスク | `test*.csv` を入力 |

「OK」ボタンで画面を閉じる

## 4. 動作確認

### 4.1 FTPサーバーにファイルを配置  
例：`test1.csv`, `test2.csv`

### 4.2 マッピングを実行  
「マッピング実行」ボタンをクリック  
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560129/402e62a6-e3ac-d3ab-d234-2a6dda6b61af.png" width="400">

#### 実行履歴の確認  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560129/02126b20-bf4d-4091-84cb-92ae3e0b4ac1.png)

`test1.csv`, `test2.csv` が正常に転送されていることを確認

#### AWS S3 上でのアップロード確認  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560129/2373865d-0f51-4aed-b7a4-2a0a513d587c.png)

## 5. 保存

「保存」ボタンをクリックしてマッピング設定を保存  
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560129/d2b2b877-ed05-7a27-608f-728ba61e275d.png" width="400">

:::note info
定期的にデータ連携したい場合は、スケジューラーを作成してマッピングを登録してください。  
設定方法の詳細は以下をご参照ください：  
https://ja.sdi.ricct.com/userguide/schedule/
:::

---

以上です。

[Simple Data Integrator (SDI) 実践入門](https://qiita.com/RiCCT/items/3dc109ff82546459a8b0 "Simple Data Integrator (SDI) 実践入門")

# 参考資料

- [SDI 日本語公式サイト](https://ja.sdi.ricct.com/ "SDI日本語公式サイト")  
- [SDI ファイル設定ガイド](https://ja.sdi.ricct.com/userguide/connectioncsvexcel/ "SDIファイル設定")