利用实时数据见解来优化价格,获得竞争优势。
行业: 零售
产品: MongoDB Atlas
合作伙伴: Google Cloud
解决方案概述
动态定价,即根据市场条件实时调整价格的策略,已成为企业谋求收益最大化及获得竞争优势的重要手段。要有效实现动态定价,强大的技术基础架构必不可少。此解决方案集成了 MongoDB Atlas 和 Google Cloud Vertex AI,旨在打造一个实时动态的定价微服务。通过利用 Google Cloud Pub/Sub 进行快速数据摄取,Vertex AI Notebooks 和 TensorFlow 模型将分析客户行为,以优化定价策略。MongoDB Atlas 充当复杂定价数据的灵活特征存储库,而 Google Cloud 的强大计算资源则支持复杂的计算和托管。
最终将产生一个可扩展且适用性强的定价系统,能够根据最新的市场情报实时调整价格。此集成通过有效处理大型数据集和复杂的定价场景来提升运营效率。持续的模型再训练可保证始终保持准确性和市场竞争力。
参考架构
动态定价微服务的架构集成了 MongoDB 和 Google Cloud Vertex AI,可实现实时数据处理和敏捷的定价调整。Google Cloud Pub/Sub 的核心功能是进行客户行为数据的摄取和分发,从而实现可扩展且高效的消息处理。然后,此类数据在 Vertex AI Notebooks 中进行清理和处理,其中会使用 TensorFlow 开发机器学习模型,以根据从历史数据中识别的模式预测最佳价格。
MongoDB Atlas 作为中央数据存储库和特征存储库,用于存储复杂的定价数据并支持机器学习模型。MongoDB 的文档模型提供了管理和动态更新定价数据所需的灵活性。Google Cloud Functions 会编排整个工作流程、处理客户事件、将事件转换为张量,并确保模型预测在 MongoDB Atlas 产品目录中实时更新。在架构图中,蓝色数据流展示了如何将客户事件数据摄入 Pub/Sub 主题,进而通过推送订阅触发云函数。此函数将原始事件转换为张量,并更新 MongoDB 产品目录中的预测价格。
这种架构方法允许隔离原始事件线程,从而能够开发各种服务,这些服务可以实时响应动态定价,或以异步方式运行以进行模型训练。通过保持组件之间的松散耦合,系统将保持弹性,并避免在某个部件出现问题时引发整体崩溃。发布者和订阅者可以继续独立处理其逻辑,确保系统强大且灵活,支持持续运营和无缝更新。
图1。动态定价架构,集成不同的 Google Cloud 组件和 MongoDB Atlas 作为功能存储
构建该解决方案
在 GitHub 存储库中,您将找到关于如何构建此解决方案的详细说明。
设置 MongoDB Atlas
请登录 MongoDB Atlas 并创建一个新的集群。
选择最接近用户群的区域,以实现最佳性能。
通过以下方式配置安全性:
创建具有特定角色的数据库用户。
启用 IP 访问以确保数据库连接的安全。
使用 Atlas 提供的连接字符串连接到您的集群,以实现应用程序集成。
设置 Google Cloud
登录 Google Cloud 控制台,为您的微服务创建一个新项目。
确保为您的项目启用必要的 API。
安装并初始化 Google Cloud CLI。
使用您的 Google Cloud 帐户进行身份验证。
将您的项目设置为默认项目。
开发微服务和模型
克隆存储库并导航到 dynamicPricing 微服务目录。
使用 pip 安装所需的 Python 包。
为 MongoDB Atlas、Google Cloud 凭证和 Pub/Sub 设置环境变量。
在 Google Cloud 中配置 Pub/Sub 主题。
为 dynamicPricing 服务开发定价逻辑。
使用 Vertex AI 来创建一个新的笔记本,以便连接到 MongoDB 并训练模型。
通过清理数据、构建模型并进行训练,训练一个 TensorFlow 模型。
将训练好的模型保存并上传到 Google Cloud 存储。
在 Vertex AI 中注册模型以进行管理和部署。
将模型部署到终结点
部署模型。
在 Google Cloud 控制台中访问 Vertex AI 部分。
定位并选择您要部署的模型。
单击“部署和测试”标签页下的“部署到终结点”。
通过配置模型设置和监控来完成部署设置。
Retrieve Endpoint ID.
转至 Vertex AI 中的“终结点”并记下终结点 ID,以便在云函数配置中使用。
配置云函数。
在 Google Cloud 中创建一个新的云函数。
将函数的触发器设置为您创建的 Pub/Sub 主题。
在函数中实现代码以预处理事件数据,调用 Vertex AI 模型进行预测,并使用结果更新 MongoDB。
准备依赖项。
确保 requirements.txt 文件包含云函数所需的所有库。
模拟客户事件。
使用提供的脚本生成合成客户行为数据。
将此数据推送到 MongoDB 和 Pub/Sub,以测试模型和微服务集成。
运行模拟。
执行脚本以验证整个端到端系统。
MongoDB 在事件建模中的优势
添加张量可以实现事件驱动的架构,且所有功能都集中在一个集合内,这可以简化数据检索和处理,但可能会导致文档庞大且复杂,需要精心管理才能保持性能。借助这种灵活性,MongoDB 能够在同一集合中存储运营数据和特征存储库,便于集成数据分析和实时决策,但同时可能增加存储成本和数据管理的复杂性。
图2。事件集合中的数据结构,用于表示对MongoDB白袜子的模拟用户视图,包括价格信息。
有关如何构建自己的动态微服务的更多详细信息,请参阅我们的博客文章《使用 Vertex AI 和 MongoDB Atlas 构建动态定价微服务》。
关键要点
集中式特征存储库:MongoDB 作为特征存储库,可充当专门用来存储、管理和提供机器学习 (ML) 模型特征的集中式存储库。利用其多态性功能,可以通过单一界面来表示多种类型的数据。这意味着,随着新特征的引入或定价模型的演变,MongoDB 可以在同一系统内熟练地管理多种数据类型。在动态定价环境中,此功能将无缝整合新的定价因素或变量,而不会对现有数据结构或操作造成干扰。
可扩展性和效率: Google Cloud Pub/Sub 能够高效处理海量客户数据,确保现实应用程序的可扩展性。虽然此微服务仅模拟每三秒 25 个客户事件,但 Pub/Sub 能够处理更大规模的数据流。
实时价格更新: 云函数会触发 TensorFlow 模型,以根据客户行为生成动态价格。然后,将生成的这些价格插入或更新(更新插入)回 MongoDB 的产品目录集合中。这样便可在电商应用程序中进行实时调整,因为应用程序的前端会直接从同一集合中检索数据。
使用的技术和产品
MongoDB 开发者数据平台
合作伙伴技术
作者
Francesco Baldissera, MongoDB
Sebastian Rojas Arbulu, MongoDB