告诉你个广告业务存储神器[亲测有效]

告诉你个广告业务存储神器[亲测有效]摘要:高性能、大容量、低成本、强稳定性,广告业务需要的Ta都有 本文分享自华为云社区《广告业务存储神器:华为云GaussDB for Redis》,作者: GaussDB 数据库。 一、从需求场景说起

告诉你个广告业务存储神器

摘要:高性能、大容量、低成本、强稳定性,广告业务需要的Ta都有

本文分享自华为云社区《广告业务存储神器:华为云GaussDB for Redis》,作者: GaussDB 数据库。

一、从需求场景说起,什么是RTA广告业务?

在互联网时代,媒体平台逐渐成为广告业务的主体,而作为广告主的企业往往每年需花费数亿甚至数十亿广告费,却依然难以准确触达目标用户,这就造成大量资金浪费。在这样的需求场景下,RTA广告业务模式逐渐流行起来。

RTA 即Realtime API的简称,是一套接口服务,用于满足广告主实时个性化的投放需求,在竞价中减少资金浪费。简单来说,RTA大体流程如下:

  1. 媒体在将广告曝光给用户前,先通过RTA接口询问广告主是否参与本次竞价;
  2. 广告主结合自己的画像数据(一般是百GB~数TB的key-value数据)进行决策,快速响应媒体侧,表明是否要参与本次曝光竞价,以及具体的曝光策略;
  3. 媒体平台根据价高者得原则,进行精准目标广告投放。

告诉你个广告业务存储神器[亲测有效]

RTA广告业务流程图

RTA让广告投放变得更精准,更省钱,还可以满足许多不同的投放需求,例如获取新用户、召回流失用户等。

二、聊聊RTA中的数据存储选型

对广告主来说,RTA业务价值明显,但媒体侧可是设置了不小的技术门槛,一般要求RTA系统高峰承载20w+ QPS,50到100ms快速响应。当不达标时,媒体侧会有降级和清退机制,例如暂时关闭广告主的RTA接入通道。
因此,RTA业务的首要需求是使用靠谱的画像数据库:

    1. 毫秒级响应,支持数十万级QPS
    2. 稳定性高,关键时刻不能掉链子
    3. 支持百GB~数TB的画像存储,且成本可控

根据经验,很多公司会使用开源Redis集群来做这件事,但其实开源Redis并不太适合这类大数据场景:

一方面,虽然开源Redis并发性能和响应都很优秀,但终究只是缓存,无法提供数据库级的稳定性保障,丢数据、fork抖动、分片不均OOM、扩容耗时久等等,都是很常见的问题。

另一方面,由于开源Redis中存放的数据无法突破内存限制,上百GB的数据存储价格非常昂贵,例如512GB规格的开源Redis接近5w/月。

在这类大数据业务场景下,我们推荐使用华为云数据库GaussDB for Redis做画像数据存储。

三、大数据业务存储神器:华为云数据库GaussDB for Redis

GaussDB for Redis是华为云企业级存算分离Redis数据库,使用上与开源Redis别无二致,并且能够兼顾缓存与存储两类典型场景:

1. 内存+分布式存储池

提供毫秒级响应,同时实现大幅降本

2. 命令兼容度>98%

支持业务零改造平迁

3. 容量最大支持36TB

保障数据库级别可靠存储,压缩比高

4. 算力按需原配

用多少买多少,最大支持千万级QPS

5. 无感热扩容

128GB到512GB也只需一秒

6. 增强版ACL

支持多DB访问权限隔离

RTA广告业务对画像存储的核心需求是:响应快、稳定性高、大容量且不贵,GaussDB for Redis充分满足这类大数据业务需求。

超低时延,性能满足媒体侧要求

根据现网的案例经验,在数十万QPS流量下,GaussDB for Redis可稳定保持平均时延1ms,p99时延2ms。
媒体侧一般对广告主端到端响应要求在50~100ms,这其中包括了业务及网络链路的耗时,GaussDB for Redis可以很好地满足响应要求,并给业务链路留有充足的余量。

为什么GaussDB for Redis在存算分离的架构下还能提供低时延访问?

    1. 自动冷热分离,计算层的内存资源会被用来充分加速热数据
    2. 存储池是基于高性能Nvme SSD和RDMA网络所构建,响应速度其实也很快
      实际上,响应快速并非内存的专利,Nvme SSD同样有优秀的时延表现,下图是市面上某款Nvme SSD的性能指标:

告诉你个广告业务存储神器[亲测有效]

作为存算分离的数据库,稳定性远超缓存Redis

