在架构中对数据进行建模
在本课程中,您将将Luma的数据建模为架构。 这是教程中最长的课程之一,所以喝杯水吧!
标准化和互操作性是Adobe Experience Platform背后的关键概念。 体验数据模型(XDM)致力于标准化客户体验数据并定义用于客户体验管理的架构。
XDM是一个公开记录的规范,旨在提高数字体验的强大功能。 它提供通用结构和定义,供任何应用程序用于与Platform服务通信。 通过遵守XDM标准,所有客户体验数据都可以纳入到通用表示中,从而以更快、更集成的方式提供见解。 您可以从客户操作中获得有价值的见解,通过区段定义客户受众,并表达客户属性以进行个性化。
XDM是一个基础框架,它允许Adobe Experience Cloud由Experience Platform提供支持,在正确的时间通过正确的渠道向正确的人员传递正确的信息。 构建Experience Platform所基于的方法 XDM System 可使Platform服务使用的Experience Data Model架构可操作化。
数据架构师 需要在本教程之外创建架构,但 数据工程师 将与数据架构师创建的架构密切合作。
在开始练习之前,请观看此简短视频,详细了解架构和Experience Data Model (XDM):
所需的权限
在配置权限课程中,您已设置完成本课程所需的所有访问控制。
通过UI创建忠诚度模式
在本练习中,我们将为Luma的忠诚度数据创建一个架构。
-
转到Platform用户界面,并确保已选择您的沙盒。
-
在左侧导航中转到 架构。
-
选择右上方的 创建架构 按钮。
具有OOTB字段组的 -
在创建架构工作流中,选择 个人资料 作为架构的基类,因为我们将为单个客户的属性(点、状态等)建模。
-
选择 下一步。
-
在 架构显示名称 文本字段中输入
Luma Loyalty Schema
。 在以下画布中,您还可以查看和验证所选类提供的基本架构结构。 -
选择 完成 以创建您的架构。
添加标准字段组
创建架构后,您将被重定向到架构编辑器,您可以在其中向架构添加字段。 您可以直接将单个字段添加到架构或使用字段组。 请务必注意,所有单个字段仍与类或字段组相关联。 您可以从Adobe提供的大量行业标准字段组中进行选择,也可以创建自己的字段组。 当您开始在Experience Platform中对自己的数据进行建模时,最好熟悉Adobe提供的行业标准字段组。 最佳实践是尽可能使用它们,因为它们有时支持下游服务,例如客户人工智能、Attribution AI和Adobe Analytics。
处理您自己的数据时,重要的一步是确定应在Platform中捕获您自己的哪些数据以及应如何对其进行建模。 播放列表使用XDM对您的客户体验数据进行建模中将更深入地讨论这个大主题。 在本教程中,我将指导您完成一些预先确定的架构的实施。
要添加字段组:
-
在 字段组 标题下选择 添加。
-
在 添加字段组 模式中,选择以下字段组:
- 人口统计详细信息,了解名称和出生日期等基本客户数据
- 个人联系人详细信息,了解电子邮件地址和电话号码等基本联系人详细信息
-
您可以通过选择行右侧的图标,预览在字段组中贡献的字段。
-
选中 Industry > Retail 框以公开特定于行业的字段组。
-
选择 忠诚度详细信息 以添加忠诚度计划字段。
-
选择 添加字段组 以将所有三个字段组添加到架构。
现在,请花些时间探索架构的当前状态。 字段组已添加与人员、其联系人详细信息和忠诚度计划状态相关的标准字段。 在为自己公司的数据创建架构时,您可能会发现这两个字段组很有用。 选择特定的字段组行,或选中字段组名称旁边的复选框,以查看可视化图表的更改情况。
要保存架构,请选择 保存。
添加自定义字段组
现在,让我们创建一个自定义字段组。
虽然忠诚度字段组包含loyaltyID
字段,但Luma希望在一个组中管理其所有系统标识符,以确保其架构的一致性。
必须在架构工作流中创建字段组。 您可以:
- 先向架构中添加新的自定义字段,然后创建自定义字段组,或
- 先创建自定义字段组,然后向其添加字段。
在本教程中,我们首先会创建一个自定义字段组。
要创建字段组,请执行以下操作:
- 在 架构字段组 标题下选择 添加
- 选择 创建新字段组
- 使用
Luma Identity profile field group
作为 显示名称 - 使用
system identifiers for XDM Individual Profile class
作为 描述 - 选择 添加字段组
新的空字段组将会添加到您的架构中。+ 按钮可用于向层次结构中的任何位置添加新字段。 在本例中,我们要在根级别添加字段:
-
选择架构名称旁边的 +。 这会在您的租户ID命名空间下添加一个新字段,以管理自定义字段和任何标准字段之间的冲突。
-
在 字段属性 侧边栏中添加新字段的详细信息:
-
字段名称:
systemIdentifier
-
显示名称:
System Identifier
-
类型:对象
-
在 字段组 下拉列表中,选择我们创建的 Luma标识配置文件字段组。
-
选择 应用
-
现在,在systemIdentifier
对象下添加两个字段:
-
第一个字段
- 字段名称:
loyaltyId
- 显示名称:
Loyalty Id
- 类型: 字符串
- 字段名称:
-
第二个字段
- 字段名称:
crmId
- 显示名称:
CRM Id
- 类型: 字符串
- 字段名称:
您的新字段组应如下所示。 选择 Save 按钮以保存您的架构,但在下一次练习中保持该架构处于打开状态。
创建数据类型
字段组(如新Luma Identity profile field group
)可在其他架构中重用,从而允许您跨多个系统实施标准数据定义。 但它们只能在共享类 的架构中重用,在本例中为XDM个人资料类。
数据类型是另一个多字段构造,可在多个类 的架构 中重复使用。 让我们将新的systemIdentifier
对象转换为数据类型:
在Luma Loyalty Schema
仍然打开的情况下,选择systemIdentifier
对象并选择 转换为新数据类型
如果您 从架构中取消 并导航到 数据类型 选项卡,您将看到新创建的数据类型。 我们将在本课程的后面部分使用此数据类型。
通过API创建CRM架构
现在,我们将使用API创建架构。
- 使用个人资料类
- 将其命名为
Luma CRM Schema
- 使用以下字段组:“人口统计详细信息”、“个人联系人详细信息”和“Luma身份配置文件”字段组
首先,创建空架构:
-
打开Postman
-
如果您没有访问令牌,请打开请求 OAuth: Request Access Token 并选择 发送 以请求新的访问令牌。
-
打开您的环境变量,并将 CONTAINER_ID 的值从
global
更改为tenant
。 请记住,当您想要与Platform中您自己的自定义元素交互时(例如创建架构),必须使用tenant
。 -
选择 保存
-
打开请求 Schema Registry API > Schemas > Create a new custom schema.
-
打开 主体 选项卡并粘贴以下代码,然后选择 发送 以进行API调用。 此调用使用相同的
XDM Individual Profile
基类创建一个新架构:code language-json { "type": "object", "title": "Luma CRM Schema", "description": "Schema for CRM data of Luma Retail ", "allOf": [{ "$ref": "https://ns.adobe.com/xdm/context/profile" }] }
note note NOTE 此代码示例和后续代码示例(例如 https://ns.adobe.com/xdm/context/profile
)中的命名空间引用可以通过使用列表API调用和 CONTAINER_ID 以及接受标头设置为正确的值来获取。 部分内容还可在用户界面中轻松访问。 -
您应会收到
201 Created
响应 -
从响应正文中复制
meta:altId
。 我们稍后将在另一个练习中使用它。
-
新架构应在用户界面中可见,但不包含任何字段组
tenant
并接受标头application/vnd.adobe.xdm+json
的API请求 Schema Registry API > Schemas > Retrieve a list of schemas within the specified container.,还可以获取meta:altId
或架构ID。- 无身份验证令牌:运行 OAuth:请求访问令牌 请求以生成新令牌
401: Not Authorized to PUT/POST/PATCH/DELETE for this path : /global/schemas/
:将 CONTAINER_ID 环境变量从global
更新为tenant
403: PALM Access Denied. POST access is denied for this resource from access control
:验证Admin Console中的用户权限
添加标准字段组
现在可以将字段组添加到架构中:
-
在Postman中,打开请求 Schema Registry API > Schemas > Update one or more attributes of a custom schema specified by ID.
-
在 参数 选项卡中,将上一个响应中的
meta:altId
值粘贴为SCHEMA_ID
-
打开“正文”选项卡并粘贴以下代码,然后选择 发送 以进行API调用。 此调用将标准字段组添加到您的
Luma CRM Schema
:code language-json [{ "op": "add", "path": "/allOf/-", "value": { "$ref": "https://ns.adobe.com/xdm/context/profile-personal-details" } }, { "op": "add", "path": "/allOf/-", "value": { "$ref": "https://ns.adobe.com/xdm/context/profile-person-details" } } ]
-
您应该会为响应获得“200 OK”状态,并且字段组应该作为架构的一部分显示在UI中
添加自定义字段组
现在,让我们将Luma Identity profile field group
添加到架构中。 首先,我们需要使用列表API查找新字段组的ID:
-
打开请求 Schema Registry API > Field groups > Retrieve a list of field groups within the specified container.
-
选择 发送 按钮以检索您帐户中所有自定义字段组的列表
-
获取
Luma Identity profile field group
的$id
值(您的值将与此屏幕快照中的值不同)
-
再次打开请求 Schema Registry API > Schemas > Update one or more attributes of a custom schema specified by ID.
-
Params 选项卡仍应包含架构的
$id
-
打开 正文 选项卡并粘贴以下代码,将
$ref
值替换为您自己的Luma Identity profile field group
的$id
:code language-json [{ "op": "add", "path": "/allOf/-", "value": { "$ref": "REPLACE_WITH_YOUR_OWN_FIELD_GROUP_ID" } }]
-
选择 发送
通过检查API响应和界面中的字段组,验证该字段组是否已添加到架构中。
创建离线购买事件架构
现在,让我们根据 Experience Event 类为Luma的离线购买数据创建架构。 由于您现在已熟悉架构编辑器用户界面,因此我将减少说明中的屏幕截图数量:
- 创建具有 Experience Event 类的架构。
- 命名您的架构
Luma Offline Purchase Events Schema
。 - 添加标准字段组 Commerce详细信息 以捕获通用订单详细信息。 花几分钟研究一下里面有哪些东西。
- 搜索
Luma Identity profile field group
。 不可用! 请记住,字段组与类相关联,由于我们对此架构使用不同的类,因此我们无法使用它。 我们需要为包含标识字段的XDM ExperienceEvent类添加新字段组。 我们的数据类型会使其变得非常简单! - 选择 创建新字段组 单选按钮
- 输入 显示名称 作为
Luma Identity ExperienceEvent field group
并选择 添加字段组 按钮 - 选择架构名称旁边的 +。
- 作为 字段名称,输入
systemIdentifier
。 - 作为 显示名称,请输入
System Identifier
。 - 对于 类型,请选择 系统标识符,这是您之前创建的自定义数据类型。
- 作为 字段组,选择 Luma标识ExperienceEvent字段组。
- 选择 应用 按钮。
- 选择 保存 按钮。
请注意数据类型如何添加所有字段!
此外,在 Class 标题下选择 XDM ExperienceEvent,并检查此类贡献的某些字段。 请注意,使用XDM ExperienceEvent类时需要_id和时间戳字段,使用此架构时摄取的每个记录都必须填充这些字段:
创建Web事件架构
现在,我们将为Luma的网站数据再创建一个架构。 此时,您应该成为创建架构的专家! 使用这些属性构建以下架构
选择 使用者体验事件 字段组。 此字段组包含商业和productListItems对象,这些对象也在Commerce详细信息中。 事实上,使用者体验事件是另外几个标准字段组的组合,这些字段组也单独提供。 AEP Web SDK ExperienceEvent字段组还包含其他字段组,包括使用者体验事件中一些相同的字段组。 幸运的是,他们完美地融合在一起。
请注意,我们未将Luma Identity ExperienceEvent field group
添加到此架构。 这是因为Web SDK具有不同的身份收集方式。 如果您在架构编辑器的 合成 区域中选择 XDM ExperienceEvent 类,您将注意到它默认添加的字段之一名为 IdentityMap。 IdentityMap被各种Adobe应用程序用于链接到Platform。 您将在流摄取课程中看到如何通过identityMap将身份发送到Platform。
创建产品目录架构
通过使用Commerce详细信息和使用者体验事件字段组,Luma通过标准productListItems数据类型报告产品相关事件的某些详细信息。 但是,他们还希望将其他产品详细信息字段发送到Platform。 与其在销售点和电子商务系统中捕获所有这些字段,Luma更愿意直接从他们的产品目录系统中摄取这些字段。 “架构关系”允许您定义两个架构之间的关系,以进行分类或查找。 Luma将使用关系对其产品详细信息进行分类。 我们将立即开始此过程,并在下一课结束时完成此过程。
首先,我们必须使用自定义类为Luma的产品目录创建架构:
-
选择 创建架构 按钮。
-
在创建架构工作流中,选择 其他 选项。
-
选择 创建类 按钮
-
将其命名为
Luma Product Catalog Class
-
将 行为 保留为 记录
-
选择 创建 按钮。
-
您创建的 Luma产品目录类 出现在下面的“类”表中。 确保已选择类,然后选择 下一步。
-
命名架构
Luma Product Catalog Schema
。 -
使用以下字段创建一个名为
Luma Product Catalog field group
的新字段组:- productName:产品名称:字符串
- productCategory: Product类别:字符串
- productColor: Product Color:字符串
- productSku: Product SKU:字符串 | 必填
- productSize: Product Size:字符串
- productPrice: Product Price: Double
-
保存 架构
您的新架构应如下所示。 请注意productSku
字段在必填字段部分中的列出方式:
下一步是定义两个ExperienceEvent架构与Luma Product Catalog Schema
之间的关系,但是,在可以执行该操作之前,我们必须在下一课程中执行一些其他步骤。