随笔分类 - 大数据技术栈 / Flink
Flink
摘要:FlinkSql 传统数据库/批处理场景下数据集是有限的,天然避免了流计算面临的两大问题: 1. 流计算中两条流数据的输入可能存在时间差,如何能保证在时间不一致情况下Join的准确性。 2. 流计算中数据是无限的,历史数据不能一直被保存,否则会带来极大内存、磁盘压力,如何做取舍。 针对第一个问题,F
阅读全文
摘要:Mysql连接器 Doris连接器 Elasticsearch SQL 连接器 https://nightlies.apache.org/flink/flink-docs-master/docs/connectors/table/elasticsearch/ Sink: Batch Sink: 流式
阅读全文
摘要:CDC CDC是Change Data Capture(变更数据获取)的简称。核心思想是,监测并捕获数据库的变动(包括数据或数据表的插入、更新以及删除等),将这些变更按发生的顺序完整记录下来,写入到消息中间件中以 供其他服务进行订阅及消费。 CDC主要分为基于查询和基于Binlog两种方式,这两种之
阅读全文
摘要:1. Table API和SQL Flink本身是批流统一的处理框架,所以Table API和SQL,就是批流统一的上层处理API。 目前功能尚未完善,处于活跃的开发阶段。 Table API是一套内嵌在Java和Scala语言中的查询API,它允许我们以非常直观的方式,组合来自一些关系运算符的查询
阅读全文
摘要:1. Kafka的事务和 Exactly Once Kafka 中的事务,它解决的问题是,确保在一个事务中发送的多条消息,要么都成功,要么都失败。注意,这里面的多条消息不一定要在同一个主题和分区中,可以是发往多个主题和 分区的消息。Kafka 的这种事务机制,单独来使用的场景不多。更多的情况下被用来
阅读全文
摘要:用户行为分析 统计分析 点击、浏览; 热门商品、近期热门商品、分类热门商品,流量统计; 偏好统计 收藏、喜欢、评分、打标签; 用户画像、推荐列表(结合特征工程和机器学习算法) 风险控制 下订单、支付、登录 刷单监控,订单实效监控,恶意登录(短时间内频繁登录失败)监控 1. 实时流量统计 1.1. 实
阅读全文
摘要:1. 状态一致性 当在分布式系统中引入状态时,自然也引入了一致性问题。一致性实际上是"正确性级别"的另一种说法,也就是说在成功处理故障并恢复之后得到的结果,与没有发生任何故障时得到的结果相比,前者到底有多 正确?举例来说,假设要对最近一小时登录的用户计数。在系统经历故障之后,计数结果是多少?如果有偏
阅读全文
摘要:一致性检查点(checkpoint) 从检查点恢复状态 Flink检查点算法 保存点(save point) 1. 一致性检查点(checkpoint) Flink--有状态的流式处理 如上图sum_even (2+4),sum_odd(1 + 3 + 5),5这个数据之前的都处理完了,就出保存一个
阅读全文
摘要:窗口的第一个时间窗口是如何定义的呢?查看源码: 滑动窗口: 这里的offset是用来指定时间戳的时区的,timestamp(1970年1月1号的毫秒数,默认是格林威治0时区的时间),北京时间是东八区,我们的时间比他们早8h,如果要跟他们标准时间统一的话offset应该是 -8;但在国内无所谓的,默认
阅读全文
摘要:ProcessFunction API 之前的转换算子 是无法访问事件的时间戳信息和 水位线 信息的。而这在一些应用场景下极为重要。例如 MapFunction 这样的 map 转换算子就无法访问时间戳或者当前事件的事件时间。基于此, DataStream API 提供了一系列的 Low Level
阅读全文
摘要:状态后端(State Backends) 每传入一条数据,有状态的算子任务都会读取和更新状态; 由于有效的状态访问对于处理数据的低延迟至关重要,因此每个并行任务都会在本地内存维护其状态,以确保快速的状态访问。 状态的存储、访问以及维护,由一个可插入的组件决定,这个组件就叫做状态后端(State Ba
阅读全文
摘要:Table API与SQL Table API是流处理和批处理通用的关系型API,Table API可以基于流输入或者批输入来运行而不需要进行任何修改。 Table API是SQL语言的超集并专门为Apache Flink设计的,Table API是Scala 和Java语言集成式的API。与常规S
阅读全文
摘要:1. Window概述 一般真实的流都是无界的,怎么处理无界的数据?可以把无限的数据流进行切分,得到有限的数据集进行处理 也就是得到有界流。 streaming流式计算是一种被设计用于处理无限数据集的数据处理引擎,而无限数据集是指一种不断增长的本质上无限的数据集; 而window是把无限数据流为有限
阅读全文
摘要:1. Flink运行时组件 作业管理器(JobManager) 任务的分配、调度管理以及checkpoint触发存盘操作。分析JAR包生产一个执行计划图(就可以知道有多少个任务task,需要多少个slot去执行,想RM去申请) 控制每一个应用程序执行的主进程,也就是说,每个应用程序都会被一个不同的J
阅读全文
摘要:1. 流处理技术的演变 在开源世界里,Apache Storm项目是流处理的先锋。Storm提供了低延迟的流处理,但是它为实时性付出了一些代价:很难实现高吞吐,并且其正确性没能达到通常所需的水平,换句话说,它并不能保证exactly-once,即便是它能够保证的正确性级别,其开销也相当大。 在低延迟
阅读全文
摘要:HotNItems 拓展需求:实时统计双十一下单量,实时统计成交额,实时查看锅炉温度变化曲线,每个5分钟看一下过去一个小时温度变化曲线, 涉及到的技术点:sliding window、Watermark、event time 用到的算子或者说叫链式调用:keyby、timeWindow、aggreg
阅读全文
摘要:1. 复杂事件处理CEP 复杂事件处理(Complex Event Processing, CEP);(复杂的逻辑关系,谁前谁后, 可以通过自定义processing function,状态编程,设置定时器来实现,但是比较复杂) Flink CEP是在Flink中实现的复杂事件处理(CEP)库; C
阅读全文
摘要:Flink 流处理Api 1. Environment getExecutionEnvironment 创建一个执行环境,表示当前执行程序的上下文。 如果程序是独立调用的,则此方法返回本地执行环境;如果从命令行客户端调用程序以提交到集群,则此方法返回此集群的执行环境,也就是说,getExecutio
阅读全文