广告业务系统 之 数据桥梁 —— “日志中心-曝光数据流转结算”

news2024/11/20 0:49:45

文章目录

    • 广告业务系统 之 数据桥梁 —— “日志中心-曝光数据流转结算”
      • 曝光数据流转结算
        • 管道式架构助力高可用
          • 管道式架构模式图
        • 流式链路中特殊的缓存设计
          • 一、二级缓存
          • Nosql 数据型缓存组件
      • s2s 监测上报

广告业务系统 之 数据桥梁 —— “日志中心-曝光数据流转结算”

曝光数据流转结算

曝光数据,是 ADX 额外关注的部分,其数据流转 是沟通结算,涉及营收的重要桥梁。
曝光数据从生产位置分,可分为 接口曝光、真实曝光、Client 加载曝光…等等多种类型。不同类型曝光对应着广告合约中不同的曝光结算形式。除曝光外还有转化、点击等其他结算形式

接口曝光处于生产最高的位置,为 Server 服务下发的广告位最终候选;依次是 Client 加载,Client 加载到的 Server 下发候选;最后是真实曝光,即出现在用户视野中的广告候选;且曝光规模按此次序成递减关系。

注:此文章主体曝光数据,为接口曝光。

管道式架构助力高可用

据上文中介绍可知,曝光数据的粒度为 pv 为最佳,也就是 一个请求数据中包含了多个广告位的曝光信息。数据规模与流量入口呈正相关趋势,且随之波动。当然也可以是广告位粒度,不过数据规模会翻几翻,且与 pv 藕合分析需额外的映射/聚合逻辑,不同场景视情况而定

我们要考量 数据流转服务的 **承载能力、及可扩展能力,确保服务的高可用、高性能。**这里我们引入一个架构模式,叫做 “管道式架构”,适用于承担这种场景下的数据流转功能。

管道式架构模式图

在这里插入图片描述
该模式中,数据流始于 中间件,终于 中间件,流转服务被夹至中间。

中间件 高效的应对 流量规模及流量动态/差异化增跌问题,有效的隔离/消除 流转及下游的承载压力。
数据流转服务于 上下游服务完美解藕,在轻量化的同时使业务功能高度专一。在数据无损前提下,支持服务灵活弹性部署/功能变更,且具备强悍的可扩展能力。

在数据流式业务中,该模式被极广应用于此类场景。

流式链路中特殊的缓存设计

注意力回到数据流转服务,曝光数据会被重整/拆分/分层,将数据抽象重组成 “公共字段-用户字段-广告位字段-扩展字段…“ 样式,且于 pvId/uuid 形成 k-v 格式。

K-v 格式中,k 将会作为曝光数据唯一标识,用于后续结算和数据标签等流程。

除此之外,由于曝光数据流转的流量为 ADX 全数据,故这里将会进行数据缓存,为下篇中的 “监测上报” 服务提供数据支撑。

一、二级缓存

这里将缓存分为两级,一级缓存为 Redis,二级缓存为 HBase。[也可多层,视场景而定]熟悉缓存系统的同学,尤其是业务涉及票务、电商。会比较了解,缓存分层的意义。

在这里插入图片描述
这里结合当前场景简单赘述:

  • 性能刚需
    • 在缓存出现的地方,无不牵涉到提升数据读性能。尤其是在高并发/规模流量下,这时的传统 DB ,Mysql/SqlServer 等组件的承载能力、读写特征性能、数据存储规模 都将显的格格不入。
  • 冷热数据
    • 在某些场景中,存在读写频次极其高的数据集,形成了热数据;相对的数据,即为冷数据。针对数据的这个特征,往往将热数据放置一级缓存层,冷数据置二层。因为一层往往是处于内存空间[暂不涉及内核高速缓冲区],高速的处理速度使这有限的空间变得寸土寸金。

基于上面的一些因素,这里将依据时间段,做冷热数据的分离。热数据存放至 Redis,冷数据则置于 HBase 中,数据格式皆为 k-v 形式。

Nosql 数据型缓存组件

到这里,来解答一个疑问,关于 缓存组件的选取问题。

二级缓存,往往是 Mysql 等传统的组件,这里使用的却是 HBase,有何区别

产生这个疑问的同学,可能接触的业务比较常规,大都基于 结构性数据,对存储和数据结构之间的选型,了解不够深,不足为奇。

