[零售] 基于 Apache Unomi 构建 CDP 平台
完整版本 Workshop, 请移步 https://catalog.us-east-1.prod.workshops.aws/workshops/d84d9e31-3ce2-4713-a9ab-36666b1357f5/en-US/introduction/unomi
什么是 Apache Unomi
Apache Unomi™(读作“You know me”)是一个Java开源客户数据平台,是一个Java服务器,旨在管理客户、领导和访客数据,帮助个性化客户体验,同时还提供尊重访客隐私规则(如GDPR)的功能。
说明
Apache Unomi不是为商业用户设计的,也不是现成的商业软件。相反,它是一个“无头”的CDP,为企业和商业软件开发人员设计,作为许可其他厂商的CDP或构建自己的CDP的替代,当一个CDP旨在成为一个更大的、面向服务的(API驱动的)数字体验(DX)软件平台的一层。 也就是说,Apache Unomi提供了一组丰富的CDP功能,这对开发人员非常有吸引力。使用开源的CDP意味着开发人员可以很容易地理解、改进或扩展CDP,而不需要等待第三方供应商。它还允许开发人员利用他们的同行社区,这些社区共享构建高质量软件的意愿,并且能够共同承担开发的工作和成本。
Apache Unomi 业务流程
如何跟踪用户的操作
Unomi主要是为了捕捉用户对web应用程序的参与——视图、搜索、点击和其他事件。这些网络或移动跟踪事件主要是提供给Unomi的。尽管有了ElasticSearch后端和基于api的公开,理论上发送和持久化其他客户数据是可能的,但这些数据需要内建,利用任何合适的数据模型并不容易。
Unomi 提供客户端javascript,可以在默认情况下获得用户交互的方式。Unomi可以通过如下的方式跟踪操作。
- 通过嵌入Web页面的JS跟踪移动应用捕捉事件
- 由cookie启用的跟踪
- 一旦访问者到达页面,就会创建用户配置文件
- 为每个用户/概要捕获会话
- 当这些事情发生时,Unomi就会填充数据——每次登录、用户事件、页面浏览、CMS交互、表单提交等等。
- 历史导航/视图/事件存储在Unomi和可用的查询
Apache Unomi 是用什么构建的?
- Unomi是构建在Java平台上
- 使用ElasticSearch作为后端-作为持久性层,可以进行查询
- Unomi上下文服务器,基于OASIS上下文服务器(CXS)的标准——创建支持交付个性化用户体验和建立客户数据平台的标准
- Apache Karaf作为运行时——模块化、多态应用运行时容器
- Rest + JSON协议——Rest api将特定数据集成到平台中并公开它们;使用JSON格式进行数据交换
Apache Unomi 使用先决条件
JDK 兼容性
从Java 9开始,甲骨文对Java平台版本进行了一些重大更改。这就是为什么Apache Unomi专注于支持JDK的长期支持版本,目前版本8和11。我们不使用中间版本进行测试,因此它们可能工作正常,也可能无法正常工作。目前测试最多的版本是版本8,也支持版本11。
Elastic Search 兼容性
从1.5.0版本开始,Apache Unomi增加了与ElasticSearch 7.4的兼容性。强烈建议尽可能使用文档提供的ElasticSearch版本。然而,次要版本(7.4.x)也应该有效,一个更高版本(7.5)通常有效。 所以本次workshop采用的还是 ElasticSearch 7.4的版本。
Apache Unomi 的数据模型
Apache Unomi 物理架构
结论
虽然Apache Unomi提供了基本的能力来构建你自己的CDP——尤其是基本的CMS集成——但它目前所提供的平台特性是有限的。还有很多特性正在开发中,比如更多的集成(包括Kafka)、一个Web UI、对GraphQL的支持(隐含在CXS中,从Rest API转移到GraphQL API)等等。
然而考虑到CDP的早期定义和核心特性以及Unomi提供的基准测试,在小型实现中非常有用,主要客户数据是站点交互,可以快速实现基本的细分和个性化。