SQL Transformation

Version 23.4.8843


SQL Transformation


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

SQL Transformation の作成

SQL Transformation を追加するには:

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

  2. 変換を実行するジョブを選択します。続いて、変換を追加ボタンをクリックします。

  3. 変換を追加ダイアログボックスで、フィールドに以下のように入力します。

    • 名前:変換の名前を入力。

    • 種類:変換の種類としてSQL を選択。

    • 同期先:変換を実行する同期先を選択。

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

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

変換ページについて

変換ページには、使用された同期先、変換がスケジュールされているかどうか、最後の実行状況、次の実行など、変換の詳細がリスト表示されます。また、以下のように変換の種類でテーブルを絞り込むこともできます。

ジョブで一括操作(実行スケジュールを無効化スケジュールを有効化、および選択解除)を使用するには、1つ以上のジョブの横にあるチェックボックスを選択します。

オプションメニュー()から各変換を管理できます。オプションメニューを表示するには、変換行の最後にカーソルを置きます。メニューから次のオプションが利用可能です。

  • 編集 - 一般設定の変更、アラート通知の設定、実行する変換のスケジューリング、変換履歴の表示など、変換の設定を編集できます。

  • ログファイルをダウンロード -前回の変換実行のログファイルをダウンロードします。

  • 実行の詳細 - 変換の実行に関する情報を表示するダイアログボックスを開きます。ダイアログボックスには、情報を表示する次の2つのタブがあります:

    • 詳細:このタブには、実行日、実行ステータス、変換の実行にかかった時間、および影響を受けた行数が表示されます。

    • ログ:このタブでは、変換で利用できるログを一覧表示します。ログ名の右にあるダウンロードアイコンをクリックすると、個々のログをダウンロードできます。すべてのログファイルをダウンロードをクリックすると、すべてのログをダウンロードできます。

  • 削除 - 変換を完全に削除します。

変換の設定の指定

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

  • 概要:このタブには、設定通知、およびトリガーカテゴリがあり、これらの設定タイプを編集できます。

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

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

概要タブ

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

設定カテゴリ

設定カテゴリでは、次のようにログファイルの詳細レベルとコマンドタイムアウトを設定できます。

  1. 変換の行末にある… > 編集を選択します。このアクションにより設定を編集ダイアログボックスが開きます。

  2. ログファイルの詳細レベルの値を選択します。

  3. コマンドタイムアウトフィールドにタイムアウト値を入力します。

  4. 保存をクリックします。

トリガーカテゴリ

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

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

  2. 希望するトリガーの種類を指定します。以下の種類から選択できます:

    • なし - スケジュールオプションをオフにし、手動で変換を開始できるようにします。

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

      • Minute - オプションが有効になり、変換を実行する時間を分単位(10、15、20、または30分ごと)で指定できます。

      • Hourly - 毎時何分 フィールドが有効になり、毎時何分(0-59)に変換が実行されるかを設定できます。例えば、毎時15分に変換を実行することができます。

      • Daily - 時刻 フィールドが有効になり、変換を実行する毎日の特定の時間を設定できます。

      • Weekly - この設定により、曜日/日付およびの2つのフィールドが有効になり、変換を実行する特定の曜日と時間を指定できます。

      • Monthly - 曜日/日付およびフィールドが有効になります。ただし、曜日/日付では、各月の特定の日付(1から31の値、または最終日)と時間を選択します。

      • Cron - Cron 式フィールドが有効になり、変換の実行を開始するためのcron ジョブを記述できます。

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

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

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

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

Note:トリガーのスケジュールを無効化するには、トリガートグルスイッチを左にスライドします(無効化するとスイッチがグレーになります)。トグルスイッチは、カテゴリボックスのトリガーの右側に表示されます。

通知カテゴリ

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

  1. 通知を設定したい変換の行末にある… > 編集を選択します。

  2. 通知カテゴリにある設定をクリックします。

  3. 通知ダイアログボックスにある次のオプションを設定します。

    • 宛先 - E メール通知の宛先。

    • 件名 - E メール通知の件名。

    • エラー発生時のみE メールを送信 - ジョブでエラーが発生した場合のみ通知メールを送信するように指定するために選択できるオプション。このオプションを選択しない場合、Sync は各ジョブの実行後に通知を送信します。

  4. 保存をクリックします。

Note:通知を無効化するには、通知トグルスイッチを左にスライドします(無効化するとスイッチがグレーになります)。トグルスイッチは、カテゴリボックスの通知の右側に表示されます。

クエリタブ

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

クエリの追加

クエリを追加するには:

  1. クエリを追加をクリックして、クエリを追加ダイアログボックスを開きます。

  2. テキストボックスにクエリを入力します。複数のステートメントがある場合は、各ステートメントをセミコロンで区切ってください。

  3. クエリを追加をクリックします。クエリの追加が成功すると、Sync は、クエリページの上部に成功した旨のメッセージを表示します。

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

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

クエリの編集

クエリを編集するには:

  1. クエリの行末にある… > 編集を選択します。

  2. クエリを編集ダイアログボックスで、必要に応じてクエリを修正します。

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

変換履歴タブ

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

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

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

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;