华为云企业级Redis:助力VMALL打造先进特征平台
摘要:当电商平台对AI算法模型的需求越来越多,特征数据平台的统一建设是不少开发团队头疼的事情。因为只有通过统一的特征数据存储,才能改变原有的“数据孤岛”,解决生产重复造轮子的窘境。
本文分享自华为云社区《华为云企业级Redis:助力VMALL打造先进特征平台》,作者: GaussDB 数据库 。
1 客户介绍
华为商城(VMALL)是华为公司旗下自营及精选好物的官方电商平台,本着“智慧生活、精选好物”的理念,为消费者提供最齐全的华为品牌产品及鸿蒙生态产品,覆盖了办公、出行、居家、运动、娱乐等生活需求,致力于将全场景智慧生活带给更多的消费者。
云数据库GaussDB(for Redis)作为华为云旗下企业级Redis,致力于为客户提供稳定可靠、超高并发,且能够极速弹性扩容的KV存储服务。GaussDB(for Redis)在VMALL特征工程平台建设中,起到了关键作用。
2 业务痛点
VMALL使用了大量的AI和大数据技术,用来支撑智能推荐、精准营销、智能搜索、选品投放等业务的高效开展。
随着业务的快速发展,系统对AI算法模型的需求日益增多。当前的AI开发流程中,“模型训练”和“模型部署”阶段都已经有成熟的平台支撑,唯独“特征数据准备”阶段缺乏通用平台,导致了“线上推理和线下训练的特征数据不一致”、“各算法模型独立开发,特征生产重复造轮子”、“特征工程投入时间多(占据算法开发耗时的60%-70%)”3个关键问题,严重影响了研发效率,阻碍业务发展。
为解决此问题,VMALL大数据团队开始着手建设统一的特征平台。
特征平台的核心部件是特征存储数据库,只有通过统一的特征数据存储,才能改变原有的“数据孤岛”窘境,彻底解决“不一致”、“难共享”、“效率低”3大问题。
但也正是由于特征数据库需要承担打通线上/线下多个场景,对接批式/流式多种数据源,满足训练/推理多样消费需求,对特征数据库的选型提出了非常高的要求:需要找到一款数据存储服务,既能提供低成本的海量数据存储并方便扩容,又能保证数据的绝对可靠和服务的高可用;既要满足低时延的线上推理,又要满足高吞吐的线下训练;既能提供简洁的KV接口供下游轻松消费,又要兼容主流的批式/流式处理引擎(Spark/Flink等)供上游快速接入。
经过深入调研,VMALL大数据团队最终选择了GaussDB(for Redis)作为特征数据库,下面就让我们详细看看GaussDB(for Redis)是如何满足上述苛刻要求的。
3 解决方案
特征平台使用GaussDB(for Redis)的主要流程
1)特征生产(抽取、处理、存储)
- 离线特征(静态特征):
定时调度Spark作业,从各种数据仓库、数据湖中提取数据,进行特征工程处理后,存入GaussDB(for Redis) 。
- 实时特征(动态特征):
Flink消费Kafka,或流式存储中的数据,持续更新到GaussDB(for Redis)中。
2)特征消费
- 线上推理:
模型已经部署到生产,开始承接业务,需要低时延,高并发的消费数据,从GaussDB(for Redis)
中读取数据。
- 线下训练:
GaussDB(for Redis)存有最新的特征数据,OBS中存有全量的特征数据。
1)对于使用静态特征的较为简单的模型,可以直接从OBS中获取特征使用。
2)对于使用实时特征的场景(如实时推荐系统),由Flink从Kafka中实时取得用户请求记录,并从GaussDB(for Redis) 查询取得特征,将记录和特征拼接成训练样本,存储到文件中,供线下训练使用。
特征平台对GaussDB(for Redis)的核心诉求
结合上述业务场景,总结特征平台对GaussDB(for Redis)的核心诉求如下:
GaussDB(for Redis)满足特征平台诉求的关键方案
1)业务接口
GaussDB(for Redis)兼容社区Redis5.0接口,支持和Spark/Flink Connector的对接,很好的满足了业务的使用需求
2)稳定性
GaussDB(for Redis)采用自研内核,解决了社区Redis的fork,oom等老大难问题,具备了企业级应用的稳定性
3)可靠性
数据零丢失:逐条命令实时落盘,底层三副本冗余存储,无数据丢失风险
数据强一致:基于GaussDB公共的共享存储部件DFV,实现三副本强一致,多点访问无脏读风险
4)成本
GaussDB(for Redis)实现数据的自动冷热分离,采用内存+SSD的混合存储方案,大幅降低了客户的使用成本。按照VMALL的特征体量测算,亿级用户,每个用户的特征数量是数K-数10K,GaussDB(for Redis)一年的费用仅3W出头,如果选用社区Redis,费用在20W+
5)性能
GaussDB(for Redis)采用多线程架构,并且所有节点可以同时支持写入,因此可以较好满足批量灌库的高吞吐写需求。读方面,基于冷热分离方案,热数据常驻内存提供稳定低时延;冷数据读涉及IO交换,存在一定长尾,但可满足VMALL业务要求(目前VMALL线上GaussDB(for Redis)实例读时延平均0.16ms,P99 0.4ms,P9999 1.5ms)
6)可扩展性
基于计算存储分离架构,底层数据可被任一节点访问,扩容过程不发生数据拷贝搬迁,因此速度极快;计算节点扩容分钟级完成,存储扩容秒级完成,RTO < 10秒
综上,与社区Redis相比,GaussDB(for Redis)提供了更稳定的使用体验,更可靠的数据存储,更低廉的使用成本和更便捷的扩展能力,是更适合像VMALL特征平台这样大规模电商大数据应用的企业级Redis服务。因此,VMALL特征平台最终选择GaussDB(for Redis)作为特征数据的存储服务。
4 上线后效果
目前VMALL已完成一期的特征数据迁移,包括“特征生产”业务中的“Spark离线特征生产”,以及“特征消费”业务中的“线下训练Flink特征查询”,已迁移到GaussDB(for Redis)。
当前GaussDB(for Redis)运行平稳,业务高峰时段时延稳定,能够满足VMALL当前业务要求。其中,读平均时延0.2ms(p99<0.4ms),写入平均时延0.6ms(P99<2ms)。
VMALL当前已启动二期的特征数据迁移,计划完成包括“Flink在线特征生成”,“线上推理”等核心业务的接入。
5 总结
本文介绍了华为商城(VMALL)在建设特征平台过程中,对特征数据存储服务的选型和应用。由此可见,华为云GaussDB(for Redis)服务在成本,可靠性,可扩展性等方面具有优势,可作为特征数据存储的理想方案,提供企业级的稳定可靠的Redis服务能力。
企业级Redis专场热卖中,不限新老用户,首月免费(链接):
https://console.huaweicloud.com/nosql/?region=cn-north-4&promotionId=P2109280321005721G5P1YZ0VUN22R&promotionPlanId=PDP2109280321005041XSEIKF05B9C4C&buyTime=1&dbType=redis&flavorId=large.4#/instance/create
华为云企业级Redis:助力VMALL打造先进特征平台的更多相关文章
- 华为云企业级Redis评测第一期:稳定性与扩容表现
摘要:采用Redis Labs推出的多线程压测工具memtier_benchmark对比测试下GaussDB(for Redis) 和原生Redis的特性差异. 本文分享自华为云社区<华为云企业 ...
- 华为云企业级Redis揭秘第16期:超越开源Redis的ACID"真"事务
摘要: 开源Redis只支持伪事务,应用场景受限.高斯Redis发布企业级事务特性,支持完备ACID,为交易.库存等上层业务带来全新可能. 本文分享自华为云社区<华为云企业级Redis揭秘第16 ...
- 揭秘丨7分钟看懂华为云鲲鹏Redis背后的自研技术【华为云技术分享】
2019年5月,华为云发布全球首个基于自研ARM架构的分布式缓存鲲鹏Redis,搭载华为LibOS+华为编译器+安全容器引擎三项黑科技,在保证Redis强劲高性能外,还降低客户30%的使用成本,真正实 ...
- 华为云MRS支持lakeformation能力,打造一站式湖仓,释放数据价值
摘要:对云端用户而言,业务价值发现是最重要的,华为MRS支持LakeFormation后,成功降低了数据应用的成本,帮助客户落地"存"与"算"的管理,加快推进了 ...
- 如何更有效的消灭watchdogs挖矿病毒?华为云DCS Redis为您支招
漏洞概述 近日,互联网出现watchdogs挖矿病毒,攻击者可以利用Redis未授权访问漏洞入侵服务器,通过内外网扫描感染更多机器.被感染的主机出现 crontab 任务异常.系统文件被删除.CPU ...
- 华为云PB级数据库GaussDB(for Redis)揭秘第七期:高斯Redis与强一致
摘要:在KV数据库领域,"强一致性"不仅是一个技术名词,它更是业务与运维的重要需求. 清明刚过,五一假期就要来了.大好春光,不如去婺源看油菜花吧!小云迅速打开APP刷出余票2张,赶 ...
- 华为云PB级数据库GaussDB(for Redis)揭秘第八期:用高斯 Redis 进行计数
摘要:高斯Redis,计数的最佳选择! 一.背景 当我们打开手机刷微博时,就要开始和各种各样的计数器打交道了.我们注册一个帐号后,微博就会给我们记录一组数据:关注数.粉丝数.动态数-:我们刷帖时,关注 ...
- 华为云新一代iPaaS全域融合集成平台全新升级
摘要:基于华为十多年的数字化转型实践,华为云通过组装式交付.数智驱动.DevOps.服务化架构.安全可信.韧性6大关键技术助力客户实现应用现代化和高质量增长,华为云新一代iPaaS全域融合集成平台RO ...
- 华为云ModelArts2.0来袭
[摘要] modelarts自发布以来,不断地更新增加新的功能来为AI工程师们带来新的服务,在这次的全联接大会上EI服务产品部总经理贾永利宣布--华为云AI重装升级,并重磅发布一站式AI开发管理平台M ...
- 华为云发布桌面IDE-CodeArts
摘要:华为伙伴暨开发者大会2022,发布华为云桌面IDE-CodeArts. 本文分享自华为云社区<华为云发布桌面IDE-CodeArts,让连接更简单.编码更智能>,作者: Huawei ...
随机推荐
- CSP2021游记
题外话 中午十二点半到了考场.没到时间不让进,恰巧发现 lhm 在对面饭店于是去讨论了一下上午 J 组的题,复习了线段树板子( 等到进考场坐好的时候已经两点半了,看考号本来以为我们同机房三个同学会坐一 ...
- java——1.变量和数据类型
变量和数据类型 字符.字节.位之间的关系 1.字符:人类可以阅读的文本内容最小单位 字符编码:utf-8,gbk 2.字节:1字符=2字节:1字符=4字节 3.位:1字节=8位 位指的是二进制位, ...
- ruoyi框架里面设置登录超时时间不能生效
问题 项目使用到了ruoyi框架,给登录超时限制了12小时,但是每次几个小时后就提示过期,要求再登录一次. 首先怀疑是不是redis内存淘汰策略出现了问题. 先使用一下的命令 systemctl st ...
- 2022/07/16暑期集训考试 day1
T1 取餐号 看到数据范围 直接锁定埃氏筛和线性筛 我打的是一个优化一点的埃氏筛 #include<bits/stdc++.h> using namespace std; #define ...
- Java JDBC连接数据库的CURD操作(JDK1.8 + MySQL8.0.33 + mysql-connector-java-8.0.27-bin驱动)
JDBC概述 JDBC(Java Database Connectivity)是一个独立于特定数据库管理系统.通用的SQL数据库存取和操作的公共接口(一组API),定义了用来访问数据库的标准Java类 ...
- decltype关键词
简述 decltype 是 C++11 新增的一个关键字,它和 auto 的功能一样,都用来在编译时期进行自动类型推导. decltype 是"declare type"的缩写,译 ...
- freeswitch的一个性能问题
概述 freeswitch是一款简单好用的VOIP开源软交换平台. 在fs的使用过程中,会遇到各种各样的问题,各种问题中,性能问题是最头疼的. 最近在测试某些场景的时候,压测会造成fs的内存占用持续升 ...
- Ubuntu 20.04 查看显示器信息
安装 ddcutil apt install ddcutil 输入命令 ddcutil detect --verbose 输出类似如下: Output level: Verbose Reporting ...
- python之猜数字小游戏
import random#随机数函数 a = random.randint(0, 50)#随机0-50之内的整数 print('------------------SWS工作室----------- ...
- MINA框架
一.小程序MINA框架分为三个部分: 有 View(视图层).App Service(逻辑层)和 Natice(系统层). 1.View(视图层) 视图层包含了小程序多个页面.每个页面都有WXML文件 ...