60-330-000-使用-窗口TopN分析与实现

1.美图

在这里插入图片描述

2.概述

TopN 的需求场景不管是在离线计算还是实时计算都是比较常见的,例如电商中计算热门销售商品、广告计算中点击数前N的广告、搜索中计算搜索次数前N的搜索词。topN又分为全局topN、分组topN, 比喻说热门销售商品可以直接按照各个商品的销售总额排序,也可以先按照地域分组然后对各个地域下各个商品的销售总额排序。本篇以热门销售商品为例,实时统计每10min内各个地域维度下销售额top10的商品。

这个需求可以分解为以下几个步骤:

  • 提取数据中订单时间为事件时间
  • 按照区域+商品为维度,统计每个10min中的销售额
  • 按照区域为维度,统计该区域的top10 销售额的商品

3.时间提取

数据源类型是Kafka, 数据为订单数据包含:订单id、订单时间、商品id、区域id、订单金额(包含用户Id在这里省略)

case class Order(orderId: String, orderTime: Long, gdsId: String, amount: Double, areaId: String)

我们这里统计的每10min内的数据,希望按照真实的订单时间统计,那么使用事件时间EventTime,考虑到可能存在数据乱序问题,允许最大延时为30s

val

猜你喜欢

转载自blog.csdn.net/qq_21383435/article/details/105280253
今日推荐