开源Redis的稳定性问题存在已久,单线程、fork机制、Gossip协议……这些都是让开源Redis稳定性不够好的原因。在小数据量缓存场景问题不一定经常出现,但在百GB的大数据存储场景下很容易成为打破系统稳定的隐患。
GaussDB for Redis存算分离架构对稳定性的提升是巨大的。在扩容场景,只需调整存储池配合,即可1秒完成扩容,业务0感知。由于数据全部存储在分布式存储池中,当计算节点发生故障,数据依然可见,业务只感知秒级抖动。同时,也不会发生分片数据不均OOM问题。

存储百GB画像数据,比缓存Redis成本节省 50%以上

GaussDB for Redis在这类场景下能够帮助企业实现有效降本,原因是:

1、内存+分布式存储池(Nvme SSD)

开源Redis技术上无法突破内存限制,因此成本会随着每涨1GB而线性增长,大数据业务中很容易带来成本痛点。

GaussDB for Redis分布式存储池采用的高性能Nvme SSD硬件成本虽然比普通SSD高,但是跟内存相比还是比较高性价比的。另外还支持根据实际所需QPS购买计算节点,避免不必要的算力成本浪费。

2、高压缩比

很多画像类业务使用protobuf格式,GaussDB for Redis采用了逻辑数据+块数据双重压缩机制,对于protobuf的压缩比效果很好。根据现网案例经验,500GB的protobuf数据写入GaussDB for Redis后,实际占用的存储空间可压缩到160G,压缩率30%。

四、总结

RTA广告竞价业务近年来发展潜力巨大,一方面要满足媒体侧的性能指标要求,另一方面又要承担企业降本重任。在这类典型大数据业务中,往往需要一款能够兼顾性能与存储降本需求的KV数据库来做画像存储,华为云数据库GaussDB for Redis无论从性能、稳定性,还是大容量、低成本,都充分满足这类场景的需求,是其最佳存储选型。

 

点击关注,第一时间了解华为云新鲜技术~

原文地址:https://www.cnblogs.com/huaweiyun/archive/2022/10/13/16787571.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/4662.html

(0)
上一篇 2023-06-10
下一篇 2023-06-10

相关推荐

  • python将c,python将成绩从大到小排序「终于解决」

    python将c,python将成绩从大到小排序「终于解决」要搞明白如何让python调用C/C++代码(也就是写python的extension),你需要征服手册中的Extending embedding厚厚的一章。在昨天花了一个小时看地头晕脑胀,仍然不知道如何写python的extension后,查阅了一些其他书籍,最终在Python Programming On Win32书中找到了教程。

    2023-08-24
    78
  • 周杰伦成就最高的专辑_周杰伦秘密

    周杰伦成就最高的专辑_周杰伦秘密7月14日晚间,周杰伦最新专辑《最伟大的作品》在QQ音乐正式上线,立即成为全网最大的热点事件。作为一张“六年等一回”的新专辑,《最伟大的作品》于7月8日开启预售,截止到7月18日,已在QQ音乐售出超5

    2023-05-27
    97
  • 让你的计算机简单地计算tan(x)

    让你的计算机简单地计算tan(x)tan(x)是三角函数中的一种,它代表正切函数,表示一个角的正切值。可以用数学公式表示为tan(x) = sin(x) / cos(x)。在解决几何问题,分析问题时,经常会用到它。

    2024-01-04
    59
  • win10环境下安装sql2000_mySQL安装

    win10环境下安装sql2000_mySQL安装下载mysql安装包,然后解压到你想安装的目录下,我下载的是mysql-8.0.18-winx64 Windows 上安装 MySQL 相对来说会较为简单,最新版本可以在 MySQL 下载&

    2022-12-29
    120
  • 利用Python库arcpy清除选择集

    利用Python库arcpy清除选择集arcpy库是一个用于在ArcGIS Desktop中进行地理空间数据处理和分析的Python库。它为Python程序员提供了大量的工具和函数,以及与ArcGIS中的各种地理空间数据格式交互的能力。通过使用arcpy库,可以进行各种类型的地理空间数据处理,如数据格式转换、空间分析、地图生成和数据可视化等。

    2024-01-31
    52
  • 打包python脚本的血与泪(python能做脚本吗)

    打包python脚本的血与泪(python能做脚本吗)使用py2exe

    2023-11-24
    77
  • 创建数据库迁移_oracle数据库迁移工具

    创建数据库迁移_oracle数据库迁移工具创建项目 创建类库.NET Core项目,命名为Nm.Reservation.Migrations。 项目右键>属性>应用程序>默认命名空间,删除默认命名空间,依次创建文件夹Nm、Reservati…

    2023-03-21
    107
  • Python中的默认字典:优化字典操作的利器

    Python中的默认字典:优化字典操作的利器字典是Python中非常常用的数据结构,它可以非常快速地进行键值对的查找,但是当我们在向字典中添加元素时,会遇到键不存在的情况。这就导致了一些问题,需要我们不断地检测键是否存在,才能安心地进行操作。Python标准库中的默认字典就是为了解决这个问题而出现的。

    2024-01-20
    54

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注