如何使用NoSQL架构构建实时广告系统
JDNoSQL平台是什么
1.1 JDNoSQL所处生态的位置
大:一个表可以有上亿行,上百万列。
面向列:面向列表(簇)的存储和权限控制,列(簇)独立检索。
稀疏:对于为空(NULL)的列,并不占用存储空间,因此,表可以设计的非常稀疏。
无模式:每一行都有一个可以排序的主键和任意多的列,列可以根据需要动态增加,同一张表中不同的行可以有截然不同的列。
数据多版本:每个单元中的数据可以有多个版本,默认情况下,版本号自动分配,版本号就是单元格插入时的时间戳。
数据类型单一:JDNoSQL中的数据都是字符串,没有类型。
应用场景
时序型业务(监控,IOT)
消息订单(订单/保单,聊天记录)
CUBE分析(实时宽表,报表,搜索推荐)
监控(UMP/MDC/CAP/JDH)
AI Storage(用户特征、NLP语料、模型存储)
时空数据(轨迹、气象网络)
金融业务(关联分析、信用分析、风控/白条/支付/资管)
2.1 基于NoSQL的广告实时计算系统
2.1.1 网络广告的几个大特性:
传播范围广:网络广告的传播范围广,不受时空的限制,可以通过互联网把广告信息全天候不间断的传播到世界各地。我国网民数量巨大,而且还在快速发展,这些网民有较高的消费能力,是网络广告的受众,可以在世界任何地方的互联网上随意的浏览广告,这种传播效果是任何一种传统媒体都无法达到的。
非强迫性传播资讯:网络广告属性按需广告,具有报纸分类广告的性质,却不需要受众彻底浏览,可以自由查询,并根据潜在顾客的需要主动呈现和展示,这样就节省了整个社会的注意力资源,提高了广告的针对性和有效性。
受众数据量可精准统计:传统的媒体广告,很难精准知道有多少人接触了广告信息,互联网广告,可以通过权威、公正的流量统计系统,精准统计每个广告的浏览人数以前这些用户查阅时长和地域分布,从而有利于正确的评估广告效果,进一步优化广告投放策略。
灵活的时效性:互联网广告能按需要及时更新广告内容。
强烈的交换性和感官性:网络广告的载体基本都是多媒体,超文本等,需要受众对产品感兴趣,仅需要点击进一步了解更多、更详细、更生动的信息,甚至还能让消费者亲自体验产品,服务和品牌,通过虚拟现实技术,可以让顾客身临其境。
2.1.2 网络广告的数据类型:
广告展现数据
-
广告点击数据
-
广告行为数据
-
第三方监控数据
2.1.3. 广告数据的挑战
流中的数据元素在线到达,需要实时处理
系统无法控制将要处理的新到达的数据元素的顺序,无论这些数据元素是在一个数据流中还在跨多个数据流;也即重放的数据流可能和上次数据流的元素顺序不一致。
数据流的潜在大小也许是无穷无尽的。
一旦数据流中的某个元素经过处理,要么被丢弃,要么被归档存储。
2.1.4 系统主要功能
2.1.5. 系统架构
-
日志接收层
-
生产者层
-
消息队列层
-
消费者层
-
业务逻辑层
-
存储层
2.1.6. 表设计
-
广告实时展现统计表
|
|
|
|
|
addid_省名称_20150113 addid_市名称_20150113 addid_uid_20150113 |
|
|
|
|
-
广告实时点击统计表
|
|
|
|
|
|
|
|
|
|
2.1.7. 使用NoSQL统计数据
-
某个广告在某省的当前投放量。 -
某个广告在某市的当前投放量。 -
某个广告在某个用户客户端上的当前投放量 -
某个广告的当前点击量 -
某个广告在累计一段时间内(如一个月)的某个省的历史投放趋势 -
某个广告在累计一段时间内(如一个月)的某个市的历史投放趋势 -
某个广告在累计一段时间内(如一个月)的某个用户客户端上的历史投放趋势 -
某个广告在累计一段时间内(如一个月)的点击量趋势
总结