- 博客(89)
- 资源 (2)
- 问答 (2)
- 收藏
- 关注
原创 Flink SQL关联查询:双流Join与维表Join实战技巧
本文系统介绍了流式Join的核心技术与实践方案。首先分析了流处理Join相比传统数据库的三大挑战:数据无限性、乱序到达和状态管理。重点讲解了双流Join(时间区间Join、窗口Join、正则Join)和维表Join(处理时间/事件时间Join)的实现原理与SQL语法,并详细说明了Lookup Join的适用场景。文章还提供了Join性能优化技巧,包括状态TTL设置和数据倾斜处理方案,以及生产环境中的最佳实践指南。最后通过多流关联和动态过滤等复杂场景案例,展示了流式Join在实际业务中的应用价值。全文为构建高
2025-12-03 07:45:00
343
原创 Flink SQL窗口聚合全攻略:Tumble、Hop、Session窗口详解
本文系统介绍了流处理中的窗口机制,详细解析了三种核心窗口类型及其应用场景。滚动窗口(TUMBLE)适合固定时间统计,滑动窗口(HOP)实现平滑连续监控,会话窗口(SESSION)反映真实用户行为模式。文章提供了丰富的SQL示例,涵盖窗口分配、聚合计算、连接操作等实践技巧,并分享了状态管理、并行度调优等性能优化方法。最后总结了窗口大小选择策略和水位线配置等生产环境最佳实践,为构建高效实时计算管道提供全面指导。
2025-11-28 07:45:00
223
原创 Flink SQL时间属性深度解析:处理时间与事件时间的区别与应用
流处理时间属性解析与实践 本文系统讲解了流处理中的时间属性,重点对比了处理时间和事件时间两种核心时间语义。处理时间基于系统时钟,延迟低但准确性差;事件时间反映业务真实时间,准确性高但需要水位线机制处理乱序事件。文章详细介绍了水位线的工作原理、配置策略和调优方法,包括多分区处理和延迟设置。通过电商用户行为分析的实践案例,展示了如何混合使用两种时间语义:处理时间用于实时监控,事件时间用于准确统计。最后,文章还演示了如何通过SQL语法定义时间属性和实现窗口计算,为流处理系统设计提供了实用参考。
2025-11-26 07:45:00
785
原创 Flink SQL查询基础:SELECT、WHERE、GROUP BY子句详解
Flink SQL的SELECT查询针对流式数据设计,具有持续更新特性。基础语法包含SELECT、FROM、JOIN、WHERE等标准子句。列选择支持算术、字符串和时间表达式计算,WHERE子句提供比较运算符和逻辑组合过滤。高级技巧包括NULL值处理(COALESCE、NULLIF)和子查询过滤(EXISTS、IN)。GROUP BY支持单字段分组聚合,实现流数据的增量计算。
2025-11-23 14:00:00
209
原创 DDL实战指南:如何定义和管理动态表
Flink SQL DDL语法详解:涵盖流处理表定义的关键要素,包括列定义(物理列、计算列、元数据列)、时间属性(处理时间、事件时间与水印策略)、主键约束以及常见连接器(Kafka/JDBC)配置。特别强调流式DDL与传统数据库DDL的差异,如动态表处理、连接器配置和时间属性声明等特性。通过示例代码展示完整语法结构,包括复杂数据类型、窗口聚合和水印策略等实际应用场景。
2025-11-20 21:16:06
314
原创 Flink类型系统深度解析:从SQL类型到运行时内存的完整映射
逻辑类型是Flink内部用于描述数据语义的类型系统,它独立于具体的存储格式和运行时表示。逻辑类型桥接了SQL数据类型和物理类型之间的鸿沟。// 自定义格式需要实现逻辑类型映射// 返回逻辑类型对应的TypeInformation。
2025-11-16 19:30:00
326
原创 第一个Flink SQL作业:WordCount的现代流式实现
本文介绍了从批处理到流式WordCount的演进过程,重点讲解了基于Flink SQL的实时单词计数实现方案。文章首先分析了传统批处理方法的局限性,然后详细展示了如何创建模拟文本数据流、定义源表、进行单词拆分和标准化处理。核心内容包括滚动窗口和滑动窗口两种计数方式,以及全局累积统计的实现方法。此外还涵盖了结果输出配置、实时监控、故障恢复机制和性能调优等实战要点,构建了一套完整的流式WordCount处理流水线,具备精确一次语义保证和高效的状态管理能力。
2025-11-14 07:45:00
704
原创 环境搭建实战:本地部署Flink SQL开发环境
内存:至少4GB可用内存(推荐8GB以上)磁盘:10GB可用空间CPU:双核以上处理器Java:JDK 8(推荐OpenJDK 1.8.0_292)或JDK 11操作系统:Linux、macOS 10.14+、Windows 10+终端工具:支持SSH连接的终端或命令行工具。
2025-11-12 07:45:00
509
原创 Flink SQL核心概念解析:Table API与流表二元性
Flink SQL流表二元性核心解析:本文系统阐述了Flink SQL的核心理论流表二元性,揭示了数据流与动态表间的等价转换关系。详细介绍了Table API的多层架构体系、动态表特性与变更类型、连续查询机制及其与传统批处理的差异,重点分析了时间属性和水位线管理策略。通过电商用户行为分析案例展示完整实现流程,并提供状态后端选择、水位线调优等性能优化方案。该理论突破实现了SQL语义在流处理中的应用,显著降低了实时应用开发门槛,为流处理领域带来重要创新。
2025-11-08 10:04:34
759
原创 Flink Stream API 已如此强大,为何我们还需要 Flink SQL?
回到最初的问题:为什么有了强大的 Stream API,我们还需要 Flink SQL?答案在于,技术选型从来不是寻找“唯一正确”的解,而是为不同场景选择最合适的工具。Flink SQL 不是要取代 Stream API,而是在它之上构建了一个更高效、更易用的抽象层。就像我们既需要汇编语言来编写操作系统内核,也需要 Python 来进行快速数据分析一样,Flink 为我们提供了完整的技术光谱:从高度抽象的 SQL 到精细控制的底层 API。
2025-11-08 09:00:00
1049
原创 揭秘Flink SQL的魔法:从SQL语句到实时任务的华丽转身
摘要: Flink SQL通过多层转换将SQL查询变为实时数据处理任务:首先解析验证语法语义,然后生成逻辑计划并优化(谓词下推、投影下推等),再转换为物理执行计划(如GROUP BY转为KeyedStream)。最终生成JobGraph提交集群,实现任务调度、数据流动和状态管理(自动检查点、故障恢复)。优化需关注并行度、时间语义和状态后端选择。Flink SQL背后的多层转换机制展现了现代流处理技术的强大能力。
2025-11-06 08:00:00
527
原创 Flink SQL入门指南:从零开始搭建流处理应用
Flink SQL简介与快速入门指南 摘要: Apache Flink SQL是基于Flink构建的流批一体SQL查询引擎,支持使用标准SQL处理实时数据流和批数据,具有低延迟、高吞吐和Exactly-Once保证等特性。本文介绍了Flink SQL的核心概念、环境搭建方法和基础应用开发流程,包括系统要求、安装步骤、数据流定义和查询示例。重点解析了动态表、时间属性和连续查询等核心机制,并提供了常见问题解决方案,帮助开发者快速掌握Flink SQL开发要点。
2025-11-05 00:05:38
337
原创 Flink SQL时间属性详解:事件时间与处理时间的实战指南
事件时间定义:) WITH (处理时间定义:) WITH (查询中定义时间属性SELECTuser_id,Flink SQL的时间属性为流处理提供了强大的时间语义支持。正确理解和使用事件时间与处理时间,能够帮助开发者构建更加健壮和准确的实时数据处理应用。在实际项目中,建议根据具体的业务需求和数据特征,选择合适的时间语义并优化相关参数配置。
2025-11-03 08:00:00
312
原创 深入理解 Flink SQL 状态:原理、应用与优化
Flink SQL 的状态管理是实现复杂实时计算任务的关键。深入理解状态的原理、应用场景,并掌握有效的管理和优化技巧,能够让我们在大数据实时处理中更加游刃有余。通过合理配置状态后端、设置 TTL 和利用状态压缩等手段,不仅可以提升系统性能,还能确保任务的稳定性和可靠性。希望本文能帮助你在 Flink SQL 的状态管理方面有更深入的认识和实践能力。在实际应用中,不断探索和优化,让 Flink SQL 在你的大数据项目中发挥最大价值。
2025-10-26 09:29:18
855
原创 Flink SQL 中的 Join 操作:从原理到实践,一篇讲透
Flink SQL中的Join操作是实时数据处理的核心组件,本文深入解析了不同Join类型的特点及应用场景。与传统数据库不同,流式Join需要解决历史数据存储和延迟处理问题。主要Join类型包括:内连接(保留匹配数据)、外连接(保留不匹配数据)、间隔连接(基于时间范围关联)和Lookup Join(流与维表关联)。文章特别强调了性能优化技巧,如合理设置状态TTL、使用Interval Join自动清理状态、优化维表缓存策略等,并提供了常见问题解决方案。
2025-10-23 08:00:00
792
原创 Kafka Producer 如何实现Exactly Once消息传递语义
Kafka中的Exactly-Once语义确保消息既不会丢失也不会重复,仅幂等性无法保证完整的Exactly-Once语义,必须结合事务机制和消费者隔离级别才能实现。事务机制增强了Kafka的故障恢复能力,确保即使在Producer崩溃重启的情况下,仍能维持Exactly-Once语义。
2025-05-23 17:05:28
893
原创 Flink的端到端的Exactly Once你真的实现对了吗?
很多开发者包括本人也一直以为Flink SQL任务中设置'execution.checkpointing.mode'='EXACTLY_ONCE',就能实现消息的端到端的Exactly Once传递。设置完参数后,很少有开发者去检查消息传递语义是否符合预期。接下来通过一个例子进行说明。
2025-05-20 08:02:32
492
原创 吃透StarRocks分区、分桶
在StarRocks中,表被划分成多个Tablet,多副本场景下,每个Tablet多副本冗余存储在BE(Backend)上。对于单分区表、数据在逻辑上划分为多个桶(Bucket),每个桶的数据称之为一个Tablet。如果设置为单分区单桶,那么无论数据量大小,都只会有一个Tablet,因为所有数据都属于同一个桶。
2024-11-05 07:15:00
1471
原创 数据仓库-数仓分层建设
通过在数据仓库中创建可重用的数据模型,可以减少数据的重复处理,提高数据的处理效率。通过在数据仓库的不同层次上进行数据聚合和汇总,可以提高查询性能,尤其是在面对大量数据时。通过在数据仓库中间层(如ODS层,操作数据存储层)确保数据的一致性,可以减少数据冗余和错误。通过分层,可以容易地对数据进行维护和更新。每一层的数据都具有特定的用途和结构,这使得数据的管理和维护变得更加简单。随着业务的发展,数据量和复杂性可能会增加。分层设计可以更容易地扩展数据仓库,以适应不断变化的需求。
2024-10-13 17:11:47
1270
1
原创 数据仓库系列01-规划篇
数仓架构师需要对数仓分层、业务分类、数据域、业务过程、数据集市、主题域进行设计。当企业业务比较复杂,不同类型业务彼此间需要共享数据域,但是又希望能在模型设计和应用过程中快速定位本业务的数据时,可结合真实业务情况,规划不同的业务分类,在后续建模的维度表和明细表中,将其关联到对应的业务分类中。:数据域是一个较高层次的数据归类标准,是对企业业务过程进行抽象、提炼、组合的集合,是企业业务人员在使用数据时第一个分组入口,可以帮助企业业务人员快速的从海量的数据中快速圈定到自己的业务数据。该层级有应用表、维度表。
2023-12-30 02:32:16
609
原创 数据仓库-核心概念
数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量及控制。
2023-09-10 09:56:53
1251
原创 python使用selenium库 ChromeDriver版本不匹配问题
【问题】Session not created:This version of ChromeDriver only supports Chrome version 96【解决】1、访问以下网址下载Chrome对应版本的Driverhttps://chromedriver.storage.googleapis.com/index.html2、将解压好的chromedriver.exe移动到python安装目录运行cmd,Windows 命令行窗口执行 where pytho
2022-03-15 09:50:50
1987
原创 Spark Streaming-NetworkWordCount
目录一、spark streaming编程步骤二、spark streaming官方示例流程研究1、NetworkWordCount2、本地运行a.设置参数:localhost 9999b.终端键入nc -lk 9999,并输入文字进行测试c.查看程序执行日志一、spark streaming编程步骤构建streamingcontext(ssc) 指定输入源...
2019-10-05 14:59:54
544
原创 linux 客户端ssh到root
1、设置root用户密码执行命令passwd设置密码2、apt-get install openssh-server3、修改sshd_config文件,找到PermitRootLogin 配置项将原先的PermitRootLogin的prohibit-password修改为yesvi /etc/ssh/sshd_configPermitRootLogin yesPermi...
2019-09-23 23:32:01
389
1
原创 后台启动kafka
sudo bin/kafka-server-start.sh -daemon config/server.properties
2019-09-13 00:42:00
453
原创 kafka 0.11.0.2 安装
1、下载kafkahttps://archive.apache.org/dist/kafka/0.11.0.2/kafka_2.11-0.11.0.2.tgz2、解压tar xvf kafka_2.11-0.11.0.2.tgz3、添加hostvim /etc/hosts添加如下host192.168.0.1 test.kafka1192.168.0.2 test...
2019-07-27 17:44:00
1057
原创 zookeeper3.5.5安装
1、下载zookeeperhttp://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.5.5/apache-zookeeper-3.5.5-bin.tar.gz2、解压zookeepertar xvfapache-zookeeper-3.5.5-bin.tar.gz3、添加hostsvim /etc/hosts192....
2019-07-27 17:03:37
3256
2
转载 Win7虚拟机无法打开内核设备:\\Global\\vmx86
原文地址:https://jingyan.baidu.c在百度知道上,多次看到知友提出:虚拟机无法打开内核设备“\\.\Global\vmx86“的问题。如:无法打开内核设备“\\.\Global\vmx86”: 系统找不到指定的文件。你想要在安装 VMware Workstation 前重启吗?未能初始化监视器设备。我们应该如何来解决这个问题呢?工具/原料 硬件:计算机 ...
2019-04-24 18:26:35
2398
原创 Jenkins安装
官网下载war包,本文用的是jenkins.war 2.138.1版本java -jar jenkins.war --httpPort=8899浏览器访问 http://host:8899,输入密码(初始密码在/root/.jenkins/secrets/initialAdminPassword)登录后安装jenkins推荐的插件 ...
2018-10-10 14:40:39
245
转载 java的异常(Exception)信息的详细记录
原文地址:http://blog.youkuaiyun.com/long95wang/article/details/8089489获取Exception的详细信息 我自己运行测试的环境:windowsXP、eclipse3.5.1、jdk1.6下面的三个方法都是获取异常的详细信息,或许的异常详细信息以字符串的形式返回,保持栈堆载的风格 方法一:public sta
2017-02-15 14:55:21
2289
转载 使用System.arraycopy()实现数组之间的复制
原文地址:http://blog.youkuaiyun.com/kesalin/article/details/566354System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制。其函数原型是:public static void arraycopy(Object src, int srcPos,
2017-01-20 19:42:41
4741
转载 jedis操作详解-List
原文地址:http://www.open-open.com/lib/view/open1385173172698.html在Redis中,List类型是按照插入顺序排序的字符串链表。和数据结构中的普通链表一样,我们可以在其头部(left)和尾部(right)添加新的元素。在插入时,如果该键并不存在,Redis将为该键创建一个新的链表。与此相反,如果链表中所有的元素均被移除,那么
2017-01-20 19:30:37
1787
转载 解决谷歌浏览器中的input背景色默认是黄色
原文地址:http://www.cnblogs.com/yjhua/p/5523447.html请查看 http://www.cnblogs.com/zhaokai021/p/4625169.html input:-webkit-autofill { -webkit-box-shadow: 0 0 0px 1000px white inset !important
2016-09-19 13:57:23
3579
转载 Spring Security笔记:自定义Login/Logout Filter、AuthenticationProvider、AuthenticationToken
原文地址:http://www.cnblogs.com/yjmyzz/p/how-to-custom-filter-provider-and-token-in-spring-security3.html
2016-09-19 00:30:56
869
转载 Linux查看CPU和内存使用情况
原文地址:http://www.cnblogs.com/xd502djj/archive/2011/03/01/1968041.html在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要。在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况。运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 -- 用基于
2016-09-18 14:42:10
803
vue2开发微信公众号网页登录后重定向的问题
2018-01-31
ajax访问servlet打印xmlhttp.status状态总是错误
2013-12-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