ADX 系统 核心数据流 都是基于流式处理方式,保障失效性的同时,准确性、可靠性都需要兼顾。与常规业务数据流处理方式有较大的不同。
另外一点是,此场景中,缓存系统中的数据是 k-v 格式,属于 No-sql 类型,关系型数据库无法作为数据载体。

HBase 是一个开源的、分布式的、数据多版本的,列式存储的 nosql 数据库。[ HBase 详细介绍可关注后续博文/公众号,暂不做重点]

  • 强有力的压缩比
    • 列式存储,可具备较高的压缩比,有限的空间存储无限的数据。其它列式存储也都具备,levelDB、Prometheus 等等
  • 客观的吞吐量
    • HBase 依托 Hadoop 的分布式文件系统 HDFS 作为底层存储,能够为数十亿行数百万列的海量数据表提供随机、实时的读写访问。

最终,曝光数据以 其中的结算类型字段进行分流,流向不同的结算服务,进行计数处理。

良好的架构设计和适配的技术组件选型 为 业务/团队 能够快速持续交付价值,起着决定性的作用!

s2s 监测上报

s2s 监测上报,是 ADX 将广告的曝光、互动[点击/播放/下载/关闭…]、Win 数据以 接口形式进行回转给 DSP[广告主]。广告主依据此数据,进行数据归因及结算,是阐述/同步广告投放效果的核心通道…


见后续文章!

​欢迎关注文末公众号

推荐阅读:
暨 广告、推荐、搜索 三大顶级复杂业务之 “广告业务系统详叙”
广告业务系统 之 承前启后 —— “消息中心”
广告业务系统 之 数据中转站 —— “日志中心-实时服务监控”


三行代码搞定 —— 反转链表…
Kafka 高吞吐、高性能核心技术及最佳应用场景…
HTTPS 如何保证数据传输安全 —— TLS 协议…
五分钟搭建基于 Prometheus + Grafana 实时监控系统…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/156945.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringCloud微服务项目实战 - 5.自媒体文章审核

