了解如何通过平面架构文件中Real-Time CDP的计算字段将阵列导出到 云存储目标. 请阅读本文档以了解此功能启用的用例。
获取有关计算字段的丰富信息 — 这些字段是什么以及它们为什么重要。 请阅读以下链接页面,了解有关数据准备中计算字段的介绍以及有关所有可用函数的更多信息:
并非上面列出的所有函数都受支持 将字段导出到云存储目标时 使用计算字段功能。 请参阅 “支持的函数”部分 有关更多信息,请参阅下文。
在Experience Platform中,您可以使用 XDM架构 以管理不同的字段类型。 以前,您可以将简单的键值对类型字段(如字符串不Experience Platform)导出到所需的目标。 以前支持导出的此类字段的示例为 personalEmail.address
:johndoe@acme.org
.
Experience Platform中的其他字段类型包括数组字段。 详细了解 管理Experience PlatformUI中的数组字段. 除了以前支持的字段类型之外,您现在还可以导出数组对象,例如: organizations:[marketing, sales, engineering]
. 请参阅下面的更多信息 大量示例 介绍如何使用各种函数来访问数组的元素,将数组元素加入字符串等。
请注意此功能测试版的以下已知限制:
连接 到所需的云存储目标,请浏览 云存储目标的激活步骤 然后转到 映射 步骤。
在云存储目标的激活工作流的映射步骤中,选择 (Beta)添加计算字段.
这将打开一个模式窗口,您可以在其中选择可用于将属性导出到Experience Platform之外的属性。
XDM架构中的某些字段在中仅可用 字段 视图。 您可以看到字符串值以及字符串、整数和布尔值的数组。 例如, segmentMembership
数组不会显示,因为它包含其他数组值。
例如,使用 join
上的函数 loyaltyID
如下所示的字段,用于在CSV文件中将忠诚度ID数组导出为与下划线连接的字符串。 视图 有关此内容以及下面其他示例的更多信息.
选择 保存 以保留计算字段并返回映射步骤。
返回工作流的映射步骤,填写 目标字段 在导出的文件中为此字段使用所需的列标题值。
准备就绪后,选择 下一个 以继续执行激活工作流的下一步。
请注意,计算字段的测试版仅支持以下函数,并且目标支持数组:
join
coalesce
size_of
iif
index-based array access
add_to_array
to_array
first
last
sha256
md5
有关上面列出的某些函数,请参阅以下部分中的示例和更多信息。 对于列出的其余函数,请参阅 “数据准备”部分中的常规函数文档.
join
用于导出数组的函数使用 join
用于将数组的元素连接到字符串的函数,使用所需的分隔符,例如 _
或 |
.
例如,您可以使用合并以下的XDM字段,如映射屏幕快照中所示 join('_',loyalty.loyaltyID)
语法:
"organizations": ["Marketing","Sales,"Finance"]
数组person.name.firstName
字符串person.name.lastName
字符串personalEmail.address
字符串在这种情况下,您的输出文件将如下所示。 请注意如何使用将数组的三个元素连接到单个字符串中 _
字符。
`First_Name,Last_Name,Personal_Email,Organization
John,Doe,johndoe@acme.org, "Marketing_Sales_Finance"
iif
用于导出数组的函数使用 iif
函数以导出特定条件下的数组元素。 例如,继续使用 organizations
从上面数组对象,可以编写一个简单的条件函数,如 iif(organizations[0].equals("Marketing"), "isMarketing", "isNotMarketing")
.
在这种情况下,您的输出文件将如下所示。 在这种情况下,数组的第一个元素是营销,因此人员是营销部门的成员。
`First_Name,Last_Name, Personal_Email, Is_Member_Of_Marketing_Dept
John,Doe, johndoe@acme.org, "isMarketing"
add_to_array
用于导出数组的函数使用 add_to_array
函数以将元素添加到导出的数组。 您可以将此函数与 join
函数中。
继续使用 organizations
从上面数组对象,您可以编写函数,如 source: join('_', add_to_array(organizations,"2023"))
,退回2023年人员所属的组织。
在这种情况下,您的输出文件将如下所示。 请注意如何使用将数组的三个元素连接到单个字符串中 _
字符和2023也附加在字符串的末尾。
`First_Name,Last_Name,Personal_Email,Organization_Member_2023
John,Doe, johndoe@acme.org,"Marketing_Sales_Finance_2023"
coalesce
用于导出数组的函数使用 coalesce
函数,用于访问数组的第一个非空元素并将其导出到字符串中。
例如,您可以使用合并以下的XDM字段,如映射屏幕快照中所示 coalesce(subscriptions.hasPromotion)
用于返回第一个 true
之 false
数组中的值:
"subscriptions.hasPromotion": [null, true, null, false, true]
数组person.name.firstName
字符串person.name.lastName
字符串personalEmail.address
字符串在这种情况下,您的输出文件将如下所示。 请注意第一个非空值的方式 true
数组中的值会导出到文件中。
First_Name,Last_Name,hasPromotion
John,Doe,true
size_of
用于导出数组的函数使用 size_of
函数来指示数组中存在的元素数。 例如,如果您拥有 purchaseTime
具有多个时间戳的数组对象,您可以使用 size_of
指示某个人单独购买多少次的功能。
例如,您可以合并下面的以下XDM字段,如映射屏幕快照中所示。
"purchaseTime": ["1538097126","1569633126,"1601255526","1632791526","1664327526"]
数组,指示客户的五个单独购买时间personalEmail.address
字符串在这种情况下,您的输出文件将如下所示。 请注意第二列如何指示数组中的元素数,对应于客户进行的单独购买次数。
`Personal_Email,Times_Purchased
johndoe@acme.org,"5"
您可以访问数组的索引以从数组导出单个项。 例如,与上面的示例类似, size_of
功能,如果您希望仅在客户首次购买特定产品时访问和导出,则可以使用 purchaseTime[0]
要导出时间戳的第一个元素, purchaseTime[1]
要导出时间戳的第二个元素, purchaseTime[2]
以导出时间戳的第三个元素,依此类推。
在这种情况下,您的输出文件如下所示,在客户首次购买时导出:
`Personal_Email,First_Purchase
johndoe@acme.org,"1538097126"
first
和 last
用于导出数组的函数使用 first
和 last
用于导出数组中的第一个或最后一个元素的函数。 例如,继续使用 purchaseTime
具有前几个示例中的多个时间戳的数组对象,您可以使用这些对象到函数以导出人员的首次购买时间或上次购买时间。
在这种情况下,您的输出文件将如下所示,导出客户第一次和最后一次购买的时间:
`Personal_Email,First_Purchase, Last_Purchase
johndoe@acme.org,"1538097126","1664327526"
除了从数组导出数组或元素的特定函数之外,您还可以使用散列函数对导出文件中的属性进行散列。 例如,如果您在属性中有任何个人身份信息,则可以在导出这些字段时对其进行哈希处理。
您可以直接散列字符串值,例如 md5(personalEmail.address)
. 如果需要,您还可以散列数组字段的单个元素,假定数组中的元素是字符串,如下所示: md5(purchaseTime[0])
支持的哈希函数包括:
函数 | 示例表达式 |
---|---|
sha1 |
sha1(organizations[0]) |
sha256 |
sha256(organizations[0]) |
sha512 |
sha512(organizations[0]) |
hash |
hash("crc32", organizations[0], "UTF-8") |
md5 |
md5(organizations[0], "UTF-8") |
crc32 |
crc32(organizations[0]) |