Profile Query Language (PQL)是 Experience Data Model (XDM)相容查詢語言,專為支援以下專案的區段查詢定義和執行而設計: Real-Time Customer Profile 資料。
本指南提供PQL的一般概述,涵蓋格式設定指南並提供範例PQL運算式。
PQL查詢具有下列簽章:
({INPUT_PARAMETER_1}, {INPUT_PARAMETER_2}, ...) => {RESULT_TYPE}
輸入引數可以是簡單的基本值(例如布林值或字串),或是更複雜的型別(例如物件、陣列或地圖)。
有三種不同的方式可參照PQL運算式內文中的輸入引數:
在以下範例中,由於第一個引數一律位於上下文中,因此屬性參照(homeAddress
)可直接建立至其中。
homeAddress.stateProvince = workAddress.stateProvince
在以下範例中, $1
參考第一個引數。 因此, $2
會參照第二個引數等。
$1.homeAddress.stateProvince = $1.homeAddress.stateProvince
在以下範例中, Profile
是變數名稱,可由查詢作者選擇。
(Profile) => Profile.homeAddress.stateProvince = Profile.workAddress.stateProvince
PQL支援下列常值型別:
常值 | 定義 | 範例 |
---|---|---|
字串 | 由雙引號括住的字元所組成的資料型別。 | "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元素執行基本運算。 如需這些函式的詳細資訊,請參閱 算術函式檔案 |
彙總 | 用於將陣列的結果組合成單一結果。 有關彙總函式的詳細資訊,請參閱 彙總函式檔案. |
日期和時間 | 與日期、時間和日期時間物件搭配使用。 如需這些函式的詳細資訊,請參閱 日期/時間函式檔案. |
篩選 | 用於篩選陣列中的資料。 如需這些函式的詳細資訊,請參閱 篩選函式檔案. |
邏輯數量詞 | 用於宣告陣列中的條件。 如需詳細資訊,請參閱 邏輯數量詞檔案. |
其他 | 不符合上述任何類別的函式可在 雜項函式檔案. |
現在您已瞭解如何使用 Profile Query Language,您便可在建立和修改區段定義時使用PQL。 如需區段的詳細資訊,請參閱 區段概述.