皮爷咖啡基于亚马逊云科技的数据架构,加速数据治理进程
皮爷咖啡(Peet’s Coffee)是美国精品咖啡品牌,于2017年进入中国,为中国消费者带来传统经典咖啡饮品,并特别呈现更加丰富的品质咖啡饮品体验。通过深入应用亚马逊云科技云原生数据库产品Amazon Redshift以及Amazon DMS等数据库产品,皮爷咖啡在1个月内,快速构建了敏捷的数据架构,加速数据治理进程。
皮爷咖啡采用的亚马逊云科技的产品及服务包括:Amazon Redshift、Amazon Kinesis Data Streams、Amazon Lambda、Amazon Glue、Amazon Athena、Amazon Lake formation、Amazon DMS。
机会:未经治理的数据“一口水,一口井”
皮爷咖啡是包装和连锁咖啡巨头JDE旗下的精品咖啡品牌,始终秉承着打造极致咖啡体验的理念。在中国,皮爷咖啡也在迅速发展,伴随着业务的迅速扩张,皮爷咖啡迅速意识到需要构建对应的数据治理机制,去建设大数据平台。皮爷咖啡数据架构师冯亚东强调:“2023年是皮爷咖啡的数字化里程碑的一年,我们对数据治理的要求非常明确,就是敏捷。敏捷的定义是:没什么做不了,没什么不能改,不需要从头来,不需要等太久。我们做数据,数据驱动是绕不开的话题,如果驱动不好做,十有八九是不够敏捷。”
皮爷咖啡对于数据治理的要求非常明确:打破数据孤岛,构建敏捷的数据系统,具备高效的数据整合与流动能力,实现业务部门对数据平台建设的较高参与度。在这之中,主要挑战有如下几点:
-
业务数据库繁杂、分散:由于历史原因,皮爷业务数据库有本地IDC的服务器、也包含其他云平台的服务器,数仓种类包含RDB、NoSQL等,种类繁多,场景类别多样。因此需要一个通用的、非线性方式解决数据集成问题;
-
数据治理:数据血缘元数据产品的核心能力,是大数据系统的老大难问题。数据血缘管理、数据质量监控、数据指标管理,都需要优化迭代,并适配皮爷咖啡的开源解决方案;
-
数据应用:皮爷咖啡在搭建数据中台的关键思考就是需要满足现有场景,并赋能业务人员可以省心省时省力运用和分析数据。
解决方案:1个月构建敏捷弹性的智能湖仓架构,打破数据孤岛
针对以上痛点,亚马逊云科技与皮爷咖啡进行深入讨论,最终确认了围绕“以订单系统为核心的数据主线”完成一期开发,添枝加叶,完善服务。
数据摄入:Serverless免运维架构,构建数据摄入能力
针对于皮爷咖啡多样的数据源类型,亚马逊云科技将数据源分成三种类别:面对热数据、结构化数据,也是高实时要求的数据,皮爷咖啡充分利用Amazon DMS自动化迁移功能,实现数据库和分析工作负载的快速迁移和CDC(自动数据摄取),并尽可能减少停机时间和杜绝数据丢失,并经由Amazon DMS直接进入云原生数据仓库AmazonRedshift进行分析;面对企业应用端、更加复杂的非结构化热数据,则通过Amazon Kinesis Data Streams进行实时的流数据分析,并通过Serverless架构的Amazon Lambda,对数据进行处理;而面对冷数据、存取比比较低的非结构化数据,则通过Amazon Glue存储在数据湖Amazon S3中,从而降低计算成本和存储成本,最终实现良好的冷、热、温数据分层和隔离。
数据分析:运用冷热分离的智能湖仓架构实现降本增效
为了将不同结构、不同类型、不同来源的皮爷咖啡相关数据汇总起来并加以分析、获得见解,亚马逊云科技运用Amazon S3、Amazon Lake formation、Amazon Redshift构建起了冷热分离的湖仓一体架构,数据通过Amazon S3在亚马逊云科技体系及开源体系流转。其中,云原生数据仓库Amazon Redshift可提供强大的SQL功能,对智能湖仓存储内的超大型数据集进行快速在线分析处理(OLAP)。
此外,该数据库还提供并发扩展功能,可在几秒钟内启动更多瞬态集群,借此支持几乎无限数量的并发查询,最终在Amazon Redshift的帮助下,皮爷咖啡能够轻松实现2分钟之内完成两天增量的计算任务。冯亚东肯定道:“现阶段我们积累了皮爷咖啡从成立到现在所有时期不同的迭代版本数据的全面打通,不同数据源都落地在Amazon Redshift节点中,实现了数据的联邦查询。”
最后,冷热分离的湖仓一体架构支持分层存储,从而帮助皮爷咖啡实现成本的高度优化,数据湖与数据仓库之间的原生集成,可以允许客户从仓库存储中移出大量访问频率较低的历史数据,并降低存储成本。
数据开发:开源DBT构建数据开发流程,实现数据血缘
针对于数据开发层面,基于Amazon Redshift Data Sharing的能力,数据开发工程师可以在不同的Redshift集群之间共享数据,并在这个过程中对数据进行脱敏。
凭借该能力,皮爷咖啡的开发工程师可以基于开源工具DBT(Data Build Tool)进行数据开发,形成数据管道脚本。并在开发结束后,经过CI/CD(持续集成,持续部署)流程进行数据提交,保障提交到生产环境的数据没有质量问题,最终,将整个数据的语义层信息,包括数据目录、血缘关系、数据质量检测的结果都通过统一的途径发布给数据的消费者——也就是业务人员,让业务人员可以快速根据语义信息,业务含义搜索到数据资产,查看数据质量,并通过血缘关系找到数据的来龙去脉,从而对数据进行分析。
成果:优雅、敏捷数据架构,让咖啡师也能上手做数据分析
凭借亚马逊云科技智能湖仓架构,皮爷咖啡实现了数据资产的快速落地,从规划到整个中台系统搭建完成,皮爷咖啡只用了1个月的时间就实现了生产数据的上线,如果按照传统的方式进行建设,这个时间可能会延长30%-40%。
现如今,皮爷咖啡的业务单元正在逐步接入大数据平台中,包含HR系统、订单管理系统、ERP系统、会员中心、订单中心以及营销中心等。以DBT为例,该系统中,皮爷咖啡目前已经可以提供超过260个模型为业务部门使用,实现了数据分析的工程化、数据中台的产品化,并提供给更多的业务部门复用。正如冯亚东所预言的那样,皮爷咖啡的大数据平台正在枝繁叶茂的方向迈进。
未来,皮爷咖啡将会继续基于一条数据主线的架构,打开局面,基于Data Vault建模方法,对来自多个系统的的数据进行长期历史存储,添加更多功能,让整个技术架构向更优雅的方向演进。
相关文章:

