> ## 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.

# SQL Transformation

*SQL Transformation* は、パイプラインでSQL クエリをミッドストリーム処理（ETL）します。このタイプのTransformation は、外部のSQL スクリプトまたはSQL エディタで作成したSQL クエリを処理します。これらのクエリを使用して、データベースから行を挿入、削除、更新、取得できます。SQL Transformation はクエリを処理し、行とデータベースエラーを返します。

## SQL Transformation の作成

SQL Transformation を追加するには：

1. Sync を開き**変換**ページに移動します。

2. **変換を追加 > 新しい変換を追加**を選択します。

   ![](https://mintcdn.com/cdata-sync/FaXQgwCWYQjGfVUG/26.4/images/SQL-Transformations_creating-an-SQL-transformation_1.png?fit=max\&auto=format\&n=FaXQgwCWYQjGfVUG\&q=85\&s=945aaf89297ff6e1a704756172dea87c)

3. **変換を追加**ダイアログボックスで、フィールドに以下のように入力します。
   * **名前：** 変換の名前を入力。
   * **種類：** 変換の種類として**SQL** を選択。
   * **同期先：** 変換を実行する同期先を選択。

4. **変換を追加**ボタンをクリックします。

変換を作成したら、オプションメニュー（**...**）から変換を管理できます。

## SQL Transformation 設定の指定

変換の設定を編集するには、変換の行末で **... > 編集**を選択します。設定ページには、設定を管理できる3つのタブがあります：

* **概要**
* **クエリ**
* **コメント**

### **概要**タブ

**概要**タブでは、一般的な設定、トリガー、およびEメールアラートを管理できます。このページでは、変換の最後の実行の詳細も確認できます。

#### **設定**カテゴリ

**設定**カテゴリでは、次のようにジョブの自動再試行、ログファイルの詳細レベル、およびコマンドタイムアウトを指定できます。

1. 変換の行末にある **... > 編集**を選択します。このアクションにより変換の詳細ページが開きます。
2. **設定**カテゴリで**設定を編集**アイコン（![設定を編集アイコン](https://mintcdn.com/cdata-sync/FaXQgwCWYQjGfVUG/26.4/images/Settings-Page_edit-icon.png?fit=max\&auto=format\&n=FaXQgwCWYQjGfVUG\&q=85\&s=9ed2476ce8e10cfc66df553c3f24f820)）をクリックして、変換の設定を編集します。

   ![](https://mintcdn.com/cdata-sync/FaXQgwCWYQjGfVUG/26.4/images/SQL-Transformations_settings-category.png?fit=max\&auto=format\&n=FaXQgwCWYQjGfVUG\&q=85\&s=04c5996ddfca443f9fae2749de04cb0e)
3. （オプション）1つ以上のタスクが失敗した場合にSync の変換を再試行する場合は、**有効化済み**を選択します。失敗したタスクのみが再度実行されます。
4. **ログファイルの詳細レベル**のレベルを選択します。デフォルトレベルは**Info** です。
5. **コマンドタイムアウト**フィールドにタイムアウト値を入力します。
6. **保存**をクリックします。

#### **トリガー**カテゴリ

**トリガー**カテゴリでは、次のように、変換を実行する特定のスケジュールを設定できます。

1. **トリガー**カテゴリで**設定**をクリックします。このアクションにより**トリガー**ダイアログボックスが開きます。

2. 希望するトリガーの種類を指定します。以下の種類から選択できます：
   * **なし：** スケジュールオプションをオフにし、手動で変換を開始できるようにします。

   * **スケジュール実行：** 変換を実行するためのスケジュールを設定できます。この設定により、**間隔**と**毎時何分**フィールドも有効になります。**間隔**の設定には、より細かな設定を選択することが可能です。

     * **分：** **毎** オプションが有効になり、変換を実行する時間を分単位（10、15、20、または30分ごと）で指定できます。
     * **毎時：** **毎時何分** フィールドが有効になり、毎時何分（0-59）に変換が実行されるかを設定できます。例えば、毎時15分に変換を実行することができます。
     * **毎日：** **時刻** フィールドが有効になり、変換を実行する毎日の特定の時間を設定できます。
     * **毎週：** この設定により、**日**および**時刻**の2つのフィールドが有効になり、変換を実行する特定の曜日と時間を指定できます。
     * **毎月：** **日**および**時**フィールドが有効になります。ただし、**日**では、各月の特定の日付（1から31の値、または最終日）と時間を選択します。
     * **カスタム：** **Cron ステートメント**フィールドが有効になり、変換の実行を開始するためのcron ジョブを記述できます。

     **スケジュール実行**は、複数のジョブを実行している場合に便利です。どのジョブの後に変換を実行するかを指定できないため、複数のジョブに対して**ジョブ後**オプションを使用することはできません。

   * **ジョブ後：** 利用可能なすべてのジョブをリスト表示する**ジョブ**ドロップダウンリストを有効にします。変換を実行するための特定のジョブを選択できます。

     **ジョブ**フィールドの**特定のタスクを選択**をクリックすると、データに対して実行するさまざまなタスクを指定することも可能です。実行するタスクを選択します。

3. **保存**をクリックします。

> [!NOTE]
>
> トリガーのスケジュールを無効化するには、**トリガー**カテゴリのトグルスイッチを左にスライドします（無効化するとスイッチがグレーになります）。

#### **ラベル**カテゴリ

このカテゴリを使用すると、ラベルを追加できます：

1. **ラベル**カテゴリで**ラベルを追加**をクリックします。***TransformationName* - ラベルを追加**ダイアログボックスが開きます。現在使用可能なラベルをリストから検索して選択することも、新しいラベルを追加することもできます。

2. 新しいラベルを追加するには、**ラベルを検索または追加**テキストボックスにラベルを入力し、**追加**をクリックします。

   ![](https://mintcdn.com/cdata-sync/FaXQgwCWYQjGfVUG/26.4/images/SQL-Transformations_labels-category_1.png?fit=max\&auto=format\&n=FaXQgwCWYQjGfVUG\&q=85\&s=a3fbd9c53c2e30bae7b852ffd7868a07)

   以下に示すように、新しいラベルが利用可能なラベルのリストに表示されます。

   ![](https://mintcdn.com/cdata-sync/FaXQgwCWYQjGfVUG/26.4/images/SQL-Transformations_labels-category_2.png?fit=max\&auto=format\&n=FaXQgwCWYQjGfVUG\&q=85\&s=644e660020a6f0383ae61dc89ef2d838)

3. **保存**をクリックします。

これらの手順を完了すると、新しいラベルが設定ページの**ラベル**カテゴリボックスに表示されます。

> [!NOTE]
>
> **変換**概要ページの変換行末にあるオプションメニュー（**...**）をクリックしてラベルを追加することもできます。
>
> ![](https://mintcdn.com/cdata-sync/FaXQgwCWYQjGfVUG/26.4/images/SQL-Transformations_labels-category_3.png?fit=max\&auto=format\&n=FaXQgwCWYQjGfVUG\&q=85\&s=527c50caae5bc294ba9889196e68ad36)
>
> このオプションでは**ラベルを追加**ダイアログが開き、このセクションの手順に従ってラベルを追加できます。

#### **通知**カテゴリ

**通知**カテゴリでは、次のように変換のEメールアラートを設定できます。

1. アラートを設定したい変換の行末にある **... > 編集**を選択します。
2. **通知**カテゴリにある**設定**をクリックします。
3. **通知**ダイアログボックスにある次のオプションを設定します：
   * **宛先：** アラートを送信するEメールアドレス。
   * **件名：** アラートメールの件名。
   * **エラーのみ：** ジョブでエラーが発生した場合のみアラートメールを送信するように指定するために選択できるオプション。このオプションを選択しない場合、Sync は各ジョブの実行後にアラートを送信します。
4. **保存**をクリックします。

> [!NOTE]
>
> アラートを無効化するには、**通知**トグルスイッチを左にスライドします（無効化するとスイッチがグレーになります）。トグルスイッチは、カテゴリボックスの**通知**の右側に表示されます。

### **クエリ**タブ

このタブでは、変換の一部として実行されるクエリを追加および管理できます。

#### クエリの追加

クエリを追加するには：

1. **クエリを追加**をクリックして、**クエリを追加**ダイアログボックスを開きます。
2. テキストボックスにクエリを入力します。複数のステートメントがある場合は、各ステートメントをセミコロンで区切ってください。
3. **クエリを追加**をクリックします。クエリの追加が成功すると、Sync は、**クエリ**ページの上部に成功した旨のメッセージを表示します。

クエリを実行する場合は、**クエリ**ページの上部にある**実行**をクリックします。

クエリを追加して実行すると、**クエリ**ページにクエリのテーブルと**最後の実行**の日付が表示されます。

#### クエリの編集

クエリを編集するには：

1. クエリの行末にある **... > 編集**を選択します。
2. **クエリを編集**ダイアログボックスで、必要に応じてクエリを修正します。
3. **保存**をクリックします。

### **変換履歴**タブ

このタブには、変換ジョブの実行に関する詳細が表示されます。詳細には、**実行日**、**ステータス**、**影響を受けたレコード**、および**処理時間**が含まれます。レポートをステータス（**すべてのステータス**、**成功**、**失敗**、または**エラー**）で絞り込むことも可能です。さらに、**履歴をエクスポート**をクリックして、履歴をエクスポートできます。

### コメントタブ

このタブでは、ジョブに関連するメモを記録および追跡できます。各コメントにはタイムスタンプが付きます。右上隅のドロップダウンメニューを使用して、タイムスタンプに基づいて並べ替え順序を変更できます。オプションには、**新しい順**（デフォルト）または**古い順**があります。また、行末の**コメントを編集**アイコン（![](https://mintcdn.com/cdata-sync/FaXQgwCWYQjGfVUG/26.4/images/SQL-Transformations_comments-tab_1.png?fit=max\&auto=format\&n=FaXQgwCWYQjGfVUG\&q=85\&s=0f02f304dac731ee28f90bcef42753c9)）や**コメントを削除**アイコン（![](https://mintcdn.com/cdata-sync/FaXQgwCWYQjGfVUG/26.4/images/SQL-Transformations_comments-tab_2.png?fit=max\&auto=format\&n=FaXQgwCWYQjGfVUG\&q=85\&s=aafdad86cd11587886e4759f0782beb4)）をクリックして、コメントを編集または削除することもできます。

## 全データベース用サンプルクエリ

次のSQL クエリは、レコードの重複排除を行います。

```sql theme={null}
CREATE OR REPLACE TABLE dbo.Accounts_Deduplicated as (
  SELECT *, row_number() over (partition by id order by modified desc) as duplicate_rank 
  FROM dbo.Accounts
);	
DELETE FROM dbo.Accounts_Deduplicated	WHERE duplicate_rank > 1;
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.