Profile Query Language(PQL)は、Experience Data Model(XDM)準拠のクエリ言語で、Real-Time Customer Profile データのセグメント化クエリの定義と実行をサポートするように設計されています。
このガイドでは 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 では次のリテラル型をサポートしています。
リテラル | 定義 | 例 |
---|---|---|
文字列 | 1 つ以上の文字で構成され、二重引用符で囲まれたデータタイプです。 | "pizza" 、"jobs" 、"antidisestablishmentarianism" |
ブール | true か false のいずれかであるデータタイプです。 | true 、false |
整数 | 整数を表すデータタイプです。正、負、ゼロのいずれかです。 | -201 、0 、412 |
倍精度実数 | 任意の実数を表すデータ型です。正、負、ゼロのいずれかです。 | -51.24 、3.14 、0.6942058 |
日付 | 年、月、日(整数パラメーター)に基づいて日付を作成するために使用できるデータ型です。date(year, month, day) という形式で記述します。 |
date(2020, 3, 14) |
配列 | 他のリテラル値のグループとして構成されるデータ型です。複数の値を区切る場合は、角括弧で囲んでグループ化し、カンマで区切ります。 注意:配列内の項目のプロパティに直接アクセスすることはできません。したがって、配列内のプロパティにアクセスする必要がある場合、サポートされているメソッドは select X from array where X.item = ... です。PQL には、プロファイルにリンクされたエクスペリエンスイベントの配列を指す予約語 xEvent があります。 |
[1, 4, 7] 、["US", "CA"] |
相対時間参照 | タイムスタンプおよび時間間隔の参照の形式設定に使用できる予約語。
|
X.timestamp occurs before today 、X.timestamp occurs last month 、X.timestamp occurs <= 3 days before now |
サポートされている PQL 関数の各種カテゴリを次の表に示します。詳細を説明するドキュメントへのリンクも含まれています。
カテゴリ | 定義 |
---|---|
ブール | PQL 内にブール代数を実装するために使用します。これらの関数について詳しくは、ブール関数のドキュメントを参照してください。 |
比較 | 異なる PQL 要素間の比較に使用します。これらの関数について詳しくは、比較関数のドキュメントを参照してください。 |
配列、リスト、セット | 配列、リスト、セットの操作に使用されます。これらの関数について詳しくは、配列関数、リスト関数、セット関数のドキュメントを参照してください。 |
マップ | マップの操作に使用します。これらの関数について詳しくは、マップ関数のドキュメントを参照してください。 |
文字列 | 文字列の操作に使用します。これらの関数について詳しくは、文字列関数のドキュメントを参照してください。 |
オブジェクト | オブジェクトの操作に使用します。これらの関数について詳しくは、オブジェクト関数のドキュメントを参照してください。 |
算術演算 | PQL 要素に対して基本的な算術演算を実行するために使用します。これらの関数について詳しくは、算術演算関数のドキュメントを参照してください |
集計 | 配列の結果を 1 つの結果に組み合わせるために使用します。これらの関数について詳しくは、集計関数のドキュメントを参照してください。 |
日時 | 日付、時刻、日時の各オブジェクトと組み合わせて使用します。これらの関数について詳しくは、日付/時刻関数のドキュメントを参照してください。 |
フィルター | 配列内のデータのフィルタリングに使用します。これらの関数について詳しくは、フィルター関数のドキュメントを参照してください。 |
論理量指定子 | 配列内の条件をアサートするために使用します。詳しくは、論理量指定子のドキュメントを参照してください。 |
その他 | 上記カテゴリのいずれにも当てはまらない関数は、その他の関数のドキュメントを参照してください。 |
これで Profile Query Language の使用方法を学習したので、セグメント定義を作成および変更する時に PQL を使用できるようになりました。セグメント化について詳しくは、セグメント化の概要を参照してください。