首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏从零开始学Flink

    从零开始FlinkFlink SQL 极简入门

    Flink SQL 是 Apache Flink 的核心模块之一,它让开发者可以使用标准的 SQL 语法来编写流处理和批处理作业。 本文将基于 Flink 1.20.1 版本,手把手教你在 WSL2 (Ubuntu) 环境下搭建环境,并运行你的第一个 Flink SQL 任务。 一、为什么选择 Flink SQL? 参考以前写的文章从零开始Flink:揭开实时计算的神秘面纱,搭建好 Flink 环境。 三、体验 Flink SQL Client Flink 提供了一个交互式的命令行工具:SQL Client。 启动 SQL Client 如果没有启动Flink集群,则先启动flink集群: ./bin/start-cluster.sh ,然后在 Flink 目录下执行: . 你已经成功运行了人生中第一个 Flink SQL 任务。 通过本文,我们完成了: WSL2 下 Java 和 Flink 1.20.1 的安装。 启动了 Flink 本地集群。

    35810编辑于 2026-02-07
  • 来自专栏从零开始学Flink

    从零开始Flink:事件驱动

    Apache Flink 为此提供了强大的 ProcessFunction 家族(KeyedProcessFunction、CoProcessFunction、BroadcastProcessFunction 本文基于 Flink 1.20 的语义,带你从零理解事件驱动的编程模型,并一步步实现一个“伪窗口 PseudoWindow”示例,体会 ProcessFunction 如何代替窗口完成时间分桶、累加和触发输出 builder() .setBootstrapServers("localhost:9092") .setTopics("fares") .setGroupId("flink-fare-group 在 Flink 中,KeyedProcessFunction 是实现事件驱动应用的核心武器:用它来注册事件或处理时间定时器、维护键控状态、为迟到与补偿设计精细策略。 原文来自:http://blog.daimajiangxin.com.cn源码地址:https://gitee.com/daimajiangxin/flink-learning

    23910编辑于 2025-11-04
  • 来自专栏从零开始学Flink

    从零开始FlinkFlink 双流 JOIN 实战详解

    三、准备示例数据表安装 Kafka(环境前提)在 WSL2 的 Ubuntu 环境中安装并启动 Kafka,请参考 《从零开始Flink:数据源》。 安装 Flink Kafka SQL Connector需要把 Flink 的 Kafka SQL Connector JAR 包,放到 $FLINK_HOME/lib 目录下。 以本系列示例使用的 Flink 1.20.1 + Kafka 3.4.0-1.20 为例,可以这样操作:确认你的 Flink 安装目录(假设为 /opt/flink):export FLINK_HOME =/opt/flink下载 Kafka SQL Connector JAR 到 Flink 的 lib 目录:cd $FLINK_HOME/libwget https://repo1.maven.org /maven2/org/apache/flink/flink-sql-connector-kafka/3.4.0-1.20/flink-sql-connector-kafka-3.4.0-1.20.jar

    14210编辑于 2026-02-19
  • 来自专栏从零开始学Flink

    从零开始FlinkFlink SQL 窗口(Window)操作详解

    在上一篇 Flink SQL 极简入门 中,我们体验了 Flink SQL 的基础用法。但在流处理中,最核心、最迷人(也最让人头秃)的概念莫过于“时间”和“窗口(Window)”。 今天,我们就来深入 Flink SQL 的窗口机制,看看它是如何驯服无限数据流的。什么是窗口 (Window)?流数据(Stream)是无限的,像水流一样源源不断。 在 Flink SQL 中,窗口主要用于将时间序列上的数据分桶,然后在桶内进行聚合计算(如 SUM, COUNT, AVG)。 但从 Flink 1.13 开始,官方推荐使用 Window TVF (Table-Valued Functions)。 下一篇,我们将挑战更复杂的场景:双流 JOIN,看看当“订单流”遇到“用户流”,Flink 该如何处理?原文来自

    18510编辑于 2026-02-09
  • 来自专栏从零开始学Flink

    从零开始Flink:数据源

    本文将以Flink DataStream API为核心,带你从0到1实现“从Kafka消费数据并输出到日志”的完整流程,掌握Flink Source的核心用法。 版本说明本文基于以下版本实现(需保持版本兼容):Flink:1.20.1(最新稳定版)Kafka:3.4.0(Flink Kafka Connector兼容Kafka 2.8+)JDK:17+gradle 核心依赖(生产环境通常标记为provided,由Flink运行时提供) implementation 'org.apache.flink:flink-java:1.20.1' implementation 'org.apache.flink:flink-streaming-java_2.12:1.20.1' // Flink Kafka Connector(新版API,兼容Kafka 2.8+) implementation 'org.apache.flink:flink-connector-kafka_2.12:1.20.1' // SLF4J日志门面 + Log4j实现(避免日志警告)

    43110编辑于 2025-09-23
  • 来自专栏从零开始学Flink

    从零开始FlinkFlink SQL四大Join解析

    在上一篇 《从零开始Flink:实时数仓与维表时态Join实战》 中,我们通过引入 Hive Catalog,解决了 Flink SQL 元数据管理的痛点。 为了保证“无论数据来得早晚都能关联上”,Flink 必须在 State 中 永久保存 左右两张流的所有历史数据。 二、Interval Joins (区间 Join):时间窗口的魔法为了解决 Regular Join 的状态膨胀问题,Flink 引入了 Interval Join。 三、Temporal Joins (时态 Join):穿越时空的快照这是 Flink SQL 最具技术含量的功能,专门用于解决 “关联数据变更历史” 的问题。 下一篇,我们将探讨 Flink SQL 的窗口聚合(Window Aggregation)与 TopN 高级应用。原文链接: http://blog.daimajiangxin.com.cn

    32510编辑于 2026-03-08
  • 来自专栏从零开始学Flink

    从零开始FlinkFlink SQL 元数据持久化实战

    在上一篇 《从零开始Flink:实时数仓与维表时态Join实战》 中,我们通过「订单事实流 + 用户维表」构建了一条基础的实时数仓链路。 创建本地工作目录mkdir -p flink-hive-metastore/datamkdir -p flink-hive-metastore/libmkdir -p flink-hive-metastore 1)Flink Hive Connector请根据你的 Flink 和 Hive 版本选择对应的 Jar 包。 以 Flink 1.20.1 和 Hive 3.1.3 为例:cd $FLINK_HOME/libwget https://repo1.maven.org/maven2/org/apache/flink 建议:优先使用 Flink 官方提供的 flink-sql-connector-hive(Shaded 包),它封装了大部分依赖,减少冲突。

    31710编辑于 2026-02-26
  • 来自专栏从零开始学Flink

    从零开始Flink:实时流处理实战

    本文将通过经典的SocketWordCount示例,深入探讨Flink实时流处理的核心概念和实现方法,帮助你快速掌握Flink流处理的实战技能。一、实时流处理概述1. 核心依赖dependencies { // Flink核心依赖 implementation 'org.apache.flink:flink_core:1.20.1' implementation 'org.apache.flink:flink-streaming-java:1.20.1' implementation 'org.apache.flink:flink-clients:1.20.1 注意,Flink程序是惰性执行的,只有调用execute方法才会真正触发计算。四、Flink并行流处理机制1. 并行度概念并行度是指Flink程序中每个算子可以同时执行的任务数量。 后续我们还将深入学习Flink的窗口计算、状态管理、Flink SQL等高级特性,帮助你构建更强大的实时数据处理应用。通过本文的学习,相信你已经对Flink实时流处理有了更深入的理解。

    42210编辑于 2025-10-09
  • 来自专栏从零开始学Flink

    从零开始Flink:数据转换的艺术

    Flink提供了丰富的数据转换操作,让开发者能够灵活地对数据流进行各种处理和分析。 本文将以Flink DataStream API为核心,带你探索Flink数据转换的精妙世界,并结合之前文章中的Kafka Source实现一个完整的数据处理流程。 如果您已经完成了《从零开始Flink:数据源》中的环境搭建,可以直接使用现有配置;如果还没有,请先参考该文章完成环境准备。### 1. 'org.apache.flink:flink-java:1.20.1' implementation 'org.apache.flink:flink-streaming-java_2.12:1.20.1 ' // Flink Kafka Connector implementation 'org.apache.flink:flink-connector-kafka_2.12:1.20.1'

    27710编辑于 2025-09-23
  • 来自专栏从零开始学Flink

    从零开始Flink:状态管理与容错机制

    这正是 Flink 引以为傲的资本:强大的状态管理与基于 Checkpoint 的容错机制。本文将带你深入理解 Flink 是如何“记忆”数据的,以及它是如何在故障发生时“时光倒流”恢复现场的。 状态的分类Flink 的状态分为两大类:Managed State(托管状态) 和 Raw State(原生状态)。 我们日常开发 99% 使用的是托管状态,由 Flink 运行时自动管理内存、序列化和故障恢复。 /checkpoints");三、容错核心:CheckpointCheckpoint(检查点)是 Flink 容错机制的灵魂。 掌握了状态与容错,你的 Flink 任务才算真正具备了“生产级”的健壮性。下一篇,我们将探讨 Flink SQL,看看如何用 SQL 解决 80% 的流计算需求。

    20410编辑于 2026-02-04
  • 来自专栏从零开始学Flink

    从零开始Flink:数据输出的终极指南

    本文将深入探讨Flink数据输出的核心概念、配置方法和最佳实践,并基于Flink 1.20.1构建一个完整的数据输出案例。一、Flink Sink概述1. 核心依赖dependencies { // Flink核心依赖 implementation 'org.apache.flink:flink_core:1.20.1' implementation 'org.apache.flink:flink-streaming-java:1.20.1' implementation 'org.apache.flink:flink-clients:1.20.1 检查点与保存点Flink的检查点(Checkpoint)机制是实现精确一次语义的基础。当开启检查点后,Flink会定期将作业的状态保存到持久化存储中。 Flink提供了背压监控和处理机制:使用Flink Web UI监控背压情况考虑使用缓冲机制或调整并行度对于关键路径,实现自定义的背压处理逻辑4.

    82110编辑于 2025-11-04
  • 来自专栏从零开始学Flink

    从零开始Flink:揭开实时计算的神秘面纱

    Flink的诞生,让数据从"考古材料"变为"新鲜血液"。二、初识Flink1. 1.20.1# 下载 Flink wget https://archive.apache.org/dist/flink/flink-1.20.1/flink-1.20.1-bin-scala_2.12 .tgz # 解压安装包 tar xzf flink-1.20.1-bin-scala_2.12.tgz # 移动到安装目录 sudo mv flink-1.20.1 /opt/flink # 设置环境变量 echo 'export FLINK_HOME=/opt/flink' >> /etc/profile echo 'export PATH=$PATH:$FLINK_HOME/bin 浏览器中访问:http://localhost:8081四、实战第一个Flink程序:BatchWordCount下面将详细介绍如何在Flink环境中创建并运行第一个WordCount程序。

    82210编辑于 2025-09-23
  • 来自专栏从零开始学Flink

    从零开始Flink:开启实时计算的魔法之旅

    的颠覆性革新Apache Flink在德语中意为"敏捷",恰如其分地诠释了它的核心优势。 容错结界基于Chandy-Lamport算法的分布式快照,Flink实现了:精确一次语义(Exactly-Once)亚秒级故障恢复零数据丢失对比测试显示,在节点故障场景下,Flink的恢复速度比Storm 四、Flink的星辰大海从阿里巴巴双11万亿级实时大屏,到Uber的动态定价系统;从Netflix的实时内容推荐,到平安银行的实时反欺诈检测,Flink正在重塑这些场景:实时数仓架构演进传统架构:业务系统 -> Kafka -> Spark批处理 -> Hive -> 报表系统(T+1)Flink架构:业务系统 -> Kafka -> Flink实时ETL -> Kafka -> Flink实时分析 - 本系列将带你从Flink的安装部署开始,逐步深入窗口机制、状态管理、CEP复杂事件处理等核心领域,最终抵达流批一体架构设计的顶峰。

    40410编辑于 2025-09-23
  • 来自专栏从零开始学Flink

    从零开始Flink:流批一体的执行模式

    本文将深入探讨Flink的执行模式(Execution Mode),特别是在Flink 1.20.1版本中对批处理和流处理模式的支持和优化。一、Flink执行模式概述1. 执行模式的演进历程Flink的执行模式经历了以下几个关键阶段:早期版本: Flink最初专注于流处理,但提供了对批处理的支持Flink 1.12: 引入了全新的批处理执行模式(BATCH模式)Flink 环境准备首先,确保你已经设置了正确的依赖:dependencies { // Flink核心依赖 implementation 'org.apache.flink:flink_core:1.20.1 ' implementation 'org.apache.flink:flink-streaming-java:1.20.1' implementation 'org.apache.flink 'org.apache.flink:flink-connector-kafka:3.4.0-1.20'}2.

    37210编辑于 2025-10-25
  • 来自专栏从零开始学Flink

    从零开始Flink:实时数仓与维表时态Join实战

    安装 Flink JDBC Connector和 Kafka 一样,JDBC 连接器也需要以 JAR 包形式放到 Flink 的 lib 目录中。 以 Flink 1.20.x 对应的 flink-connector-jdbc 为例:确认 Flink 安装目录(假设为 /opt/flink):export FLINK_HOME=/opt/flink /flink/flink-connector-jdbc/3.3.0-1.20/flink-connector-jdbc-3.3.0-1.20.jar如果你使用的是独立集群或远程集群,需要重启 Flink 集群,让新 JAR 在 JobManager/TaskManager 上生效:cd $FLINK_HOMEbin/stop-cluster.shbin/start-cluster.sh重启 Flink 四、在 Flink 中注册事实流与维表接下来回到 Flink SQL Client,把 Kafka 中的订单事实流和 MySQL 中的维表都注册成 Flink 表。1.

    22010编辑于 2026-02-19
  • 来自专栏麒思妙想

    零基础FlinkFlink SQL(上)

    前面几篇内容,我们结合案例来介绍了,两流Join,热销榜,以及状态容错,今天我们依旧基于这个数据,来说说Flink SQL,如果对原理有兴趣的同学,也可以移步到《Stream SQL 的执行原理与 Flink ; import org.apache.flink.api.java.tuple.Tuple5; import org.apache.flink.api.java.utils.ParameterTool ; import org.apache.flink.table.api.java.StreamTableEnvironment; import org.apache.flink.types.Row; import https://ci.apache.org/projects/flink/flink-docs-release-1.8/dev/table/streaming/joins.html https:// 希望Flink越来越好吧.... ? ?

    1.4K40发布于 2020-07-10
  • 来自专栏数据社

    为什么要 FlinkFlink 香在哪?

    知道大数据的同学也应该知道 Flink 吧,最近在中国的热度比较高,在社区的推动下,Flink 技术栈在越来越多的公司开始得到应用。 Flink 到底火不火? 据不完全统计,Flink 在中国公司的采用情况(部分) ? 其中, 他们用 Flink 做了什么? Alibaba 使用 Flink 的分支版本 Blink 来优化实时搜索排名。 利用 Apache Flink 构建了实时数据仓库,用于即时分析运营活动效果及用户短期兴趣。 华为云提供基于 Flink 的云服务。 注:Flink 为什么引入了时间的概念呢?因为在 Flink 内部数据是流,需要有一个来度量流计算处理进度的标识。所以引入了时间这个概念。 接下来,我们来简单了解下 Flink 的分层 API ? 架构优势 最后,这几点 Flink 的架构方面的设计,或许是你说服别人使用 Flink 的理由。

    2.3K41发布于 2020-11-06
  • 来自专栏全栈程序员必看

    从零开始android

    我是一名无名学校的和计算机专业有一点关系的大学僧,当然还是比较喜欢计算机 游戏的……

    56020编辑于 2022-06-25
  • 来自专栏时来之笔

    从零开始Python

    Python相对于其他的语言来说,是比较好学的,对新手比较友好,如果目的只是爬一些数据,做一些自动化办公,写一些小工具,来提高自己的工作效率,还是挺容易的。

    1.2K40编辑于 2021-12-04
  • 来自专栏编程

    从零开始正则

    问题:我怎么才能收到你们公众号平台的推送文章呢? 正则规范 正则表达式的英文是regular expression简称regex。正则表达式就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一

    1.6K80发布于 2018-01-02
领券