パラメーター化クエリ parameterized-queries

クエリサービスは、クエリエディターでのパラメーター化されたクエリの使用をサポートしています。 パラメーター化されたクエリでは、パラメーターにプレースホルダーを使用し、実行時にパラメーター値を追加できるようになりました。 プレースホルダーを使用すると、ステートメントが実行されるまで値がわからない動的データを操作できます。 また、クエリを事前に準備し、同様の目的で再利用することもできます。 クエリを再利用することで、ユースケースごとに異なるSQL クエリを作成する必要がなくなるため、大幅な労力を節約できます。

前提条件

このガイドを続ける前に、​ クエリエディターUI ガイド ​をお読みください。 クエリエディターガイドでは、Experience Platform ユーザーインターフェイス内でカスタマーエクスペリエンスデータのクエリを作成、検証、実行する方法について詳しく説明します。

NOTE
Adobe Experience Platform UI内では、パラメーター化されたクエリは、インラインテンプレートの親レベルでのみサポートされます。 つまり、パラメーター化されたクエリは、元のテンプレートで使用された場合にのみ機能します。 子テンプレートは静的テンプレートである必要があり、動的パラメーターを含めることはできません。 詳しくは、​ インラインテンプレートのドキュメント ​を参照してください。

パラメーター化されたクエリ構文 syntax

パラメーター化されたクエリは、形式'$YOUR_PARAMETER_NAME'を使用し、ドット表記法を使用して連結できます。 パラメータ化されたクエリを使用するSQL ステートメントの例を以下に示します。

INSERT INTO
   $Database_Name.Schema_Name.adwh_lkup_process_delta_log
   (process_name, merge_policy_id, process_status, process_date, create_ts, change_ts)
SELECT
   '$Table_Process_Name' process_name,
   hash('$Merge_PolicyID') merge_policy_id,
   '$process_status' process_status,
   to_date('$date_key') process_date,
   CURRENT_TIMESTAMP create_ts,
   CURRENT_TIMESTAMP change_ts;

パラメーター化されたクエリの作成 create

UIでパラメーター化されたクエリを作成するには、クエリエディターに移動します。 詳しい手順については、​ クエリエディターへのアクセス ​の節を参照してください。

'$' の序文を使用して、テキストエディターでクエリにクエリパラメーターを入力します。 次に、​ コンソール ​の横にある​クエリパラメーター タブを選択して、キーの欠落している値を追加します。 必要なキーのいずれかに値を追加しない場合、クエリを実行できません。 アラートアイコン ( ​ アラートアイコン。 ) 空の値入力フィールドの横にある「クエリパラメーター」セクションに表示されます。

NOTE
クエリでパラメーターを使用しない場合でも、クエリエディター内に不要なパラメーターを入力できます。 クエリエディターは、不要なキーと値のペアをすべて無視し、クエリの実行や結果に影響を与えません。

​ パラメーター化されたクエリと「クエリパラメーター」セクションがハイライト表示されたクエリエディター。

TIP
タブを​ クエリパラメーターから​ コンソール ​に変更して、クエリのコンソール出力を表示します。

クエリログの詳細を使用してパラメーター値を確認する check-parameter-values

使用される値は永続的ではないため、テンプレート内にパラメーターを保存することはできません。 ただし、​ クエリログの詳細 ページを確認して、クエリ実行で使用されるパラメーター値を見つけることができます。 この場合、ログは、クエリがパラメーター化されたクエリであることを示しません。 使用される値の検索方法については、​ クエリログのドキュメント ​を参照してください。

​ パラメーター化されたクエリのSQLが詳細セクションに強調表示されたクエリ ログ ビュー。

パラメーター化されたクエリのスケジュール schedule

パラメーター化されたクエリをスケジュールすると、パラメーター値が保存されます。 パラメーター化されたクエリをスケジュールするには、典型的なプロセスに従って、​ クエリスケジュールの作成のガイドに記載されているようにスケジュールされたクエリを作成し、クエリ実行で使用するパラメーター値を入力します。 このUI セクションは、パラメーター化されたクエリにのみ表示されます。 特定の手順については、​ スケジュールされたパラメーター化されたクエリのパラメーターの設定の節を参照してください。

TIP
クエリサービスは、パラメーター化されたクエリを使用して準備済みステートメントをサポートします。 関連するSQL構文について詳しくは、準備済みステートメントの構文ガイド ​を参照してください。

次の手順

このドキュメントでは、Adobe Experience Platform UIでクエリをパラメーター化し、スケジュールされたクエリ実行で使用する方法について説明しました。 このドキュメントでは、クエリ実行で使用されるパラメーター値のログを確認する方法についても説明しました。

次に、​ スケジュールされたクエリの監視に関するガイドを参照して、Experience Platform UIを通じてすべてのクエリジョブのステータスをより深く理解することをお勧めします。

recommendation-more-help
experience-platform-help-query-service