大数据流计算相关
文章平均质量分 94
yscoder
欢迎关注 大数据与数据仓库公众号
展开
-
【源码】FlinkSQL 流式去重源码解析
目录去重基类处理时间的 First Row处理时间的 Last Row事件时间的去重往期精选▼本文基于 flink 1.12.0 版本进行源码解析笔者之前在使用FlinkSQL的去重和TopN 功能时只是简单的看了下官网,然后用 sql 实现了功能,但是还有些疑问没有解决。比如:去重算子占用的状态有多少?另外不使用 mini-batch 模式,去重的结果很单一,升序就一直输出最后一条(降序就只输出第一条数据)。为了解决这些疑问,特意研究了下去重部分的源码。 去重...原创 2021-05-25 08:59:58 · 995 阅读 · 0 评论 -
从一个案例研究 磁盘对Flink中RocksDB状态后端的影响
RocksDB是Flink中的一个状态后端,它允许作业的状态大于可用内存量,因为状态后端可以将状态溢出到本地磁盘。这意味着磁盘性能可能会影响使用RocksDB的Flink作业的性能。通过一个案例研究,本文说明了使用RocksDB的Flink作业的吞吐量下降问题,并演示了我们如何将底层磁盘的性能确定为根本原因。作业和执行环境我们处理的是一个典型的物联网(IoT)工作,它处理数百万台设备发出的事件流。每个事件都包含设备标识符(ID)、事件类型和生成事件时的时间戳。作业基于设备ID对流进行分区,并以状态存原创 2021-05-20 10:06:01 · 753 阅读 · 0 评论 -
【Flink SQL引擎】:Calcite 功能简析及在 Flink 的应用
文章目录1. Calcite 是什么?2. Calcite 谁在用?3. 概念解析4. 整体模块和处理流程5. 流处理语句支持现状6. Flink 与 Calcite1. Calcite 是什么? Apache Calcite 是一个动态数据的管理框架,可以用来构建数据库系统的语法解析模块 不包含数据存储、数据处理等功能 可以通过编写 Adaptor 来扩展功能,以支持不同的数据处理平台 Flink SQL 使用并对其扩展以支持 SQL 语句的原创 2021-02-08 19:41:09 · 1296 阅读 · 2 评论 -
FLink聚合性能优化--MiniBatch分析
文章目录一、MiniBatch的演进思路 1、MiniBatch版本 2、适用场景 3、普通聚合与MiniBatch聚合对比 A、Simple Aggregation普通聚合 B、MiniBatch Aggregation微批聚合 二、MiniBatch作用的SQL语句 分类1、 window agg 分类2、group agg 分类3、over agg 三、MiniBatch三类优化手段 1、Local-Global聚合(本地-全局聚原创 2021-02-08 15:19:19 · 3003 阅读 · 0 评论 -
Flink Table 的三种 Sink 模式
作为计算引擎 Flink 应用的计算结果总要以某种方式输出,比如调试阶段的打印到控制台或者生产阶段的写到数据库。而对于本来就需要在 Flink 内存保存中间及最终计算结果的应用来说,比如进行聚合统计的应用,输出结果便是将内存中的结果同步到外部。、就 Flink Table/SQL API 而言,这里的同步会有三种模式,分别是 Append、Upsert 和 Retract。实际上这些输出计算结果的模式并不限于某个计算框架,比如 Storm、Spark 或者 Flink DataStream 都可以应用这原创 2021-02-06 22:08:25 · 1665 阅读 · 0 评论 -
阿里巴巴2020年双11: Flink流批一体化真的来了 (Flink Forward 2020 PPT)
随着双11在11月12日午夜结束,2020 双十一购物节的商品总销售额(GMV)达到741亿美元。在Apache Flink的支持下,整个节日期间,GMV数值将稳定地实时显示在我们的大屏幕中。此外,在今年的活动中,基于Flink的阿里巴巴实时计算平台成功通过了年度测试。除GMV仪表板外,Flink还为许多其他关键服务提供了支持。这些服务包括用于搜索和推荐的实时机器学习,实时广告反欺诈,菜鸟订单状态的实时跟踪和反馈,ECS实时攻击检测以及对大型基础架构的监视和警报。实时业务和数据量每年都在急剧增加。原创 2020-12-27 22:18:30 · 612 阅读 · 0 评论 -
Azar公司基于Flink的匹配生成服务实践
为什么我们选择Flink作为我们的匹配生成服务?Azar的发展非常迅速,现在该平台每天在高峰时段处理的请求量超过1.8亿次(在移动屏幕实时视频中“向左滑动”)。为了确保Azar的匹配生成服务能够支持不断增长的用户活动和参与度,我们重新设计了匹配生成服务,使Apache Flink成为其架构的核心。Flink被选为首选数据处理框架,因为它提供了必要的可伸缩性,稳定性和处理大量数据的状态计算的能力。可扩展性在高峰时段,我们的系统每秒处理超过5,000个匹配生成请求,每秒处理超过1200万对匹配计原创 2020-12-23 22:24:46 · 179 阅读 · 0 评论 -
实战:Flink 1.12 维表 Join Hive 最新分区功能体验
我们生产常有将实时数据流与 Hive 维表 join 来丰富数据的需求,其中 Hive 表是分区表,业务上需要关联上 Hive 最新分区的数据。上周 Flink 1.12 发布了,刚好支撑了这种业务场景,我也将 1.12 版本部署后做了一个线上需求并上线。对比之前生产环境中实现方案,最新分区直接作为时态表提升了很多开发效率,在这里做一些小的分享。Flink 1.12 前关联 Hive 最新分区方案 Flink 1.12 关联 Hive 最新分区表 关联Hive最新分区 Demo Flink SQL原创 2020-12-23 12:33:49 · 1964 阅读 · 7 评论 -
Flink在新浪微博的在线机器学习和实时数据分析(回复 flink 获取Flink Forward 2020 PPT。)
1 什么是微博微博是中国最大,最受欢迎的社交媒体网络平台。该网站是一个微博客平台(类似于 Twitter 或 Reddit),其功能包括消息传递,对文章进行评论,重新发布以及基于上下文浏览等的视频和图片推荐。2019 年,微博的每日活跃用户(DAU)超过 2.2 亿,每月活跃用户(MAU)达到 5.16 亿。基于人们的社交活动(例如,在世界范围内发布和共享新闻等),微博团队开发了一个社交网络,该社交网络可以将用户连接起来,并根据他们的活动和兴趣将内容分发到个人。2 微博的机器学习平台(WML)原创 2020-12-20 19:36:36 · 495 阅读 · 2 评论 -
Flink模型服务和实时特征生成在Razorpay的实践
在Flink Forward Global 2020期间,Razorpay团队展示了Apache Flink如何在其“ Mitra”数据平台中使用,以克服围绕功能生成和实时机器学习模型的挑战的方法。“ Mitra”是一个数据平台,可为Thirdwatch产品提供支持,可通过大规模提供机器学习模型来实时防止欺诈行为。本文中我将解释我们提供机器学习模型的方法,并解释为什么我们使用Flink作为流处理引擎来执行此类任务。关于RazorpayRazorpay是印度领先的支付解决方案之一,它使企业可以使.原创 2020-12-19 23:05:48 · 220 阅读 · 1 评论 -
简单分析Flink算子返回NULL导致的异常
假设我们作业中有这样一段逻辑stream.map(xxx).filter(_ != null).xxx,并且map算子有可能返回NULL,你觉得作业运行会抛NPE吗?明明下游有filter not null,不应该出错才对?但实际情况是运行中有可能抛出异常。1.异常信息可能抛出的异常信息大致如下:// 1. 如果map算子返回值类型为Java TupleCaused by: java.lang.NullPointerException at org.apache.flink.api.原创 2020-12-01 21:54:06 · 3230 阅读 · 0 评论 -
Flink的 Window 操作
Window是Flink的核心功能之一,使用好Window对解决一些业务场景是非常有帮助的。今天分享5个Flink Window的使用小技巧,不过在开始之前,我们先复习几个核心概念。Window有几个核心组件:Assigner,负责确定待处理元素所属的Window; Trigger,负责确定Window何时触发计算; Evictor,可以用来“清理”Window中的元素; Function,负责处理窗口中的数据;Window是有状态的,这个状态和元素的Key以及Window绑..原创 2020-12-01 21:52:39 · 528 阅读 · 0 评论 -
Flink State 使用的4点建议
一.Operator state 使用建议慎重使用长 list下图展示的是当前版本中 task 端 operator state 在执行完 checkpoint 返回给 job master 端的 StateMetaInfo 的代码片段。由于 operator state 没有 key group 的概念,所以在修改任务并发度进行恢复时,需要将operator state中的每一个序列后的元素存储一个位置偏移量(offset),如上图红框中的offsets数组所示。另外如果...原创 2020-11-27 09:45:40 · 869 阅读 · 0 评论 -
Flink中Checkpoint和Savepoint 的 3 个不同点
在本文中,笔者将阐述在Flink中 Savepoint 和 Checkpoint 二者的不同点以及它们的应用场景。Savepoint和Checkpoint分别是什么?Savepoint 是用来为整个流处理应用在某个“时间点”(point-in-time)进行快照生成的功能。该快照包含了数据源读取到的偏移量(offset),输入源的位置信息以及整个应用的状态。借助 分布式快照算法(Chandy-Lamport )的变体,我们可以在应用程序运行中得到某个“时间点”一致的快照。Savepoin...原创 2020-11-14 21:43:34 · 316 阅读 · 0 评论 -
4个角度轻松理解 Flink中的Watermark
目录有缓存就必然有延迟必须勇敢地输出排序流的第一个结果watermark 定义了何时不再等待更早的数据设想不同的策略来生成 watermark当我们第一次接触 Flink 时往往会对其中的 watermark 感到困惑。但实际上 watermark 并不复杂。在本文中我们将通过一个简单的例子来说明为什么需要水印以及它们如何工作。在下文中的例子中,我们有一个带有时间戳的事件流,但是由于某种原因流中的事件并不是按顺序到达的。图中的数字代表事件发生的时间戳(Event-time)。第一个事原创 2020-11-14 21:41:12 · 291 阅读 · 0 评论 -
使用 Broadcast State 的 4 个注意事项
本文将描述什么是广播状态模式(Broadcast State Pattern),广播状态与其他的 Operator State 有什么区别,最后,我们在 Flink 中使用该功能时需要考虑的一些重要的注意事项。广播状态(Broadcast State)作为Apache Flink 1.5.0 中引入的新特性,它可用于以特定方式组合和联合处理两个事件流,其中第一个流中的的数据被广播到某个算子的所有并行实例中,该算子将它们保存为状态。另一个流的事件不广播,而是发送给同一个算子的单个实例,并与广播流的事件..原创 2020-11-11 21:16:42 · 476 阅读 · 0 评论 -
3种Flink State Backed| 你该用哪个?
简介本文主要讲述Flink有状态的流处理中所提供的各种状态后端(state backend) 。本文将介绍Flink当前所提供的3种状态后端的优缺点以及在具体需求案例中如何去做选择。在有状态的流处理(stateful-steam-processing)中,为了发生故障时能够完全恢复故障前的数据, 开发者通常会在使用Flink时设置checkpoint。在使用checkpoint时候,通常要涉及到状态后端的选择以决定持久化的状态的存储方式与位置。Flink 当前提供了以下3种开箱即用的状态后端:原创 2020-11-09 22:25:28 · 1039 阅读 · 0 评论 -
100%会被问到的两道Flink面试题,你会了么?
一 . 你在开发Flink任务时,有没有遇到过背压问题,你是如何排查的?1. 背压产生的原因背压常常出现在大促或者一些热门活动等场景中, 在上面这类场景中, 短时间内流量陡增导致数据的堆积,系统整体的吞吐量无法提升。2. 监控背压方法可以通过 Flink Web UI 发现背压问题Flink 的 TaskManager 会每隔 50 ms 触发一次反压状态监测,共监测 100 次,并将计算结果反馈给 JobManager,最后由 JobManager 进行计算反压的比例,然后进行展示。原创 2020-11-04 21:59:36 · 532 阅读 · 0 评论 -
Flink方案设计中的4大误区
本文主要介绍Flink 方案设计中的一些常见误区,这些大多数是因为开发者没有充分思考需求导致, 分别如下:未考虑数据一致性跟交付保证 未考虑业务后续升级以及应用改进 未考虑业务规模问题 未深入考虑业务实际需求提到一致性与交付保障,其实可以通过如下几个问题针对具体的业务场景来选择具体方案。首先要考虑是否在乎数据的丢失是否对业务产生影响,如果不在乎的话,可以不添加Checkpoint。其次要考虑是否在乎结果的正确性。在很多场景中,结果的正确性对业务来说非常重要,比如交易相关业务; 但是在原创 2020-11-04 21:57:16 · 203 阅读 · 0 评论