标签: flink
共 43 篇文章
大数据-268 实时数仓 - ODS层 将 Kafka 中的维度表写入 DIM
在 Kafka 中写入维度表(DIM)通常涉及将实时或批处理数据从 Kafka 主题读取,并根据数据流中的信息更新维度表。维度表存储与业务数据相关的维度信息,如客户、产品、地理位置等,用于支持 OLAP 查询。
大数据-269 实时数仓 - DIM DW ADS 层处理 Scala实现将数据写出HBase等
DW(Data WareHouse 数据仓库层),包含 DWD、DWS、DIM 层数据加工而成,主要完成数据架构与整合,建立一致性的维度,构建可复用的面向分析和统计的明细事实表,以及汇总公共粒度的指标。基于 DW 数据,整合汇总成主题域的服务数据,用于提供后续的业务查询等。在分析交易过程时,可以通过卖家、买家、商品和时间等维度描述交易发生的环境,所以维度的作用一般是查询约束、分类汇总以及排序等。转换 area 表 到 地区ID、地区的名字、城市ID、城市的名字、省份 ID、省份的名字 到 HBase 中。
大数据-266 实时数仓 - Canal 对接 Kafka 客户端测试
本文介绍了阿里巴巴开源的Canal工具,它通过解析MySQL的binlog实现数据库变更的数据捕获(CDC)。文章展示了如何将Canal与Kafka集成,实现数据库变更到消息队列的实时推送,包含INSERT、UPDATE、DELETE操作的JSON格式示例。
大数据-267 实时数仓 - ODS Lambda架构 Kappa架构 核心思想
在互联网企业中,常见的 ODS 数据有业务日志数据(Log)和业务 DB 数据两类,对于业务 DB 数据来说,从 MySQL 等关系型数据库的业务数据进行采集,然后导入到 Hive 中,是进行数据仓库生产的重要环节。它的作用是存储大量的结构化数据,并能进行频繁和可重复的分析。为了彻底解决这些问题,我们逐步实时 binlog 采集进行实时处理,binlog 是 MySQL的二进制日志,记录了 MySQL 中发生的所有数据的变化,MySQL 集群自身的主从同步就是基于 binlog 做的。
大数据-265 实时数仓 - Canal 部署安装 启动服务 常见问题解决
Canal 是阿里巴巴开源的数据同步工具,用于 MySQL 数据库的增量日志解析和同步。它模拟 MySQL 从库协议,获取主库的 binlog 日志,从而实现实时数据捕获和传输,常用于数据迁移、缓存更新和搜索引擎同步等场景。Canal 集群模式通常结合 ZooKeeper 实现分布式协调,保证高可用性和负载均衡。
大数据-263 实时数仓 - Canal 工作原理 工作流程 MySQL Binlog基本介绍
Canal 是一款用于 MySQL 数据库 binlog 增量订阅和消费的开源工具。它主要用于解决数据同步和分布式事务问题,支持将数据库变更同步到其他系统中,比如消息队列、大数据平台等。Master 主库将改变记录写进二进制 binary log 中Slave 从库向 MySQL Master 发送 DUMP 协议,将 Master 主库的 binary log events 拷贝到它的中继日志(relay log)。Slave 从库读取并重做中继日志中的事件,将改变的数据同步到自己的数据库。
大数据-264 实时数仓 - Canal MySQL的binlog研究 存储目录 变动信息 配置MySQL
MySQL 的二进制日志(Binary Log,简称 binlog)是 MySQL 数据库中的一种日志文件类型,它记录了对数据库执行的所有更改操作(不包括 SELECT 和 SHOW 等查询操作)。它主要用于数据恢复、复制和审计等场景。
大数据-262 实时数仓 - Canal 同步数据 介绍背景原理与优势 拉链表 实时统计
阿里巴巴 B2B 公司,由于业务的特性,卖家主要集中在国内,买家主要集中在国外,所以衍生出了杭州和美国异地机房的需求,从 2010 年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅、消费的业务。Canal是用 Java 开发的基于数据库增量日志解析,提供增量数据订阅、消费的中间件。目前,Canal主要支持了 MySQL 的 Binlog 解析,解析完成后才利用 Canal Client 用来处理获得相关数据。
大数据-261 实时数仓 - 业务数据库表结构 交易订单、订单产品、产品分类、商家店铺、地域组织表
实时数仓是一种数据仓库系统,区别于传统批处理数仓,它强调低延迟、高吞吐和高可用性。实时数仓能够处理流式数据或近实时的数据流,使企业能够及时监控关键指标并做出决策。
大数据-260 实时数仓 - 项目背景与需求 实时数仓架构 需求分析 技术选型 逻辑架构
数据实时处理能力成为企业提升竞争力的一大因素,最初阶段主要采用来一个需求,编写一个实时任务的方式来处理实时数据,随着需求的增多,计算任务也相对增多,并且不同任务的开发人员不同,导致开发风格差异化,该阶段的实时数据处理缺乏统一的规划,代码风格差异化严重,在维护成本和开发效率上有很大障碍。CDH:最成型的发型版本,拥有最多的部署案例,提供强大的部署、管理和监控工具,国内使用最多的版本,拥有强大的社区支持。
大数据-95 Flink State 与 Checkpoint:状态管理、容错机制与 Savepoint
Flink 有状态计算详解:Keyed State、Operator State、Checkpoint 配置、Savepoint 备份与恢复、生产环境实践。
大数据-93 Flink Streaming 入门:DataStream API 与程序结构
Flink DataStream API 入门指南,程序执行流程、环境获取、数据源定义、算子链与执行模式详解,通过 WordCount 案例演示流处理程序开发。
大数据-94 Flink Window 与 Watermark:时间窗口、滚动滑动、会话窗口与迟到数据处理
Flink 时间窗口全面解析:滚动窗口、滑动窗口、会话窗口、Watermark 原理与生成策略、迟到数据处理机制。
大数据-91 Flink 安装部署:Local、Standalone、YARN 三种模式详解
Apache Flink 本地安装、Standalone 集群部署、与 YARN 集成三种部署模式完整教程,包含环境配置、参数调优与常见问题解决。
大数据-92 Flink on YARN 部署:环境准备、资源申请与任务提交
Flink 在 YARN 集群上的三种部署模式详解:Session、Application、Per-Job 模式,Hadoop 依赖配置、YARN 资源申请与任务提交流程。
大数据-90 Apache Flink 入门全解:流批一体的实时计算引擎
系统介绍 Apache Flink 的起源、核心特性与架构组件:JobManager、TaskManager、Dispatcher 的职责划分,流批一体处理模型,以及与 Spark Streaming 的对比选型。
大数据-148 Flink 写入 Kudu 实战:自定义 Sink 全流程(Flink 1.11/Kudu 1.17/Java 11)
Kudu 的完整可运行示例,基于 Flink 1.11.1(Scala 2.12)/Java 11 与 kudu-client 1.17.0(2025 实测)。通过 RichSinkFunction 自定义下沉器,演示从 DataStream 映射到 Kudu Insert 的全过程:建表(INT32 主键 id、STRING name、INT32 age,哈希分区 3)、会话配置(AUTO_FLUSH_BACKGROUND)、作业启动与验证。文中同时点出工程侧关键坑:逐列 apply 导致缺列/重复提交
大数据-131 Flink CEP 实战 24 小时≥5 次交易 & 10 分钟未支付检测 案例附代码
Flink CEP(Complex Event Processing)复杂事件处理机制,结合实际案例深入讲解其在实时流式计算中的应用原理与实战实现。通过定义事件模式(Pattern)、模式流(PatternStream)及 select 函数,开发者可从实时数据流中精准识别特定事件序列,用于欺诈检测、订单超时、用户行为分析、物联网监控等高频业务场景。
大数据-132 Flink SQL 实战入门 | 3 分钟跑通 Table API + SQL 含 toChangelogStream 新写法
工程视角快速跑通 Flink SQL:提供现代依赖(不再使用 blink 规划器)、最小可运行示例(MRE)、Table API 与 SQL 互操作;输出使用 toChangelogStream 验证变更流。附窗口与时态表示例、常见错误速查与版本兼容提示,适合实时 ETL/分析入门。
大数据-129 Flink CEP详解:实时流式复杂事件处理(Complex Event Processing)全解析
Flink中专用于复杂事件流实时分析的核心组件,提供完整的模式匹配框架,支持基于事件时间(Event Time)的乱序处理与高性能NFA(非确定性有限自动机)匹配机制。它允许开发者通过Pattern API定义复杂的事件序列规则,如严格连续、宽松连续、循环匹配与时间窗口约束等,实现毫秒级延迟下的欺诈检测、物联网监控、实时风控与用户行为分析等业务场景。相比传统CEP系统(如Esper),Flink CEP具备更强的状态管理、精确一次语义、容错恢复与水平扩展能力,可无缝集成Flink DataStream
大数据-130 Flink CEP 详解 - 捕获超时事件提取全解析:从原理到完整实战代码教程 恶意登录案例实现
Flink CEP 超时事件提取是流处理中的关键环节,用于在模式匹配过程中捕获超过窗口时间(within)的部分匹配事件。通过 select()、flatSelect() 和 process() API,开发者可以同时处理成功匹配和超时事件,实现复杂事件流的精确监控。本文详细介绍了 Flink CEP 的完整开发流程。
大数据-127 Flink StateBackend详解:Memory、Fs、RocksDB 与 OperatorState 管理机制与重分配原理
ManagedOperatorState用于管理无键(non-keyed)状态,实现算子在故障恢复或扩缩容时的状态一致性。开发者可通过实现CheckpointedFunction接口来使用ManagedOperatorState,支持ListState和BroadcastState两种数据结构。
大数据-128 Flink 并行度详解:从概念到最佳实践,一文读懂任务并行执行机制
Flink 中,并行度(Parallelism)是衡量任务并发处理能力的核心参数,决定了每个算子(Operator)可以同时运行的任务数量。合理设置并行度能显著提升作业的吞吐量与资源利用率。Flink 支持多层级的并行度配置,包括全局、作业级、算子级和系统级,可通过 env.setParallelism()、CLI 提交参数 -p 或 flink-conf.yaml 文件进行灵活设置。并行度与集群的 slot 数量直接相关,slot 代表实际执行线程资源,二者需保持平衡以避免资源浪费或任务阻塞。
大数据-125 Flink 实时流计算中的动态逻辑更新:广播状态(Broadcast State)全解析
广播状态(Broadcast State)是 Apache Flink 中支持流式应用动态更新逻辑的重要机制,广泛应用于实时风控、用户行为分析、动态规则评估等场景。它允许低吞吐量的配置流(如规则、模型、参数)广播至所有并行任务实例,使各算子在不重启的情况下即时应用新逻辑。典型案例是实时欺诈检测系统:高频交易流与低频规则流并行处理,规则更新可通过广播状态分发至各处理节点,实现业务逻辑热更新。
大数据-126 Flink一文搞懂有状态计算:State Backend 工作原理与性能差异详解 核心原理与作用
状态存储(State Backend)是其实现有状态流计算的核心机制,决定了数据的可靠性、性能与容错性。Flink 提供三种内置存储后端:MemoryStateBackend、FsStateBackend 与 RocksDBStateBackend。MemoryStateBackend 将状态保存在内存中,速度快但不适合生产;FsStateBackend 支持持久化到 HDFS,适合大状态与高可用;RocksDBStateBackend 基于嵌入式数据库 RocksDB,支持超大状态与增量 Checkpoint。
大数据-123 Flink 并行度设置优先级讲解 原理、配置与最佳实践 从Kafka到HDFS的案例分析
一个Flink程序由多个Operator组成(Source、Transformation、Sink)。一个Operator由多个并行的Task(线程)来执行,一个Operator的并行Task(线程)数目就被称为该Operator(任务)并行度(Parallelism)。Flink 中的并行度是指每个算子在任务执行时可以同时处理数据的并发实例数。
大数据-124 Flink State:Keyed State、Operator State KeyGroups 工作原理 案例解析
根据是否依赖中间状态,Flink 计算可分为有状态和无状态两种类型:无状态计算(Stateless Computation)如 Map、Filter、FlatMap 等操作,每条数据独立处理,执行效率高、可线性扩展;而有状态计算(Stateful Computation)则需保存中间结果或上下文,如窗口聚合、异常检测、去重等典型场景。
大数据-121 Flink 时间语义详解:EventTime、ProcessingTime、IngestionTime 与 Watermark机制全解析
Watermark 是一个特殊的标志,它用于告诉 Flink 数据流中事件的进展情况。简单来说,Watermark 是 Flink 中估计的"当前时间",表示所有早于该时间戳的事件都已经到达。Flink 认为当前时间在 Watermark 时间戳之前的所有事件已经接收完毕,不再期待有早于该时间戳的事件。当 Watermark 时间戳更新时,系统可以触发基于事件时间的窗口操作,比如窗口计算、聚合等。
大数据-122 Flink Watermark 全面解析:事件时间窗口、乱序处理与迟到数据完整指南
Flink 的 Watermark(水印)机制 是事件时间窗口计算中最核心的概念之一,用于处理 乱序事件(Out-of-Order Events) 并确保窗口准确触发。它通过定义系统认为"之前事件已全部到达"的时间点,来决定窗口计算的时机。当 Watermark ≥ 窗口结束时间时,Flink 才会触发窗口聚合计算。通过配置 最大乱序时间(Bounded Out-of-Orderness),系统可容忍一定延迟,保证结果准确性。
大数据-119 Flink 窗口(Window)全解析:Tumbling、Sliding、Session
Flink的Window窗口机制是流处理与批处理统一架构的核心桥梁。Flink将批处理视为流处理的特例,通过时间窗口(Tumbling、Sliding、Session)和计数窗口将无限流切分为有限数据集。
大数据-120 Flink滑动窗口(Sliding Window)详解:原理、应用场景与实现示例
滑动窗口(Sliding Window)是Apache Flink流处理中的核心机制之一,比固定窗口更灵活,广泛应用于实时监控、异常检测、趋势分析和用户行为统计等场景。滑动窗口由两个关键参数组成:窗口大小(window size)与滑动步长(slide interval)。
大数据-117 Flink JDBC Sink 详细解析:MySQL 实时写入、批处理优化与最佳实践
JDBC Sink 是最常用的数据输出组件之一,常用于将流处理与批处理结果写入 MySQL、PostgreSQL、Oracle 等关系型数据库。通过 JdbcSink.sink() 方法,开发者可以方便地实现 INSERT/UPDATE/UPSERT 等操作,并支持批量写入、事务一致性、自动重试机制,保证数据高效可靠落库。
大数据-118 Flink 批处理 DataSet API 全面解析:应用场景、代码示例与优化机制
Flink 的 DataSet API 是批处理的核心编程接口,专为处理静态、有限数据集设计,支持 TB 级甚至 PB 级大数据分析。相比 DataStream API 的流处理,DataSet API 聚焦于离线批处理,具备延迟执行、内存管理、丰富算子和容错机制等优势。常见应用场景包括 ETL 数据清洗与加载、批量报表分析、大规模图计算、机器学习特征工程与数据预处理。
大数据-115 Flink DataStream Transformation:Map、FlatMap、Filter 到 Window 的全面讲解
Flink 针对 DataStream 提供了丰富的算子,支持数据流在不同场景下的灵活处理。常见的算子包括 Map、FlatMap 和 Filter,用于元素转换、拆分与条件筛选;KeyBy 和 Reduce/Fold/Aggregations,可实现基于键的分区、滚动归约与聚合操作;Window 系列算子,能按照时间或事件对流进行窗口化计算,便于实现实时统计与累计功能。
大数据-116 Flink Sink 使用指南:类型、容错语义与应用场景
Flink 的 Sink 是数据流处理的最终输出端,用于将处理结果写入外部系统或存储介质。它是流式应用的终点,决定数据如何被保存、传输或消费。
大数据-113 Flink 源算子详解:非并行源(Non-Parallel Source)的原理与应用场景
非并行源(Non-Parallel Source)是Flink中并行度固定为1的源操作,无论集群规模如何,只能在单一实例中运行,确保任务按顺序处理。
大数据-114 Flink DataStreamAPI 从 SourceFunction 到 RichSourceFunction 源函数的增强与实战
RichSourceFunction 和 RichParallelSourceFunction 是功能增强型的源函数,适用于需要复杂逻辑和资源管理的场景。相比基础的 SourceFunction,它们提供了更完整的生命周期方法(open、close、run、cancel),支持在作业开始和结束时进行初始化和清理操作。
大数据-111 Flink 安装部署 On YARN 部署全流程详解:环境变量、配置与资源申请
在 YARN 模式下部署 Flink 需要完成一系列环境配置和集群管理操作。首先,在各节点配置环境变量,包括 HADOOP_CONF_DIR、YARN_CONF_DIR 和 HADOOP_CLASSPATH,并在 profile 中加入 Hadoop 与 Flink 的路径。随后修改 yarn-site.xml,指定 ResourceManager 地址,并关闭虚拟内存与物理内存检测以避免资源限制问题。
大数据-112 Flink DataStream API:数据源、转换与输出 文件、Socket 到 Kafka 的完整流程
DataSource、Transformation 和 Sink。DataSource 提供多样化的数据输入方式,包括文件系统、消息队列、数据库及自定义数据源;Transformation 是计算的核心环节,支持 Map、FlatMap、Filter、KeyBy、Window 等操作,并能以链式调用构建完整的数据流处理管道;Sink 负责结果输出,可将数据写入消息系统、数据库或文件系统,并支持自定义实现。
大数据-109 Flink 架构深度解析:JobManager、TaskManager 与核心角色全景图
Flink 的运行架构采用典型的 Master/Slave 模式,各核心组件分工明确。JobManager 作为 Master,负责作业的解析、调度、检查点协调以及故障恢复,同时支持高可用设计和多种作业提交方式。TaskManager 是执行单元,提供 Task Slot 资源,执行具体的子任务,并通过网络通信与心跳机制维持集群稳定性。ResourceManager 负责全局资源的分配与回收,协助启动和管理 TaskManager,保证资源利用效率。Dispatcher 则通过 REST 接口接收用户提交的作业
大数据-110 Flink 安装与部署指南 支持 Local/Standalone/YARN 的多种模式
Flink 提供多种安装模式以适应不同场景需求。Local 模式适合个人学习与小规模调试,配置简单,可直接在本地 IDE 中运行。Standalone 模式是 Flink 内置的集群管理方式,包含 JobManager 和 TaskManager,用户需手动配置资源,优点是部署独立、简洁易用,适合中小规模生产环境或边缘计算场景,但缺乏动态扩展能力。YARN 模式依托 Hadoop YARN 进行统一资源调度,支持动态资源分配与高可用,适合企业级大数据平台和大规模生产环境。
大数据-107 Flink Apache Flink 入门全解:流批一体的实时计算引擎 从起源到技术特点的全面解析
Apache Flink 是一个开源的大数据流处理框架,支持无界流和有界批数据的高效计算,以"流批一体"为核心理念,将批处理视为流处理的特例。其具备高性能、分布式执行和弹性扩展能力,能够在 YARN、Kubernetes 等集群环境中运行,广泛应用于实时 ETL、复杂事件处理、在线分析与监控预警等场景。
大数据-108 Flink 流批一体化入门:概念解析与WordCount代码实践 批数据+流数据
Apache Flink 既支持流处理(Stream Processing),也支持批处理(Batch Processing)。流处理适用于实时数据,如传感器、日志或交易流,特点是处理无界数据流、支持事件时间、窗口操作和状态管理,能够保证乱序与延迟情况下的精确计算。批处理则针对静态、有界数据集,常用于大规模分析或ETL任务,依赖任务并行化和 DataSet API 实现高效处理。文中以"单词统计"为案例,分别展示了基于批处理和流处理的实现方式。