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表达式正文中的输入参数:

对第一个参数的隐式引用

在以下示例中,由于第一个参数始终处于上下文中,因此可以直接对其进行属性引用(homeAddress)。

homeAddress.stateProvince = workAddress.stateProvince

对第一个参数的显式引用

在以下示例中,$1引用第一个参数。 因此,$2将引用第二个参数,等等。

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

使用lambda表示法使用命名变量

在以下示例中,Profile是变量名称,可由查询作者选择。

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

PQL文本

PQL支持以下文字类型:

文本 定义 示例
字符串 由多次引号环绕的字符组成的数据类型。 "pizza""jobs""antidisestablishmentarianism"
布尔值 为true或false的数据类型。 truefalse
整数 表示整数的数据类型。 它可以是正的、负的或零的。 -2010412
双精度 表示任意实数的数据类型。 它可以是正的、负的或零的。 -51.243.140.6942058
Date 一种数据类型,可用于根据年、月和日创建日期作为整数参数。 格式设置为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 todayX.timestamp occurs last monthX.timestamp occurs <= 3 days before now

PQL函数

下表概述了支持的PQL功能的不同类别,包括指向进一步文档的链接以获取更多信息。

类别 定义
布尔值 用于在PQL中实现布尔代数。 有关这些函数的详细信息,请参阅布尔函数文档
比较 用于比较不同的PQL元素。 有关这些函数的详细信息,请参阅比较函数文档
阵列、列表和设置 用于与阵列、列表和集交互。 有关这些函数的详细信息,请参阅数组、列表和设置函数文档
地图 用于与地图交互。 有关这些函数的详细信息,请参阅map函数文档
字符串 用于与字符串交互。 有关这些函数的详细信息,请参阅字符串函数文档
对象 用于与对象交互。 有关这些函数的详细信息,请参阅对象函数文档
算术 用于对PQL元素执行基本算术。 有关这些函数的详细信息,请参阅算术函数文档
聚合 用于将数组结果合并为奇异结果。 有关聚合函数的详细信息,请参阅聚合函数文档
日期和时间 与date、time和datetime对象结合使用。 有关这些函数的详细信息,请参阅date/time函数文档
过滤器 用于筛选数组中的数据。 有关这些函数的详细信息,请参阅过滤器函数文档
逻辑量词 用于断言数组中的条件。 在逻辑量词文档中可以找到更多信息。
其他 杂项函数文档中可以找到不适合上述任何类别的函数。

后续步骤

您已经学习了如何使用Profile Query Language,现在可以在创建和修改区段时使用PQL。 有关分段的详细信息,请阅读分段概述

在此页面上