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元素执行基本运算。 有关这些函数的更多信息,请参见 算术函数文档 |
聚合 | 用于将阵列的结果组合成单个结果。 有关聚合函数的更多信息,请参见 聚合函数文档. |
日期和时间 | 与date、time和datetime对象一起使用。 有关这些函数的更多信息,请参见 日期/时间函数文档. |
过滤器 | 用于筛选数组中的数据。 有关这些函数的更多信息,请参见 筛选函数文档. |
逻辑量化符 | 用于声明数组中的条件。 欲知更多信息,请参见 逻辑量化符文档. |
其他 | 不符合上述任何类别的函数可在 杂项函数文档. |
现在您已了解如何使用 Profile Query Language中,您可以在创建和修改区段定义时使用PQL。 欲知分段详情,请参阅 分段概述.