VinoYang的专栏

工作总结 & 技术框架/源码解读

Flink 1.5版本的“Task本地恢复”实现摘要

overview 解读Flink 1.5版本的“task本地恢复”feature的实现。 随着时间的推移,Flink有些模块的代码复杂度已经很高了(比较典型的就是状态&容错这块)。因为考虑到兼容历史实现的问题,类在快速增长。 实现 关于本地恢复的配置,封...

2018-03-07 19:15:12

阅读数:200

评论数:0

Flink 1.5版本网络栈重构技术分析

overview 基于Flink近期的官方声明,明年的1.5版本将会发布三个较大feature,其中之一就是对于网络栈的重构。具体而言,就是将基于配置的、固定间隔的网络I/O改进为基于事件驱动的I/O。这种改进预期将会带来如下这些优势: 提供应用程序级别的流控,以更好地处理反压(backpr...

2018-02-11 10:33:36

阅读数:332

评论数:0

Uber Athenax项目核心技术点剖析

本文剖析一下Uber Athenax项目的核心技术点。AthenaX是一个流式分析平台,它可以让用户运行SQL来进行大规模可扩展的流式分析。由Uber开源,具备扩展到上百台节点处理日均千亿级别的实时事件。

2017-11-19 12:00:33

阅读数:1237

评论数:1

Foundations of streaming SQL

streaming & table

2017-11-05 19:03:12

阅读数:680

评论数:0

Flink关系型API的公共部分

关系型程序的公共部分下面的代码段展示了Table&SQL API所编写流式程序的程序模式

2017-07-13 22:31:35

阅读数:1486

评论数:0

Flink关系型API简介

在接触关系型API之前,用户通常会采用DataStream、DataSet API来编写Flink程序,它们都提供了丰富的处理能力,以DataStream为例,它有如下这些优点:

2017-07-06 22:52:34

阅读数:1578

评论数:0

Flink批处理中的增量迭代

对某些迭代而言并不是单次迭代产生的下一次工作集中的每个元素都需要重新参与下一轮迭代,有时只需要重新计算部分数据同时选择性地更新解集,这种形式的迭代就是增量迭代。

2017-06-13 23:38:46

阅读数:2320

评论数:5

Flink-Table-SQL系列之source

source作为Table&SQL API的数据源,同时也是程序的入口。当前Flink的Table&SQL API整体而言支持三种source:Table source、DataSet以及DataStream,它们都通过特定的API注册到Table环境对象。

2017-06-12 22:56:32

阅读数:2323

评论数:3

谈谈EventTime以及Watermark

EventTime,ProcessingTime,Watermark,out-of-order..

2017-06-09 09:58:07

阅读数:2762

评论数:2

浅谈Flink批处理优化器之Join优化

跟传统的关系型数据库类似,Flink提供了优化器“hint”(提示)以告诉优化器选择一些执行策略。目前优化提示主要针对批处理中的连接(join)。在批处理中共有三个跟连接有关的转换函数

2017-04-24 22:25:03

阅读数:3089

评论数:0

Flink批处理优化器之数据属性

在一段时间之前我们已介绍过IP(Interesting Property)对于优化器的意义以及它将对优化器的优化决策产生的影响。本篇我们将介绍Flink的批处理优化器中涉及到的所有的IP,我们将其统称为数据属性。后续我们会介绍Flink如何为优化器节点计算IP,并在之后的“剪枝”(pruning)...

2017-04-09 22:17:06

阅读数:1293

评论数:0

Flink批处理优化器之范围分区重写采用算法

采样算法上一篇我们分析了RangePartitionRewriter的数据处理分支,接下来我们开始分析采样分支,采样分支的核心在于采样算法。因为范围分区输入端每个分区的数据量无从得知,也就是说我们无法得出采样比例。

2017-04-07 18:42:47

阅读数:1421

评论数:2

Flink批处理优化器之范围分区重写

为最终计划应用范围分区重写Flink的批处理程序允许用户使用partitionByRange API来基于某个(或某些)字段进行按范围分区且可以选择性地指定排序顺序,示例代码如下:

2017-04-05 21:27:47

阅读数:2792

评论数:0

Flink运行时之客户端提交作业图-下

submitJob方法分析JobClientActor通过向JobManager的Actor发送SubmitJob消息来提交Job,JobManager接收到消息对象之后,构建一个JobInfo对象以封装Job的基本信息

2017-04-02 20:08:27

阅读数:4197

评论数:0

Flink运行时之客户端提交作业图-上

客户端提交作业图作业图(JobGraph)是Flink的运行时所能理解的作业表示,无论程序通过是DataStream还是DataSet API编写的,它们的JobGraph提交给JobManager以及之后的处理都将得到统一。本篇我们将分析客户端如何提交JobGraph给JobManager。

2017-03-31 21:13:57

阅读数:1782

评论数:0

Flink批处理优化器之成本估算

成本估算在基于成本的优化器中,成本估算非常重要,它直接影响着候选计划的生成。在Flink中成本估算依赖于每个不同的运算符所提供的自己的“预算”,本篇我们将分析什么是成本、运算符如何提供自己的预算以及如何基于预算估算成本。

2017-03-28 22:56:34

阅读数:4067

评论数:0

Flink-CEP之模式流与运算符

之前我们分析了CEP的API,接下来我们将分析CEP API的内部实现包括模式流与运算符。模式流模式流(PatternStream)是CEP模式匹配的流抽象,一个PatternStream对象表示模式检测到的序列所对应的流。该序列以映射来表示,以模式名关联一组事件对象。

2017-03-16 23:17:45

阅读数:2323

评论数:0

Flink-CEP之NFA编译器

NFAbNFA ^ b编译器的作用是将模式对象编译成NFA或者NFAFactory(用来创建多种NFA对象)。这个编译的过程,需要对模式进行拆分从而构建状态以及根据条件构建状态转换信息,最终根据构建好的状态集合来创建NFA。示意图如下:

2017-03-11 22:14:15

阅读数:980

评论数:0

Flink-CEP之NFA

NFAbNFA ^ b模型包含两个阶段:第一个阶段是模式匹配阶段,在这个阶段它将会向最终态过渡并随着事件被选择而扩展缓冲区;第二个阶段是匹配提取阶段,该阶段发生在超时或者到达最终态时,将会从缓冲区中检索所产生的匹配。

2017-03-09 23:25:28

阅读数:988

评论数:0

Flink-CEP之带版本的共享缓冲区

带版本的共享缓冲区当股票模式以一个事件流作为输入时,状态转换将会作用于事件流从而引起事件的状态变化。结合窗口对参与匹配的事件的限制以及模式中结合事件上下文(状态)的过滤条件,同一事件流随着时间的流动或者多次运行都会产生多种不同的匹配结果。

2017-03-05 23:30:39

阅读数:1791

评论数:1

提示
确定要删除当前文章?
取消 删除
关闭
关闭