华为云企业级redis:助力vmall打造先进特征平台-4008云顶国际网站

高斯redis官方博客 发表于 2021/10/14 09:30:05 2021/10/14
【摘要】 华为云企业级redis提供稳定时延、超高并发等关键优势,助力华为商城特征工程平台建设。


华为商城(vmall)是华为公司旗下自营及精选好物的官方电商平台,本着“智慧生活、精选好物”的理念,为消费者提供最齐全的华为品牌产品及鸿蒙生态产品,覆盖了办公、出行、居家、运动、娱乐等生活需求,致力于将全场景智慧生活带给更多的消费者。

云数据库gaussdb(for redis)作为华为云旗下企业级redis,致力于为客户提供稳定可靠、超高并发,且能够极速弹性扩容的kv存储服务。gaussdb(for redis)vmall特征工程平台建设中,起到了关键作用。

vmall使用了大量的ai和大数据技术,用来支撑智能推荐、精准营销、智能搜索、选品投放等业务的高效开展。



随着业务的快速发展,系统对ai算法模型的需求日益增多。当前的ai开发流程中,“模型训练”和“模型部署”阶段都已经有成熟的平台支撑,唯独“特征数据准备”阶段缺乏通用平台,导致了“线上推理和线下训练的特征数据不一致”、“各算法模型独立开发,特征生产重复造轮子”、“特征工程投入时间多(占据算法开发耗时的60%-70%)”3个关键问题,严重影响了研发效率,阻碍业务发展。

为解决此问题,vmall大数据团队开始着手建设统一的特征平台。

特征平台的核心部件是特征存储数据库,只有通过统一的特征数据存储,才能改变原有的“数据孤岛”窘境,彻底解决“不一致”、“难共享”、“效率低”3大问题。

但也正是由于特征数据库需要承担打通线上/线下多个场景,对接批式/流式多种数据源,满足训练/推理多样消费需求,对特征数据库的选型提出了非常高的要求:需要找到一款数据存储服务,既能提供低成本的海量数据存储并方便扩容,又能保证数据的绝对可靠和服务的高可用;既要满足低时延的线上推理,又要满足高吞吐的线下训练;既能提供简洁的kv接口供下游轻松消费,又要兼容主流的批式/流式处理引擎(spark/flink等)供上游快速接入。

经过深入调研,vmall大数据团队最终选择了gaussdb(for redis)作为特征数据库,下面就让我们详细看看gaussdb(for redis)是如何满足上述苛刻要求的。

1.    特征平台使用gaussdb(for redis)的主要流程

1)特征生产(抽取、处理、存储)

  • 离线特征(静态特征):

定时调度spark作业,从各种数据仓库、数据湖中提取数据,进行特征工程处理后,存入gaussdb(for redis)

  • 实时特征(动态特征):

flink消费kafka,或流式存储中的数据,持续更新到gaussdb(for redis)中。

 

2)特征消费

  • 线上推理:

模型已经部署到生产,开始承接业务,需要低时延,高并发的消费数据,从gaussdb(for redis)

中读取数据。

  • 线下训练:

gaussdb(for redis)存有最新的特征数据,obs中存有全量的特征数据。

1)对于使用静态特征的较为简单的模型,可以直接从obs中获取特征使用。

2)对于使用实时特征的场景(如实时推荐系统),由flinkkafka中实时取得用户请求记录,并从gaussdb(for redis) 查询取得特征,将记录和特征拼接成训练样本,存储到文件中,供线下训练使用。

2.    特征平台对gaussdb(for redis)的核心诉求

结合上述业务场景,总结特征平台对gaussdb(for redis)的核心诉求如下:

序号

类别

诉求点

1

业务接口

支持简洁的kv接口(不需要范围查询),支持和spark/flink快速对接,提升业务开发效率

2

稳定性

作为电商应用的关键支撑系统,需要具备企业级应用的稳定性。如社区redis存在的fork抖动,oom等问题,需要解决

3

可靠性

特征数据决定了最终给客户的推荐效果,需要确保数据零丢失,强一致

4

成本

特征数据体量庞大,希望采用内存磁盘混合存储,降低使用成本

5

性能

抗写能力必须强,满足特征数据批量灌库的要求;读取总体要低时延,但非缓存场景,可接受非活跃用户的时延毛刺

6

可扩展性

随着业务发展,特征数据上量很快;扩容要简单,快速,业务影响尽量小

3.    gaussdb(for redis)满足特征平台诉求的关键方案

1)业务接口

gaussdb(for redis)兼容社区redis5.0接口,支持和spark/flink connector的对接,很好的满足了业务的使用需求

2)稳定性

gaussdb(for redis)采用自研内核,解决了社区redisforkoom等老大难问题,具备了企业级应用的稳定性

3)可靠性

数据零丢失:逐条命令实时落盘,底层三副本冗余存储,无数据丢失风险

数据强一致:基于gaussdb公共的共享存储部件dfv实现三副本强一致,多点访问无脏读风险

4)成本

gaussdb(for redis)实现数据的自动冷热分离,采用内存 ssd的混合存储方案,大幅降低了客户的使用成本。按照vmall的特征体量测算,亿级用户,每个用户的特征数量是数k-10kgaussdb(for redis)一年的费用仅3w出头,如果选用社区redis,费用在20w

5)性能

gaussdb(for redis)采用多线程架构,并且所有节点可以同时支持写入,因此可以较好满足批量灌库的高吞吐写需求。读方面,基于冷热分离方案,热数据常驻内存提供稳定低时延;冷数据读涉及io交换,存在一定长尾,但可满足vmall业务要求(目前vmall线上gaussdb(for redis)实例读时延平均0.16msp99 0.4msp9999 1.5ms

6)可扩展性

基于计算存储分离架构,底层数据可被任一节点访问,扩容过程不发生数据拷贝搬迁,因此速度极快;计算节点扩容分钟级完成,存储扩容秒级完成,rto < 10

综上,与社区redis相比,gaussdb(for redis)提供了更稳定的使用体验,更可靠的数据存储,更低廉的使用成本和更便捷的扩展能力,是更适合像vmall特征平台这样大规模电商大数据应用的企业级redis服务。因此,vmall特征平台最终选择gaussdb(for redis)作为特征数据的存储服务。

目前vmall已完成一期的特征数据迁移,包括“特征生产”业务中的“spark离线特征生产”,以及“特征消费”业务中的“线下训练flink特征查询”,已迁移到gaussdb(for redis)

当前gaussdb(for redis)运行平稳,业务高峰时段时延稳定,能够满足vmall当前业务要求。其中,读平均时延0.2msp99<0.4ms),写入平均时延0.6msp99<2ms)。

vmall当前已启动二期的特征数据迁移,计划完成包括“flink在线特征生成”,“线上推理”等核心业务的接入。

本文介绍了华为商城(vmall)在建设特征平台过程中,对特征数据存储服务的选型和应用。由此可见,华为云gaussdb(for redis)服务在成本,可靠性,可扩展性等方面具有优势,可作为特征数据存储的理想方案,提供企业级的稳定可靠的redis服务能力。

本文作者:华为云数据库gaussdb(for redis)团队

杭州/西安/深圳简历投递:yuwenlong4@huawei.com

gaussdb(for redis)产品4008云顶国际网站主页:

更多技术文章,请关注gaussdb(for redis)官方博客:

https://bbs.huaweicloud.com/community/usersnew/id_1614151726110813

【4008云顶国际集团的版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。