flink实时规则营销系统(39期,2023版)

xiaoshuai8888 · · 626 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
flink实时规则营销系统(39期,2023版) 给大家分享一套课程——flink实时规则营销系统(39期,2023版),附源码+文档+虚拟机下载。 CEP 在 Flink 中以 library 形式存在,并不和其底层引擎代码相绑定,只是继承很多 low-level 的 API,阅读 cep 的代码过程中也可以学习到不少 Flink 上新颖的使用方式。我们可以将 Flink 内部的 CEP 实现简要分成以下几个步骤: 规则解析 规则匹配 匹配事件提取 flink可以广泛用于实时计算,特别是无限流的场景,比如在双11这天,淘宝或者天猫这天网页在某个时间段被用户浏览了多少次,那些热门商品是用户喜欢的。比如说,每隔5分钟,想看看最近一小时内被点击最多的商品。这就是一个很典型的flink-window的运用。 在flink里面,总体来看分为3种window: 滚动窗口: 滚动窗口的特点是有固定大小,不会出现重叠。例如,指定了一个5分钟大小的滚动窗口,无限流的数据会根据时间划分成[0:00 - 0:05), [0:05, 0:10), [0:10, 0:15),… 等窗口; 滑动窗口: 滑动窗口的特点是窗口可以重叠,滑动窗口有两个参数:size 和slide。size为窗口的大小,slide为每次滑动的步长。如果slide < size,则窗口会重叠,每个元素会被分配到多个窗口。如果 slide = size,则等同于滚动窗口。如果 slide > size,则为跳跃窗口,窗口之间不重叠且有间隙。 会话窗口: 通过会话的活动来对元素进行分组。会话窗口与滚动窗口和滑动窗口相比,没有窗口重叠,没有固定窗口大小。相反,当它在一个固定的时间周期内不再收到元素,即会话断开时,这个窗口就会关闭。 根据上面几种窗口的特点,选择滚动窗口可以实现想要的结果。具体,可以再拆解下方法: 1.抽取出业务时间戳,告诉 Flink 是基于业务时间做窗口 过滤出点击行为数据; 2.按一小时的窗口大小,每5分钟统计一次,做滑动窗口聚合; 3.按每个窗口聚合,输出每个窗口中点击量排名靠前的商品. 数据方面,构造了很多页面数据,包含用户ID,商品ID,商品类型ID,用户行为类型和行为发生的时间。 Flink的主要应用场景 Flink是一个大数据流式处理引擎,处理的是流式数据,也就是“数据流”(Data Flow)。顾名思义,数据流的含义是,数据并不是收集好的,而是像水流一样,是一组有序的数据序列,逐个到来、逐个处理。由于数据来到之后就会被即刻处理,所以流处理的一大特点就是“快速”,也就是良好的实时性。Flink 适合的场景,其实也就是需要实时处理数据流的场景。 具体来看,一些行业中的典型应用有: 1.电商和市场营销 举例:实时数据报表、广告投放、实时推荐 在电商行业中,网站点击量是统计 PV、UV 的重要来源,也是如今“流量经济”的最主要数据指标。很多公司的营销策略,比如广告的投放,也是基于点击量来决定的。另外,在网站上提供给用户的实时推荐,往往也是基于当前用户的点击行为做出的。 网站获得的点击数据可能是连续且不均匀的,还可能在同一时间大量产生,这是典型的数据流。如果我们希望把它们全部收集起来,再去分析处理,就会面临很多问题:首先,我们需要很大的空间来存储数据;其次,收集数据的过程耗去了大量时间,统计分析结果的实时性就大大降低了;另外,分布式处理无法保证数据的顺序,如果我们只以数据进入系统的时间为准,可能导致最终结果计算错误。 我们需要的是直接处理数据流,而 Flink 就可以做到这一点。 2.物联网(IOT) 举例:传感器实时数据采集和显示、实时报警,交通运输业 物联网是流数据被普遍应用的领域。各种传感器不停获得测量数据,并将它们以流的形式传输至数据中心。而数据中心会将数据处理分析之后,得到运行状态或者报警信息,实时地显示在监控屏幕上。所以在物联网中,低延迟的数据传输和处理,以及准确的数据分析通常很关键。 交通运输业也体现了流处理的重要性。比如说,如今高铁运行主要就是依靠传感器检测数据,测量数据包括列车的速度和位置,以及轨道周边的状况。这些数据会从轨道传给列车,再从列车传到沿途的其他传感器;与此同时,数据报告也被发送回控制中心。因为列车处于高速行驶状态,因此数据处理的实时性要求是极高的。如果流数据没有被及时正确处理,调整意见和警告就不能相应产生,后果可能会非常严重。 3.物流配送和服务业 举例:订单状态实时更新、通知信息推送 在很多服务型应用中,都会涉及订单状态的更新和通知的推送。这些信息基于事件触发,不均匀地连续不断生成,处理之后需要及时传递给用户。这也是非常典型的数据流的处理。 4.银行和金融业 举例:实时结算和通知推送,实时检测异常行为 银行和金融业是另一个典型的应用行业。用户的交易行为是连续大量发生的,银行面对的是海量的流式数据。由于要处理的交易数据量太大,以前的银行是按天结算的,汇款一般都要隔天才能到账。所以有一个说法叫作“银行家工作时间”,说的就是银行家不仅不需要 996,甚至下午早早就下班了:因为银行需要早点关门进行结算,这样才能保证第二天营业之前算出准确的账。这显然不能满足我们快速交易的需求。在全球化经济中,能够提供 24 小时服务变得越来越重要。现在交易和报表都会快速准确地生成,我们跨行转账也可以做到瞬间到账,还可以接到实时的推送通知。这就需要我们能够实时处理数据流。 另外,信用卡欺诈的检测也需要及时的监控和报警。一些金融交易市场,对异常交易行为的及时检测可以更好地进行风险控制;还可以对异常登录进行检测,从而发现钓鱼式攻击,从而避免巨大的损失。 ![QQ截图20240312143227.png](http://static.itsharecircle.com/240312/2a3d9df15788150fda89ced6afe25454.png)
626 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传