Simple Data Integrator (SDI) 実践入門：データ連携 (Oracle からSqlserverへの連携例)

# はじめに

データベース間でデータを連携する際は、項目同士を対応付ける「マッピング設定」が必要です。  
本記事では、**Oracle と SQL Server 間のデータ連携**を例に、Simple Data Integrator（SDI）を用いたマッピング設定の手順を解説します。

:::note info  
リモート環境（SDI Gatewayサービス経由）でのデータ連携でも、マッピング設定は必要です。ローカル環境と同様の手順で設定できます。  
:::

---

# 構成図

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560129/c26ea5f4-808a-6efc-e2fd-a558b1e192fb.png" width="500">

### ソース（Oracle）

スキーマ名：`HR`  
テーブル名：`EMP`

|PK|カラム名|型|
|--|--|--|
|![key_icon.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560129/292a6047-9fbb-db98-6f7c-52db406207d9.png)|EMPID|NUMBER|
||EMPNAME|VARCHAR2|
||DEPT_CODE|VARCHAR2|
||BIRTHDAY|DATE|

### ターゲット（SQL Server）

スキーマ名：`sales`  
テーブル名：`社員マスタ`

|PK|カラム名|型|
|--|--|--|
|![key_icon.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560129/292a6047-9fbb-db98-6f7c-52db406207d9.png)|社員コード|numeric|
||社員名|nchar|
||部署コード|nchar|
||誕生日|datetime|

---

# 設定手順

## 1. コネクション設定

Source DB／Target DB への接続設定を行います。  
詳しい手順は下記記事を参照してください：  
🔗 https://qiita.com/RiCCT/items/787a41bb54277a3b26c2

|ソースコネクション名|ターゲットコネクション名|
|--|--|
|HRMS_ORACLE<br><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560129/cef61245-bd0d-a64c-0953-f050df793b57.png" width="300">|SALES_SYSTEM__SQLSERVER<br><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560129/e897341e-9e1f-79d4-4163-bfe115bbd10b.png" width="300">|

---

## 2. マッピング設定

### ステップ 1：マッピング作成画面を開く

「新規マッピング」ボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560129/a55e5ced-619b-975f-37db-4a50437b4993.png)

### ステップ 2：ソース／ターゲットを選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560129/751bde80-f7d1-4b6b-86c5-08bd718a89ce.png)

|No|項目|説明|
|--|--|--|
|1|マッピング名|任意の名前を入力（ユニークな名前を推奨）|
|2|ソースコネクション|`HRMS_ORACLE`を選択|
|3|ソーステーブル|`HR.EMP`を選択|
|4|ターゲットコネクション|`SALES_SYSTEM__SQLSERVER`を選択|
|5|ターゲットテーブル|`sales.社員マスタ`を選択|
|6|カラム一覧取得|「カラム一覧取得」ボタンをクリックしてテーブル構造を読み込み|

### ステップ 3：カラムのマッピング設定

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560129/8c66818d-edce-39f9-f55c-9d651a3d29cb.png)

|No|項目|説明|
|--|--|--|
|7|ソースカラム|対応するカラムを選択。自動マッピングも可。<br>例：<br>EMPID → 社員コード<br>EMPNAME → 社員名<br>BIRTHDAY → 誕生日|
|8|マッピング対象|連携対象とするかを指定（今回は「部署コード」を除外）|
|9|更新方式|`Merge` を選択<br>※詳細はこちら：<br>🔗 https://ja.sdi.ricct.com/userguide/mappingtarget/|

---

## 3. テスト実行

「マッピング実行」ボタンをクリックし、動作確認を行います。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560129/402e62a6-e3ac-d3ab-d234-2a6dda6b61af.png" width="400">

:::note info  
**おすすめ**  
マッピング実行前に、`データ参照` ボタンでソース／ターゲットの内容を確認しておくと安心です。  
実行後もターゲットデータを確認し、想定通りの転送が行われたかをチェックしましょう。  
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560129/427515b6-e9e0-5238-74d1-8633ff0e51a3.png)

|No|項目|説明|
|--|--|--|
|10|ステータス|成功すれば設定を保存。失敗した場合は詳細を確認して対応。|
|11|詳細アイコン|ログの詳細を確認可能。|

---

## 4. 保存

「保存」ボタンをクリックして、マッピング設定を保存します。

<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)
- 🔗 [SDI 日本語公式サイト](https://ja.sdi.ricct.com/)
- 🔗 [SDI 英語公式サイト](https://sdi.ricct.com/)
- 🔗 [SDI マッピング設定ガイド](https://ja.sdi.ricct.com/userguide/mapping/)