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

# In-Flight (ETL)

export const siteNameShort = "Sync";

export const siteName = "CData Sync";

\*ETL（Extract（抽出）、Transform（変換）、Load（ロード））\*は、同期先への移行前にデータを移動して、in-flight（処理の途中で）変換するデータ抽出の手法です。

## ETL とELT の違い

これまで、ETL はデータを移動、変換する上で最も人気のある手法でした。しかし、クラウドコンピューティングの隆盛とデータストレージの大幅な増大で、データ転送と変換の手法としては、徐々にETL の人気を[ELT（Extra（抽出）、Load（ロード）、Transform（変換））](./post-job-elt/elt)が上回りつつあります。

ETL とELT の主な違いは、手順を実行する順序です。ただし、ELT にはそれ以外の利点もあります。

* **パフォーマンス：** 現代のデータベースには膨大なストレージが備わっているため、ELT は変更を実装する前に更新されたデータをすべて移動することができます。データを事前に整形したり加工する必要がないので、これまでのETL の手法と比べて変換のスピードや効率が大幅に上昇します。
* **シンプルさ：** 大量のデータを移動する必要がある際には、ELT は変換処理をストリーム化してシンプルにします。

それでも、同期先に転送する前にデータを加工しておきたい状況は存在します。こうしたケースでは、{siteName} は変換を容易に実行できます。

## 同期先テーブルの選択または作成

タスクを設定する際、{siteNameShort} ではドロップダウンリストからテーブルを選択するか、{siteNameShort} が新しいテーブルを作成するために使用する新しいテーブル名を入力できます。

新しいテーブルを選択するには：

1. ジョブの**タスク**タブに移動します。

2. 変更したいテーブルを選択します。

3. テーブルの**概要**タブで、**同期先情報**カテゴリの**編集**アイコン（<span><img style={{display:"inline", verticalAlign:"middle", margin:"0"}} src="https://mintcdn.com/cdata-sync/ANiMw09F6wBBj5Tp/images/Settings-Page_edit-icon.png?fit=max&auto=format&n=ANiMw09F6wBBj5Tp&q=85&s=6b356470eefa1095d86a6cca0f1cb6da" width="19" height="16" data-path="images/Settings-Page_edit-icon.png" /></span>）をクリックします。**同期先情報**ダイアログボックスが開きます。

4. テーブル名の横にある選択リストの矢印をクリックし、利用可能なテーブルのリストからテーブルを選択します。

   <img src="https://mintcdn.com/cdata-sync/I6gJ4qR9mocXqHNN/images/ETL_choosing-or-creating-destination-tables_1.png?fit=max&auto=format&n=I6gJ4qR9mocXqHNN&q=85&s=582865752100b299b7c565b96cfb4837" width="400" data-path="images/ETL_choosing-or-creating-destination-tables_1.png" />

5. **保存**をクリックして選択したテーブルを保存し、ダイアログボックスを終了します。

テーブルを選択すると、{siteNameShort} は一致するカラム名に基づいてカラムのマッピングを自動的に生成します。**カラム**タブで手動で調整できます。

新しいテーブルを作成するには：

1. ジョブの**タスク**タブに移動します。
2. 変更したいテーブルを選択します。
3. テーブルの**概要**タブで、**同期先情報**カテゴリの**編集**アイコン（<span><img style={{display:"inline", verticalAlign:"middle", margin:"0"}} src="https://mintcdn.com/cdata-sync/ANiMw09F6wBBj5Tp/images/Settings-Page_edit-icon.png?fit=max&auto=format&n=ANiMw09F6wBBj5Tp&q=85&s=6b356470eefa1095d86a6cca0f1cb6da" width="19" height="16" data-path="images/Settings-Page_edit-icon.png" /></span>）をクリックします。**同期先情報**ダイアログボックスが開きます。
4. テーブル名の横にある選択リストの矢印をクリックし、**検索または手入力で新規テーブルを作成**テキストボックスに、作成するテーブルの名前を入力します。

   <img src="https://mintcdn.com/cdata-sync/I6gJ4qR9mocXqHNN/images/ETL_choosing-or-creating-destination-tables_2.png?fit=max&auto=format&n=I6gJ4qR9mocXqHNN&q=85&s=3f40c4e13a8d27a2597ae8cfd74d793e" width="400" data-path="images/ETL_choosing-or-creating-destination-tables_2.png" />

