摘要:当电商平台对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打造先进特征平台的更多相关文章

  1. 华为云企业级Redis评测第一期:稳定性与扩容表现

    摘要:采用Redis Labs推出的多线程压测工具memtier_benchmark对比测试下GaussDB(for Redis) 和原生Redis的特性差异. 本文分享自华为云社区<华为云企业 ...

  2. 华为云企业级Redis揭秘第16期:超越开源Redis的ACID"真"事务

    摘要: 开源Redis只支持伪事务,应用场景受限.高斯Redis发布企业级事务特性,支持完备ACID,为交易.库存等上层业务带来全新可能. 本文分享自华为云社区<华为云企业级Redis揭秘第16 ...

  3. 揭秘丨7分钟看懂华为云鲲鹏Redis背后的自研技术【华为云技术分享】

    2019年5月,华为云发布全球首个基于自研ARM架构的分布式缓存鲲鹏Redis,搭载华为LibOS+华为编译器+安全容器引擎三项黑科技,在保证Redis强劲高性能外,还降低客户30%的使用成本,真正实 ...

  4. 华为云MRS支持lakeformation能力,打造一站式湖仓,释放数据价值

    摘要:对云端用户而言,业务价值发现是最重要的,华为MRS支持LakeFormation后,成功降低了数据应用的成本,帮助客户落地"存"与"算"的管理,加快推进了 ...

  5. 如何更有效的消灭watchdogs挖矿病毒?华为云DCS Redis为您支招

    漏洞概述 近日,互联网出现watchdogs挖矿病毒,攻击者可以利用Redis未授权访问漏洞入侵服务器,通过内外网扫描感染更多机器.被感染的主机出现 crontab 任务异常.系统文件被删除.CPU ...

  6. 华为云PB级数据库GaussDB(for Redis)揭秘第七期:高斯Redis与强一致

    摘要:在KV数据库领域,"强一致性"不仅是一个技术名词,它更是业务与运维的重要需求. 清明刚过,五一假期就要来了.大好春光,不如去婺源看油菜花吧!小云迅速打开APP刷出余票2张,赶 ...

  7. 华为云PB级数据库GaussDB(for Redis)揭秘第八期:用高斯 Redis 进行计数

    摘要:高斯Redis,计数的最佳选择! 一.背景 当我们打开手机刷微博时,就要开始和各种各样的计数器打交道了.我们注册一个帐号后,微博就会给我们记录一组数据:关注数.粉丝数.动态数-:我们刷帖时,关注 ...

  8. 华为云新一代iPaaS全域融合集成平台全新升级

    摘要:基于华为十多年的数字化转型实践,华为云通过组装式交付.数智驱动.DevOps.服务化架构.安全可信.韧性6大关键技术助力客户实现应用现代化和高质量增长,华为云新一代iPaaS全域融合集成平台RO ...

  9. 华为云ModelArts2.0来袭

    [摘要] modelarts自发布以来,不断地更新增加新的功能来为AI工程师们带来新的服务,在这次的全联接大会上EI服务产品部总经理贾永利宣布--华为云AI重装升级,并重磅发布一站式AI开发管理平台M ...

  10. 华为云发布桌面IDE-CodeArts

    摘要:华为伙伴暨开发者大会2022,发布华为云桌面IDE-CodeArts. 本文分享自华为云社区<华为云发布桌面IDE-CodeArts,让连接更简单.编码更智能>,作者: Huawei ...

随机推荐

  1. calico网络异常,不健康

    解决calico/node is not ready: BIRD is not ready: BGP not established withxxx calico有一个没有ready,查了一下是没有发 ...

  2. python 自动创建Hype-V虚拟机脚本

    安装模块 pip install pywinrm 脚本如下 #!/usr/bin/env python3 # coding=utf-8 # author:LJX # describe:一键创建hype ...

  3. Vue源码学习(十五):diff算法(二)交叉比对(双指针)

    好家伙, 本节来解决我们上一章留下来的问题, 新旧节点同时有儿子的情况本章继续解决 1.要做什么? 本章将解决, 1.在相同tag下子元素的替换问题 2.使用双指针进行元素替换, 实现效果如下:   ...

  4. logmein

    打开以后发现就是简单的字符串操作 关键比较 其中v7出按r转成字符 然后写出脚本进行操作 但是最后输出的结果不太对的样子 看了wp才知道以LL结尾的那个地方转为字符串以后要逆序操作,即字符串在内存中是 ...

  5. Ubuntu18虚拟机远程开发

    Ubuntu18 虚拟机远程开发 1. 安装 VMware 和 Ubuntu18 虚拟机 (1)VMware 官网上下载免费版本 一路 next 安装就行(中间也许需要改一下存放路径) (2)Ubun ...

  6. 【主流技术】详解 Spring Boot 2.7.x 集成 ElasticSearch7.x 全过程(二)

    目录 前言 一.添加依赖 二. yml 配置 三.注入依赖 四.CRUD 常用 API ES 实体类 documents 操作 常见条件查询(重点) 分页查询 排序 构造查询 测试调用 五.文章小结 ...

  7. 浏览器跨 Tab 窗口通信原理及应用实践

    最近,相信大家一定被这么个动效给刷屏了: 以至于,基于这个效果的二次创作层出不穷,眼花缭乱. 基于跨窗口通信的弹弹球: 基于跨窗口通信的 Flippy Bird: 我也尝试制作了一个跨 Tab 窗口的 ...

  8. vue禁止浏览器F5进行刷新和监听浏览器刷新事件

    项目中有个这样的需求: 进入视频播放页后,添加一个标识,为了防止用户一次播放多个视频,当离开该页面后,如果是从当前正在播放的视频页面离开的,则离开播放页时清除标识,如果是不是则不清除,并且禁止用户按F ...

  9. 黑客玩具入门——9、Burp Suite

    Burp Suite是一款集成化的渗透测试工具,包含了很多功能,可以帮助我们快速完成对web应用程序的渗透测试和攻击.Burp Suite是由Java语言编写,因为Java是可以跨平台的,所以Burp ...

  10. SpringBoot获取启动类Application所在包路径

    1. @SpringBootApplication 注解中引用了@EnableAutoConfiguration 注解. 2.查看 @EnableAutoConfiguration 注解,发现引用了  ...