愤怒归根结底是为了达成目的的一种工具和手段,大声呵斥乃至拍桌子,目的都是通过震慑对方,进而使其听自己的话,因为他们也找不到更好的办法。 系列文章目录 项目搭建App登录及网关App文章自媒体平台(博主后台&#xff…

68.多尺度目标锚框的代码实现

在之前,我们以输入图像的每个像素为中心,生成了多个锚框。 基本而言,这些锚框代表了图像不同区域的样本。 然而,如果为每个像素都生成的锚框,我们最终可能会得到太多需要计算的锚框。 想象一个 561728 的输入图像&…

UG/NX 二次开发(C#)自动出2D零件图(标准件配置Bata版)

一、前言 昨天分享了自动出2D零件图的思路(UG/NX 二次开发(C#)自动出2D零件图思路),今天整理了Q群里各位大佬的意见,结合当前实际项目情况,做了一个可配置的半自动出图版本,暂且称之为标准件配置Bata版。 虽…

steam/csgo搬砖项目详解

steam搬砖项目简单来说,就是在steam平台购买游戏装备到网易BUFF平台出售,赚取汇率差和装备差价。 我今天也就给大家讲解一下steam项目的原理,还有存在什么样的风险。 做steam搬砖需要什么准备: 1.手机 2.电脑 3.美服steam账号 4.…

【hcip】多点双向重发布实验

目录 1.拓扑图 2.要求 3.主要配置 4.测试 1.拓扑图 2.要求 达到所有目标最优,互有备份 3.主要配置 左边区域配置rip,右边区域配置ospf,以r2为例 [r2]rip [r2-rip-1]version 2 [r2-rip-1]network 12.0.0.0 [r2-rip-1]network 2.0.…

堆排序详细说明及实现-python

先了解什么是堆: 堆的定义 n个元素的序列 [ k1,k2,...,kn ],满足以下的性质时称之为堆: ki≥k2i 且 ki≥k2i1 (1≤i≤ ) 或 ki≤k2i 且 ki≤k2i1 (1≤i≤ ) 如果采用顺序方式即用一维数组存储这个序列&…

《回眸2022·圆满收官||展望2023·砥砺奋发》

系列文章目录 文章目录系列文章目录寄言和CSDN相遇大学生活从小白到千粉博主回眸2022|圆满收官展望2023|砥砺奋发致每一个追梦人寄言 岁月不距,时节如流!站在岁末的门槛前,回望2022这一年,不知你是否已经完美的书写完2022的答卷&…

计算机工作过程(超详细)

文章目录一、计算机组成框图二、思维导图三、部件剖析(1)存储器(2)运算器(3)控制器四、案例剖析(重点)(1)a2(2)a*b(3&…

vscode配置Markdown snippet 的快捷键

Snippet 是? 不同文件的模板语法/代码片段,可以设置好后在不同类型文件快速插入,提高效率。 例如:可以在Markdown使用快捷键生成自己想要的模板内容,自定义输入时tab的跳转位置 具体设置 官方文档 生成snippet的在…

Apache Spark 机器学习 数据源 2

数据源 数据源作为机器学习的数据输入,以供给Spark进行机器学习,Spark技术框架除了支持Parquet、CSV、JSON以及JDBC这些常用的数据源,还提供一些特殊数据源的支持,例如,图像或者LIBSVM。 Parquet数据源 该数据源是a…

2023什么蓝牙耳机值得入手?值得入手的半入耳蓝牙耳机推荐

毫无疑问,近年来蓝牙耳机的外出使用频率越来越高,这是由于其外出携带的便捷性以及配置越来越高端、先进,而半入耳式蓝牙耳机又凭借更舒适的佩戴体验以及便携性受到用户的喜爱。但,面对形形色色的蓝牙耳机,不同价位、不…

Shell中的 test 命令

Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。数值测试参数说明-eq等于则为真-ne不等于则为真-gt大于则为真-ge大于等于则为真-lt小于则为真-le小于等于则为真实例num1100num2100if test $[num1] -eq $[num2]thenecho 两…

完全背包理论基础

目录 一.理论基础 二.遍历顺序问题 2.1 01背包 2.2完全背包 3.相关题型 3.1零钱兑换 3.1.数组总和IV 一.理论基础 题目描述: 有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品都有无限个&…

重置Entity Framework Core的数据迁移

本文主要参考文章重置EntityFramework数据迁移到洁净状态,感谢哈~。可能是版本问题,文中所述操作跟我稍微有所出入,故在此做下记录。注意,本人的IDE是JetbrainsRider,并非Visual Studio,但主要操作是通用的…

Spring事务源码解析

Spring事务源码解析一、基本概念1、ACID属性2、事务的隔离级别3、事务行为4、Spring事务的传播级别5、Spring事务支持方式二、Spring事务的执行源码1、事务AOP2、事务处理拦截器TransactionInterceptor2.1 主要流程2.2 尝试创建事务2.3 清除线程事务信息2.4 事务提交2.5 事务异…

品牌控价、淘宝控价、拼多多控价,如何有效利用平台投诉

低价链接,是品牌渠道管控最重要的工作,同时,也是最难的,尤其是非授权低价链接,不受经销管理制度约束,极可能屡次沟通仍不配合整改,进行平台投诉,也不被平台支持诉求。 确实&#xf…

高级ACL的基础配置命令

ACL概述 ACL是由一系列permit或deny语句组成的、有序规则的列表。 ACL是一个匹配工具,能够对报文进行匹配和区分。 ACL的组成 CL由若干条permit或deny语句组成。每条语句就是该ACL的一条规则,每条语句中的permit或deny就是与这条规则相对应的处理动作。…

各社区文艺团队疫情首秀演出《金龄会》受邀提供全程服务

疫情放开后,各地活动逐渐恢复,受到广州各社区的中老年文艺团队邀约,广东省金龄会于1月9日在金龄会演播厅举办了疫情后的首秀——“健康广东,抗疫成功,再创辉煌”广东中老年文化艺术大赛,由广东省健康金龄公…

MAC(m1)-CentOS8 Docker安装MySQL

1、查看可用的MySQL版本 访问 MySQL 镜像库地址:Docker 查看老版本: 2、拉取MySQL镜像 我们可以拉取官方的最新版本的镜像: docker pull mysql:latest 我的MAC m1安装的mysql是8,准备在虚拟机上安装5.7 没找到哦,呜…

MySQL高级篇第01章(Linux下MySQL的安装与使用)

CentOS环境的准备 虚拟机的克隆 mac地址 主机名 ip地址 UUID 查看是否安装过MySQL 如果是用rpm安装,检查一下RPM PACKAGE rpm -qa | grep -i mysql # -i 忽略大小写检查mysql service服务: systemctl status mysqld.service如果存在mysql-libs的旧…