テーブルを選択すると、{siteNameShort} は一致するカラム名に基づいてカラムのマッピングを自動的に生成します。**カラム**タブで手動で調整できます。

## カラムのマッピング

**カラム**タブでは、データソーステーブルから取得するデータと、そのデータをターゲットテーブルでどのように表示するかについて制御できます。ここから、カラムマッピングの削除または調整、同期先カラム名の変更、データソースへの変換の適用、その他が可能です。次のセクションで説明します。

### カラム名の変更

カラム名を変更するには：

1. タスクを選択します。次に\*\*... > 編集\*\*を選択します。
2. **カラム**タブをクリックします。次に**マッピングを編集**をクリックします。
3. 編集するカラム行を選択します。次に\*\*... > 同期先を編集\*\*を選択します。
4. **同期先カラムを編集**ダイアログボックスでカラム名を編集し、**完了**をクリックします。

### SQL Transformation の適用

SQL Transformation を適用するには：

1. タスクを選択します。次に\*\*... > 編集\*\*を選択します。

2. **カラム**タブをクリックします。次に**マッピングを編集**をクリックします。

3. カラム行を選択します。次に\*\*... > 変換を適用**を選択して**変換元**ダイアログボックスを開きます。ダイアログボックスでは、選択したカラムが**SQL Transformation をデータソースデータに適用します\*\*下のテキストボックスにリストされます。

4. **SQL Transformation を適用**ボタンをクリックして、以下の変換から選択します：

   * **MASK()：** 指定されたカラムの文字をアスタリスクに置き換えてマスク。マスキングについて詳しくは、[個人情報のマスキング](../getting-started/features#masking-for-personally-identifiable-information)を参照してください。
   * **TRIM()：** 先頭と末尾のスペース、または指定された文字列を文字列から削除。
   * **ISNULL()：** **もし**式がNULL の場合、指定された値を返す。それ以外の場合は、式が返されます。
   * **UPPER()：** テキストを大文字に変換。
   * **LOWER()：** テキストを小文字に変換。
   * **HASHBYTES()：** カラム値をハッシュに変換。HASHBYTES() SQL 関数を使用すると、レプリケーション中にカラムの値をハッシュできます。この変換は、データが同期先に書き込まれる前に、主キーや個人識別情報（PII）などの機密データを保護するのに役立ちます。この関数は、複数のハッシュアルゴリズム（MD5、SHA1、SHA2\_256、SHA2\_512、SHA3\_224、SHA3\_256、SHA3\_384、SHA3\_512）をサポートしています。

     次の例は、SHA2\_256 アルゴリズムを使用して、主キー`accountid` に**HASHBYTES()** 変換を適用する方法を示しています。

     <img src="https://mintcdn.com/cdata-sync/I6gJ4qR9mocXqHNN/images/ETL_applying-sql-transformations_1.png?fit=max&auto=format&n=I6gJ4qR9mocXqHNN&q=85&s=164de650f8f5879043e2a091991130c3" width="500" data-path="images/ETL_applying-sql-transformations_1.png" />

     HASHBYTE() 関数は、選択したアルゴリズムを使用して、入力値のハッシュをバイト配列として返します。

   <Note>
     <p>**データ変換**テキストボックスでカラム名の周りにSQL 関数を手動で入力することで、変換を作成することもできます。例えば、`name` というカラムの周りに**MASK()** 関数を入力する場合、次の例のように記述します：</p>
     <p><code>MASK(\[name], '\*')</code></p>
   </Note>

5. **完了**をクリックして選択内容を保存します。

### カラムの追加

同期先テーブルにカラムを追加するには：

1. カラム行を選択して、行末にある編集アイコンをクリックします。

2. **カラム**タブをクリックします。次に**マッピングを編集**をクリックします。

3. 追加アイコン（+）をクリックして**カラムを追加**ダイアログボックスを開きます。

   <img src="https://mintcdn.com/cdata-sync/I6gJ4qR9mocXqHNN/images/ETL-Page-Add-Column.png?fit=max&auto=format&n=I6gJ4qR9mocXqHNN&q=85&s=c20fd97414e0a5af679d6dac05909a2d" width="800" data-path="images/ETL-Page-Add-Column.png" />

4. データソースと同期先のカラム名を追加します。次に**カラムを追加**をクリックします。

### カラムの削除

カラムを削除するには、削除したい行の左側にあるチェックボックスをOFF にします。その行は非アクティブになり、カラムがクエリから削除されてレプリケートされないことを示します。
