インラインテンプレート
インラインテンプレートを使用すると、複数の条件を多数のクエリで再利用できます。条件をテンプレートに保存し、複数のクエリで再利用できます。再利用可能な SQL テンプレートを使用すると、開発作業が軽減され、クエリ間で長いステートメントをコピーする際にエラーが発生するリスクも軽減されます。インラインテンプレートを使用すると、1 か所で変更を加え、その変更をこのテンプレートを参照する任意のクエリに反映させることができます。
このドキュメントでは、クエリエディター内でのインラインテンプレートの使用と制限について説明します。
前提条件
インラインテンプレートは、UI と Query Service API の両方でサポートされています。このガイドを参照する前に、API またはクエリエディターを使用してクエリテンプレートを作成する方法に関するドキュメントを参照してください。
インラインテンプレート構文 syntax
保存したクエリは、テンプレートと呼ばれます。テンプレートがステートメント内で別のテンプレートを参照する場合、このテンプレートはインラインテンプレートと呼ばれます。インラインテンプレートは、ハッシュ記号(#)の後にテンプレート名を付けることで、SQL に示されます。この構文の例は、#YOUR_TEMPLATE_NAME
です。
ユースケース use-case
次の SQL テンプレートは、インラインテンプレートのユーティリティを示しています。例は、「最大収益」を超えて購入し、2023 年 6 月以前に注文した任意の地域の米国の顧客数をカウントするものです。インラインテンプレートの利点は、子テンプレート(この場合は最大収益と注文日)を簡単に編集でき、親テンプレートを変更する必要がないことです。
例
#parent_template : SELECT count(*) FROM customer WHERE region=NA AND country=US AND revenue > #revenue_max
#revenue_max: SELECT max(revenue) FROM revenue_table WHERE order_date > '01-06-2023'
クエリを実行すると、クエリサービスは、ハッシュ記号から始まるテンプレート名を、名前付きテンプレートの SQL 文で置き換えます。
テンプレートを使用して、1 つまたは複数の条件を保存できます。クエリ単体で完全でなくてもかまいません。テンプレートに有効なクエリが含まれている場合は、ハッシュ記号が先頭に付いたテンプレート名を呼び出すだけで、クエリを実行できます。例えば、SELECT * FROM JUNE_2023_LOYALTY_MEMBERS;
を JUNE_2023_LOYALTY_MEMBERS
という名前のテンプレートとして保存した場合、コマンド #JUNE_2023_LOYALTY_MEMBERS;
はテンプレート内に含まれる有効なクエリを実行します。
Adobe Experience Platform UI 内では、パラメーター化されたクエリ形式のインラインテンプレートは親レベルでのみサポートされます。つまり、パラメーター化されたクエリは、元のテンプレートで使用された場合にのみ機能します。子テンプレートは、静的テンプレートである必要があり、動的パラメーターを持つことはできません。詳しくは、パラメーター化されたクエリのドキュメントを参照してください。
次の手順
このドキュメントを参照したら、SQL 内の他のテンプレートを、クエリエディターまたは Query Service API を使用して参照する方法がわかります。
また、シーケンスで実行される 1 つ以上の SQL 文を連結することで、開発オーバーヘッドを最小限に抑える方法を説明する匿名ブロックガイドも参照する必要があります。