皮爷咖啡基于亚马逊云科技的数据架构,加速数据治理进程
皮爷咖啡(Peet’s Coffee)是美国精品咖啡品牌,于2017年进入中国,为中国消费者带来传统经典咖啡饮品,并特别呈现更加丰富的品质咖啡饮品体验。通过深入应用亚马逊云科技云原生数据库产品Amazon Redshift以及Amazon DMS等…...

C++ string类详解
⭐️ string string 是表示字符串的字符串类,该类的接口与常规容器的接口基本一致,还有一些额外的操作 string 的常规操作,在使用 string 类时,需要使用 #include <string> 以及 using namespace std;。 ✨ 帮助文档&…...
深入浅出Pytorch函数——torch.nn.init.ones_
分类目录:《深入浅出Pytorch函数》总目录 相关文章: 深入浅出Pytorch函数——torch.nn.init.calculate_gain 深入浅出Pytorch函数——torch.nn.init.uniform_ 深入浅出Pytorch函数——torch.nn.init.normal_ 深入浅出Pytorch函数——torch.nn.init.c…...

一、docker及mysql基本语法
文章目录 一、docker相关命令二、mysql相关命令 一、docker相关命令 (1)拉取镜像:docker pull <镜像ID/image> (2)查看当前docker中的镜像:docker images (3)删除镜像&#x…...

