SQL 変換の追加
SQL ベースのテーブルを変換タスクに含めることができます。SQL 変換では、SQL SELECT クエリーをパイプラインに入力して、複雑な変換や単純な変換を定義できます。生成 AI を使用して、SQL アシスタントでテキスト プロンプトからクエリを生成できます。マクロを使用して、初期ロードまたは増分ロードが実行される場合にクエリが実行されるように適応することもできます。
変換タスクの作成の詳細については、「データの変換」を参照してください。
SQL 変換の追加
変換データ タスクに SQL 変換を追加するには:
-
[変換] で、クエリに含めるデータセットを選択し、 [SQL 変換を追加] をクリックします。
[名前] に変換の名前を設定します。その他の設定の詳細については、「設定」を参照してください。
SQL 変換を作成する準備ができたら、 [追加] をクリックします。
[SQL 変換を編集] が表示されます。
-
クエリ パネルに SQL ベースのテーブルを返すクエリを記述します。
詳細については、「SQL クエリの編集」を参照してください。
-
[クエリを実行] をクリックします。
この操作により、メタデータとデータのプレビューが取得されます。
-
[パラメーター] でパラメーターを確認します。
詳細については、「パラメーター」を参照してください。
-
[メタデータ] でプライマリ キーを設定します。
詳細については、「メタデータ」を参照してください。
-
クエリの結果に問題がなければ、 [保存して閉じる] をクリックします。データセットがターゲットのリストに追加され、プレビューできるようになりました。
SQL クエリの編集
クエリ パネルに SQL ベースのテーブルを返すクエリを入力します。クエリは選択したソース データセットからのみ読み取り可能ですが、 [追加] でさらにソース データセットを追加できます。
-
[オブジェクト] からデータセットをロードするステートメントを作成できます。
をクリックしてから、 [エディターで SELECT 文を生成] をクリックします。
-
データセットの名前をクリップボードにコピーするには、
をクリックしてから、 [コピー] をクリックします。
-
データセットまたは列名をエディターに移動するには、 [>] をクリックします。
-
エディターでテキストを検索して置換するには、
をクリックします。
増分ロードを使用する場合は、マクロを使用して、初期ロードまたは増分ロードが実行される場合にクエリが実行されるように適応できます。
詳細については、「マクロを使用してクエリをロード タイプに適応させる」を参照してください。
キーボード ショートカット
-
Ctrl+F 検索と置換
-
Ctrl+/ 現在の行のコメントアウト/コメント解除
-
Ctrl+Enter クエリの実行
-
Ctrl+Z 元に戻す
-
Ctrl+Y やり直し
結果のプレビュー
[結果] のデータのサンプルを使用して、結果をプレビューできます。
データをプレビューするには、次の役割が割り当てられている必要があります。
-
接続が常駐するスペースで [データ表示可能]。
-
プロジェクトが常駐するスペースで [表示可能]。
データのサンプルを使用した結果が表示されます。[列の数] でサンプルに含めるデータ列の数を設定できます。
-
最後に実行されたクエリの最終実行時刻と期間を表示するには、 [最後に実行されたクエリ] をクリックします。
結果のフィルタリング
1 つ以上の列で結果をフィルタリングできます。
-
フィルタリングする最初の列で
をクリックし、次に [フィルター] をクリックします。
使用する演算子とフィルタリングする値を選択します。
[フィルターを追加] をクリックすると、さらに列フィルターを追加できます。
フィルターは既存のサンプル データにのみ影響します。
結果のソート
データ サンプルを特定の列順にソートできます。
-
ソートする列の
をクリックし、 [昇順でソート] または [降順でソート] をクリックします。
ソートは、既存のサンプル データのみに作用します。フィルターを使用して 2024 年の注文のみを含め、ソート順序を逆にした場合でも、サンプル データには 2024 年の注文のみが含まれます。
表示される列の管理
結果に表示される列を選択できます。変換を保存しても選択内容は保存されません。
-
列を非表示にするには、列で
をクリックしてから、 [列を非表示] をクリックします。
-
すべての列の表示を管理するには、任意の列で
をクリックしてから、 [列を表示] をクリックします。
パラメーター
SELECT クエリのパラメーターを変更するには、 [パラメーター] をクリックします。パラメーターは、ソース オブジェクトまたはターゲット オブジェクトにマッピングする必要があります。
パラメーターは、次の場合に自動的にマッピングされます。
-
[オブジェクト] で [エディターで SELECT 文を生成] を使用します。
-
データセットまたは列名をエディターに移動するには、 [>] をクリックします。
-
パラメーター名は、 [オブジェクト] 内のテーブルのテーブル名と一致します。
可能なマッピング先
-
履歴タイプ 2 構造 (_history)
-
現在の構造
-
ターゲット オブジェクト
ターゲット オブジェクトをマップできるのは、パラメーターが増分マクロ内で定義される場合のみです。
メタデータ
[メタデータ] で、メタデータの設定を編集できます。
-
[キー] 列に主キーを設定します。
-
[Nullable] 列で列が null 許容かどうかを設定します。
-
列を選択し、 [編集] をクリックして、列名、キー、null 許容、データ型を設定します。
クエリの実行
開発中はいつでも、 [クエリを実行] をクリックしてクエリを実行できます。初めてクエリを実行すると、メタデータが取得されます。クエリが実行されると、 [メタデータ] に移動してプライマリ キーを設定できます。この設定は、変換を完了するために必要となります。
マクロを使用してクエリをロード タイプに適応させる
増分ロードを使用する場合は、マクロを使用して、初期ロードまたは増分ロードが実行される場合にクエリが実行されるように適応できます。
マクロを選択し、それぞれの句の中にクエリを追加します。
-
Q_RUN_INCREMENTAL は、増分ロードの実行時にのみ実行されるクエリを配置できる句を追加します。
-
Q_RUN_INITIAL_LOAD は、初期ロードの実行時にのみ実行されるクエリを配置できる句を追加します。
各マクロで完全なクエリを指定する必要はありません。ユース ケースに基づいてコードを調整または追加できます。
ユース ケース: 日付範囲を使用した増分フィルター:
この使用例では、一連の注文データをカスタム SQL で変換する必要があります。これは大規模なデータセットであるため、増分フィルタリングを含めて、増分ロードで過去 12 時間の注文のみが考慮されるようにする必要があります。
これは基本的なクエリです。
これは増分実行中に適用するフィルターで、過去 12 時間に追加された注文のみが考慮されます。
これは、フィルター マクロを使用し、テーブル名を ${TABLE} 表記に置き換えた完全なクエリです。
これにより、初期ロード クエリが行われます。
増分ロードクエリ:
ユース ケース: ターゲット内のデータを使用した増分フィルター:
この使用例では、一連の注文データをカスタム SQL で変換する必要があります。注文は大規模なデータセットであるため、増分フィルタリングを含めて、増分ロードでターゲット テーブル内のデータよりも新しい注文詳細レコードのみが考慮されるようにする必要があります。また、行が初期ロードまたは増分ロードによって処理されたかをマークすることもできます。
これは基本的なクエリです。
これは、増分実行中に適用するフィルターです。「ORDERS_DERIVED」はターゲット データセットの名前です。
これは、フィルター マクロを使用し、テーブル名を ${TABLE} 表記に置き換えた完全なクエリです。ロードが初期の場合は LOADED_BY が INIT に設定され、ロードが増分の場合は INCR に設定されます。
これにより、初期ロード クエリが行われます。
増分ロードクエリ:
設定
SQL 変換の設定を編集するには、 をクリックします。
[名前] にターゲット データセットの名前を入力します。
[説明] に長い説明を追加することもできます。
[実体化] で、変換された出力を実体化するかどうかを選択します。データ タスク設定から設定を継承することを選択できます。
-
[オン] にするとテーブルが作成され、関連する ELT 処理が実行されます。
-
[オフ] にすると、オンザフライで変換を実行するビューが作成されます。
[履歴データ ストア (タイプ 2)] で、履歴データを保存するかどうかを選択します。データ タスク設定から設定を継承することを選択できます。この設定では、 [実体化] がオンになっている必要があります。
増分ロードを使用すると、マクロを使用して処理されるデータのセットを減らすためにフィルターまたはその他の条件を適用することで、増分データ ロードのクエリを調整できます。増分ロードは、データがテーブルとして実体化されている場合にのみ使用できます。
-
増分ロードが [オン] の場合
タスクの最初の実行では初期ロードが実行され、クエリのすべての結果がターゲット テーブルに挿入されます。後続の実行では、増分処理用に定義したフィルターまたは特定の条件を利用して、増分ロードが実行されます。増分ロード中、タスクはデータを更新または挿入としてのみ処理し、削除は管理されません。
-
増分ロードが [オフ] の場合
タスクの最初の実行では初期ロードが実行され、クエリのすべての結果がターゲット テーブルに挿入されます。後続の実行では、クエリのすべての結果をターゲット テーブルと比較し、新規、変更、または削除されたレコードを処理します。
ベスト プラクティス
-
SQL 変換を追加しても、主キーは自動的に定義されません。[データセット] タブでデータセットにキーを追加します。
-
変換された出力に列ヘッダーを手動で作成しないでください。
-
クエリが実行されるたびに異なる列が返される可能性があるため、SELECT に * を付けて使用しないでください。スキーマに変更があった場合は、それに応じてクエリを変更し、[テーブルを表示] を再度実行します。その後、列の編集やテーブルの調整ができます。