2023年12月2日
本课时主要讲解 Flink 中的 TopN 功能的设计和实现。 TopN 在我们的业务场景中是十分常见的需求,比如电商场景中求热门商品的销售额、微博每天的热门话题 TopN、贴吧中每天发帖最多的贴吧排名等。TopN 可以进行分组排序,也可以按照需要全局排序,比如若要计算用户下单总金额的 Top 10 时,就需要进行全局排序,然……
阅读全文
2023年12月2日
我们在第 12 课时“Flink 常用的 Source 和 Connector”中提过 Flink 提供了比较丰富的用来连接第三方的连接器,可以在官网中找到 Flink 支持的各种各样的连接器。 此外,Flink 还会基于 Apache Bahir 发布一些 Connector,其中就有我们非常熟悉的 Redis。很多人在 Flink 项目中访问 Redis 的方法都是自己进行实现……
阅读全文
2023年12月2日
我们在第 08 课时中提到了 Flink 所支持的窗口和时间类型,并且在第 25 课时中详细讲解了如何设置时间戳提取器和水印发射器。 实际的业务中,我们在使用窗口的过程中一定是基于窗口进行的聚合计算。例如,计算窗口内的 UV、PV 等,那么 Flink 支持哪些基于窗口的聚合函数?累加器又该如何实现呢? Flink 支持的窗口函数 我……
阅读全文
2023年12月2日
第 08 课时我们提过窗口和时间的概念,Flink 框架支持事件时间、摄入时间和处理时间三种。Watermark(水印)的出现是用于处理数据从 Source 产生,再到转换和输出,在这个过程中由于网络和反压的原因导致了消息乱序问题。 那么在实际的开发过程中,如何正确地使用 Watermark 呢? 使用 Watermark 必知必会 Watermark 和事件时间……
阅读全文
2023年12月2日
在上一课时中我们提过在实时计算的场景下,绝大多数的数据源都是消息系统,而 Kafka 从众多的消息中间件中脱颖而出,主要是因为高吞吐、低延迟的特点;同时也讲了 Flink 作为生产者像 Kafka 写入数据的方式和代码实现。这一课时我们将从以下几个方面介绍 Flink 消费 Kafka 中的数据方式和源码实现。 Flink 如何消费 Kafka Flink 在和 Kafka 对接的过……
阅读全文
2023年12月2日
本课时主要讲解 Kafka 的一些核心概念,以及模拟消息并发送。 大数据消息中间件的王者——Kafka 在上一课时中提过在实时计算的场景下,我们绝大多数的数据源都是消息系统。所以,一个强大的消息中间件来支撑高达几十万的 QPS,以及海量数据存储就显得极其重要。 Kafka 从众多的消息中间件中脱颖而出,主要是……
阅读全文
2023年12月2日
从这一课时开始我们进入实战课程的学习。本项目是一个模拟实时电商数据大屏,本课时先介绍该项目的背景、架构设计和技术选型。 背景 我们在第 01 课时“Flink 的应用场景和架构模型”中提到过,Flink 应用最广的一个场景便是实时计算大屏。每年的双十一、618 电商大促等,各大公司的实时数据战报……
阅读全文
2023年12月2日
基于 Flink 的实时计算平台 大部分公司随着业务场景的不断丰富,同时在业界经过多年的实践检验,基于 Hadoop 的离线存储体系已经足够成熟。但是离线计算天然时效性不强,一般都是隔天级别的滞后,业务数据随着实践的推移,本身的价值就会逐渐减少。越来越多的场景需要使用实时计算,在这种背景下实时计算平台的需求……
阅读全文
2023年12月2日
本课时我们主要讲解 Flink 中的海量数据高效去重。 消除重复数据是我们在实际业务中经常遇到的一类问题。在大数据领域,重复数据的删除有助于减少存储所需要的存储容量。而且在一些特定的业务场景中,重复数据是不可接受的,例如,精确统计网站一天的用户数量、在事实表中统计每天发出的快递包裹数量。在传统……
阅读全文
2023年12月2日
在实际生产中,我们经常会有这样的需求,需要以原始数据流作为基础,然后关联大量的外部表来补充一些属性。例如,我们在订单数据中,希望能得到订单收货人所在省的名称,一般来说订单中会记录一个省的 ID,那么需要根据 ID 去查询外部的维度表补充省名称属性。 在 Flink 流式计算中,我们的一些维度属性一般存……
阅读全文