【计算机网络】13、ARP 包:广播自己的 mac 地址和 ip
机器启动时,会向外广播自己的 mac 地址和 ip 地址,这个即称为 arp 协议。范围是未经过路由器的部分,如下图的蓝色部分,范围内的设备都会在本地记录 mac 和 ip 的绑定信息,若有重复则覆盖更新(例如先收到 ma…...

通过微软Azure调用GPT的接口API-兼容平替OpenAI官方的注意事项
众所周知,我们是访问不通OpenAI官方服务的,但是我们可以自己通过代理或者使用第三方代理访问接口 现在新出台的规定禁止使用境外的AI大模型接口对境内客户使用,所以我们需要使用国内的大模型接口 国内的效果真的很差,现在如果想使…...

回归预测 | MATLAB实现BO-SVM贝叶斯优化支持向量机多输入单输出回归预测(多指标,多图)
回归预测 | MATLAB实现BO-SVM贝叶斯优化支持向量机多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现BO-SVM贝叶斯优化支持向量机多输入单输出回归预测(多指标,多图)效果一览基本介绍程序设计…...

GAN!生成对抗网络GAN全维度介绍与实战
目录 一、引言1.1 生成对抗网络简介1.2 应用领域概览1.3 GAN的重要性 二、理论基础2.1 生成对抗网络的工作原理2.1.1 生成器生成过程 2.1.2 判别器判别过程 2.1.3 训练过程训练代码示例 2.1.4 平衡与收敛 2.2 数学背景2.2.1 损失函数生成器损失判别器损失 2.2.2 优化方法优化代…...

自动驾驶仿真:基于Carsim开发的加速度请求模型
文章目录 前言一、加速度输出变量问题澄清二、配置Carsim动力学模型三、配置Carsim驾驶员模型四、添加VS Command代码五、Run Control联合仿真六、加速度模型效果验证 前言 1、自动驾驶行业中,算法端对于纵向控制的功能预留接口基本都是加速度,我们需要…...

.netcore grpc客户端工厂及依赖注入使用
一、客户端工厂概述 gRPC 与 HttpClientFactory 的集成提供了一种创建 gRPC 客户端的集中方式。可以通过依赖包Grpc.Net.ClientFactory中的AddGrpcClient进行gRPC客户端依赖注入AddGrpcClient函数提供了许多配置项用于处理一些其他事项;例如AOP、重试策略等 二、案…...

C语言入门_Day7 逻辑运算
目录: 前言 1.逻辑运算 2.优先级 3.易错点 4.思维导图 前言 算术运算用来进行数据的计算和处理;比较运算是用来比较不同的数据,进而来决定下一步怎么做;除此以外还有一种运算叫做逻辑运算,它的应用场景也是用来影…...

什么是Eureka?以及Eureka注册服务的搭建
导包 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 htt…...

Docker安装并配置镜像加速器,镜像、容器的基本操作
目录 1.安装docker服务,配置镜像加速器 (1)安装依赖的软件包 (2)设置yum源,我配置的阿里仓库 (3)选择一个版本安装 (4)启动docker服务,并设置…...

前端 -- 基础 网页、HTML、 WEB标准 扫盲详解
什么是网页 : 网页是构成网站的基本元素,它通常由 图片、链接、文字、声音、视频等元素组成。 通常我们看到的网页 ,常见以 .html 或 .htm 后缀结尾的文件, 因此俗称 HTML 文件 什么是 HTML : HTML 指的是 超文本标记语言,…...

分布式锁实现方式
分布式锁 1 分布式锁介绍 1.1 什么是分布式 一个大型的系统往往被分为几个子系统来做,一个子系统可以部署在一台机器的多个 JVM(java虚拟机) 上,也可以部署在多台机器上。但是每一个系统不是独立的,不是完全独立的。需要相互通信ÿ…...

C语言小练习(一)
🌞 “人生是用来体验的,不是用来绎示完美的,接受迟钝和平庸,允许出错,允许自己偶尔断电,带着遗憾,拼命绽放,这是与自己达成和解的唯一办法。放下焦虑,和不完美的自己和解…...
Flask-flask系统运行后台轮询线程
对于有些flask系统,后台需要启动轮询线程,执行特定的任务,以下是一个简单的例子。 globals/daemon.py import threading from app.executor.ops_service import find_and_run_ops_task_todo_in_redisdef context_run_func(app, func):with …...
jsp本质-servlet
jsp本质-servlet 一、jsp文件 <% page language"java" contentType"text/html; charsetUTF-8" pageEncoding"UTF-8"%> <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>JSP Example…...

回归预测 | MATLAB实现GWO-SVM灰狼优化算法优化支持向量机多输入单输出回归预测(多指标,多图)
回归预测 | MATLAB实现GWO-SVM灰狼优化算法优化支持向量机多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现GWO-SVM灰狼优化算法优化支持向量机多输入单输出回归预测(多指标,多图)效果一览基…...

科技资讯|苹果Vision Pro新专利曝光:可调节液态透镜
苹果公司近日申请了名为“带液态镜头的电子设备”,概述了未来可能的头显设计。头显设备中的透镜采用可调节的液态透镜,每个透镜可以具有填充有液体的透镜腔,透镜室可以具有形成光学透镜表面的刚性和 / 或柔性壁。 包括苹果自家的 Vision Pr…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...

C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...

Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...

【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官
。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量:setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...

给网站添加live2d看板娘
给网站添加live2d看板娘 参考文献: stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下,文章也主…...
redis和redission的区别
Redis 和 Redisson 是两个密切相关但又本质不同的技术,它们扮演着完全不同的角色: Redis: 内存数据库/数据结构存储 本质: 它是一个开源的、高性能的、基于内存的 键值存储数据库。它也可以将数据持久化到磁盘。 核心功能: 提供丰…...