Profile Query Language(PQL)の概要

Profile Query Language(PQL)は、Experience Data Model(XDM)準拠のクエリ言語で、Real-Time Customer Profile データのセグメント化クエリの定義と実行をサポートするように設計されています。

このガイドでは PQL の全般的な概要を説明し、形式についてのガイドラインや PQL 式の例を示します。

PQL クエリの形式

PQL クエリのシグネチャは次のとおりです。

({INPUT_PARAMETER_1}, {INPUT_PARAMETER_2}, ...) => {RESULT_TYPE}

入力パラメータは、ブールや文字列などの単純なプリミティブ、またはオブジェクト、配列、マップなどのより複雑な型にすることができます。

PQL 式の本文内で入力パラメーターを参照する方法は、次の 3 とおりあります。

最初のパラメーターへの暗黙の参照

次の例では、最初のパラメーターは常にコンテキスト内にあるので、直接それを指すプロパティ参照(homeAddress)を作成できます。

homeAddress.stateProvince = workAddress.stateProvince

最初のパラメーターへの明示的な参照

次の例では、$1 は最初のパラメーターを参照しています。 したがって、$2 は 2 番目のパラメータを参照することになります。

$1.homeAddress.stateProvince = $1.homeAddress.stateProvince

名前付き変数の使用(ラムダ表記)

次の例では、Profile は変数名で、クエリの作成者が選択できます。

(Profile) => Profile.homeAddress.stateProvince = Profile.workAddress.stateProvince

PQL リテラル

PQL では次のリテラル型をサポートしています。

リテラル
定義
文字列
1 つ以上の文字で構成され、二重引用符で囲まれたデータタイプです。
"pizza""jobs""antidisestablishmentarianism"
ブール
true か false のいずれかであるデータタイプです。
true, false
整数
整数を表すデータタイプです。 正、負、ゼロのいずれかです。
-2010412
倍精度実数
任意の実数を表すデータタイプです。 正、負、ゼロのいずれかです。
-51.243.140.6942058
日付
年、月、日(整数パラメーター)に基づいて日付を作成するために使用できるデータタイプです。 date(year, month, day) という形式で記述します。
date(2020, 3, 14)
配列
他のリテラル値のグループとして構成されるデータ型です。 複数の値を区切る場合は、角括弧で囲んでグループ化し、カンマで区切ります。
注意:配列内の項目のプロパティに直接アクセスすることはできません。 したがって、配列内のプロパティにアクセスする必要がある場合、サポートされるメソッドはselect X from array where X.item = ...です。
PQLは、プロファイルにリンクされたエクスペリエンスイベントの配列を参照するために、xEventという単語を予約します。
[1, 4, 7], ["US", "CA"]
相対時間参照

タイムスタンプおよび時間間隔の参照の形式設定に使用できる予約語。

  • now、today、yesterday、tomorrow
  • this、last、next
  • before、after、from
  • millisecond/milliseconds、second/seconds、minute/minutes、hour/hours、day/days、week/weeks、month/months、year/years、decade/decades、century/centuries、millennium/millennia
X.timestamp occurs before todayX.timestamp occurs last monthX.timestamp occurs <= 3 days before now

PQL 関数

サポートされている PQL 関数の各種カテゴリを次の表に示します。詳細を説明するドキュメントへのリンクも含まれています。

カテゴリ
定義
ブール
PQL 内にブール代数を実装するために使用します。 これらの関数について詳しくは、ブール関数のドキュメントを参照してください。
比較
異なる PQL 要素間の比較に使用します。 これらの関数について詳しくは、比較関数のドキュメントを参照してください。
配列、リスト、セット
配列、リスト、セットの操作に使用されます。 これらの関数について詳しくは、配列関数、リスト関数、セット関数のドキュメントを参照してください。
マップ
マップの操作に使用します。 これらの関数について詳しくは、マップ関数のドキュメントを参照してください。
文字列
文字列の操作に使用します。 これらの関数について詳しくは、文字列関数のドキュメントを参照してください。
オブジェクト
オブジェクトの操作に使用します。 これらの関数について詳しくは、オブジェクト関数のドキュメントを参照してください。
算術演算
PQL 要素に対して基本的な算術演算を実行するために使用します。 これらの関数について詳しくは、算術演算関数のドキュメントを参照してください
集計
配列の結果を 1 つの結果に組み合わせるために使用します。 これらの関数について詳しくは、集計関数のドキュメントを参照してください。
日時
日付、時刻、日時の各オブジェクトと組み合わせて使用します。 これらの関数について詳しくは、日付/時刻関数のドキュメントを参照してください。
フィルター
配列内のデータのフィルタリングに使用します。 これらの関数について詳しくは、フィルター関数のドキュメントを参照してください。
論理量指定子
配列内の条件をアサートするために使用します。 詳しくは、論理量指定子のドキュメントを参照してください。
その他
上記カテゴリのいずれにも当てはまらない関数は、その他の関数のドキュメントを参照してください。

次の手順

これで Profile Query Language の使用方法を学習したので、セグメント定義を作成および変更する時に PQL を使用できるようになりました。 セグメント化について詳しくは、セグメント化の概要を参照してください。

recommendation-more-help
experience-platform-help-segmentation