- 博客(139)
- 资源 (2)
- 收藏
- 关注
原创 .gitignore未生效解决思路
根据以上可能性逐一排查,通常问题出在规则生效前文件已被追踪或规则书写不正确。调整后记得重新提交更改以确保忽略规则生效。
2025-04-09 16:12:43
1980
原创 基于Flink SQL的周维度聚合指标模型
该SQL实现从es_source表读取近7天数据,按周维度聚合统计指标(成功率/失败率/取消率),并与上周数据进行环比计算,最终将结果写入es_sink表。通过日期函数动态计算周维度使用窗口函数获取上周数据计算周环比增长率。周计算口径从周五到下周四算新的一周,即:[Fri, next-Thu]fill:#333;color:#333;color:#333;fill:none;创建es_source表创建es_sink表生成周维度聚合视图tmp1获取上周数据视图tmp2。
2025-03-20 10:11:27
956
原创 基于Flink SQL的实时指标多维分析模型
1.创建源表kafka接入消息队列数据,定义字段映射规则;2.创建目标表es_sink配置Elasticsearch输出;3.通过多级视图(tmp→tmp_dedup→tmp1/tmp2→tmp3→tmp_groupby)实现数据清洗、去重、状态计算;4.使用ROLLUP进行多维聚合统计;5.最终计算结果写入ES,包含成功率等衍生指标。
2025-03-10 18:27:25
436
原创 面向对象编程的设计原则
面向对象7大设计原则总结单一职责原则(SRP): 类应该有且仅有一个引起它变化的原因。开闭原则(OCP): 软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。里氏替换原则(LSP): 子类对象必须能够替换其基类对象。接口隔离原则(ISP): 接口应该小而精,接口中的方法应该尽量少,客户端不应该依赖它不需要的接口。依赖倒置原则(DIP): 针对接口编程,而不是针对实现编程;依赖抽象,而不依赖于具体类。迪米特法则(LOD): 一个对象应该只与其直接朋友通信。
2025-02-12 16:05:56
983
原创 springboot项目报错问题总结
分析问题从最后一行看问题:说明在standardTaskServiceImpl bean中注入的syyyAccountServiceImpl,导致循环依赖了。如下:解决问题可能的解决方案:重构代码以消除循环依赖:将某些依赖改为方法注入: 如果可能,使用方法注入而不是构造函数注入,这样可以延迟依赖的解决,直到bean实际需要它为止。引入一个中间层: 通过引入一个新的服务或者将某些功能拆分到不同的类中,以消除循环依赖。使用@Lazy注解:在一个或多个依赖的bean上加上@Lazy注解,这会
2024-11-28 10:31:39
1019
原创 一文通透Flink端到端精确一次语义:原理、实现与最佳实践
Flink端到端的精确一次语义是流处理中的关键概念,涉及状态一致性和结果正确性。这一特性涵盖了整个数据处理流程,包括数据源、流处理器和外部存储系统三个主要组件。Flink内部通过检查点机制实现精确一次语义,但要达到端到端的一致性,还需要考虑输入和输出端的保证:输出端:需要实现以下两种写入方式之一:a) 幂等写入:操作可重复执行,但只导致一次结果更改实现端到端精确一次语义虽然复杂,但对于要求高数据一致性的应用来说至关重要。
2024-09-14 15:33:27
1760
原创 Mysql explain 优化解析
MySQL 中 EXPLAIN 语句的 select_type 列描述了查询的类型,不同的 select_type 类型在效率上会有所差异。当然,实际的效率还受到其他因素的影响,如表的大小、索引情况、查询条件等。因此在实际使用中,我们还需要通过 EXPLAIN 语句分析具体的查询计划,并根据结果进行针对性的优化。同时,也要注意查询的语义和可读性。有时为了提高效率,可能需要牺牲一些查询的可读性,这需要权衡取舍。
2024-07-23 12:00:40
1150
原创 Flink-cdc更好的流式数据集成工具
Flink CDC 是基于Apache Flink的一种数据变更捕获技术,用于从数据源(如数据库)中捕获和处理数据的变更事件。CDC技术允许实时地捕获数据库中的增、删、改操作,将这些变更事件转化为流式数据,并能够对这些事件进行实时处理和分析。Flink CDC提供了与各种数据源集成的功能,包括常见的关系型数据库(如MySQL、PostgreSQL、Oracle等)以及NoSQL数据库(如MongoDB、HBase等)。
2024-05-23 14:38:59
2195
原创 归并排序经典案例
虽然jdk已经不推荐使用了(已经被更高效的排序方法所取代),但不妨碍我们去学习研究,此乃归并排序的经典实用案例。将一个数组在给定的起始区间内进行排序,
2024-05-15 16:13:26
195
原创 插入排序与冒泡排序的区别
基本思想:依次比较相邻的两个数,将小数放在前面,大数放在后面。由于在排序过程中(以升序为例)总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。主要通过两层循环来实现,是稳定的排序方法。
2024-05-15 10:54:27
401
原创 FlinkSQL State的生命周期
FlinkSQL state 生命周期配置对于有状态计算的流连接和分组聚合操作,用户可以通过 STATE_TTL 来指定算子粒度的,该方式的状态配置优先级大于作业级别的状态优先级配置。
2024-04-17 21:55:04
672
1
原创 Timeplus-proton流处理器调研
Timeplus是一个流处理器。它提供强大的端到端功能,利用开源流引擎Proton来帮助数据团队快速直观地处理流数据和历史数据,可供各种规模和行业的组织使用。它使数据工程师和平台工程师能够使用 SQL 释放流数据价值。Timeplus 控制台可以轻松连接到不同的数据源(例如 Apache Kafka、Confluence Cloud、Redpanda、NATS、Web Socket/SSE、CSV 文件上传等)、通过 SQL 查询探索流模式、发送实时见解和向其他系统或个人发出警报,并创建仪表板和可视化。
2024-02-29 11:28:47
1594
原创 RisingWave最佳实践-利用Dynamic filters 和 Temporal filters 实现监控告警
刚过了年刚开工,闲暇之余调研了分布式SQL流处理数据库-RisingWave,本人是Flink(包括FlinkSQL和Flink DataStream API)的资深用户,但接触到RisingWave令我眼前一亮,并且拿我们生产上的监控告警场景在RisingWave上做了验证,以下是自己的心得体会:RisingWave架构简单,运维成本底,基于云原生(可以分别基于计算和存储动态伸缩),同时在开发上屏蔽了Flink等实时处理框架底层需要处理的一些技术细节(状态存储,数据一致性,分布式集群扩展等)。
2024-02-23 21:33:34
1203
原创 RisingWave的动态过滤器和时间过滤器的用法
动态过滤器能够实时过滤数据流,并允许定义传入数据必须满足的条件才能进行处理。动态过滤器demo测试数据消费。时间过滤器允许根据特定时间(例如当前时间、特定日期或日期范围)过滤数据
2024-02-21 21:27:32
568
原创 RisingWave分布式SQL流处理数据库调研
RisingWave 提供与 PostgreSQL 兼容的标准SQL接口。用户可以像使用 PostgreSQL 一样处理数据流。屏蔽了实时处理底层需要遇到的一些技术细节(状态存储,数据一致性,分布式集群扩展等),供应用方快速的开发实时数据流,进行流式ETL。具有以下特性:同步的实时性(可以保证实时的新鲜度,doris等OLAP引擎采用异步实时)、强一致性(doris等OLAP引擎仅提供最终一致性)、高可用、高并发、流处理语义、资源隔离。可以应用在一些数据看版,监控,实时指标等场景。
2024-02-20 19:05:38
1902
原创 Flink中StateBackend(工作状态)与Checkpoint(状态快照)的关系
只有基于 RocksDB state backend的状态快照才支持增量checkpoint,基于heap的并不支持默认情况下 checkpoint 是禁用的,需要手动开启:Flink状态分为Keyed State和非keyed State:Keyed State,可以使用RocksDB state backend和heap state backend。
2024-01-30 21:37:08
1814
1
原创 Flink问题解决及性能调优-【Flink rocksDB读写state大对象导致背压问题调优】
RocksDB是Flink中用于持久化状态的默认后端,它提供了高性能和可靠的状态存储。然而,当处理大型状态并频繁读写时,可能会导致背压问题,因为RocksDB需要从磁盘读取和写入数据,而这可能成为瓶颈。
2024-01-29 21:31:29
1766
原创 Flink问题解决及性能调优-【Flink根据不同场景状态后端使用调优】
Flink 实时groupby聚合场景操作时,由于使用的是rocksdb状态后端,发现CPU的高负载卡在rocksdb的读写上,导致上游算子背压特别大。通过调优使用hashmap状态后端代替rocksdb状态后端,使吞吐量有了质的飞跃(20倍的性能提升),并分析整理。
2024-01-26 11:53:33
1666
原创 Flink问题解决及性能调优-【Flink不同并行度引起sink2es报错问题】
最近需求,仅想提高sink2es的qps,所以仅调节了sink2es的并行度,但在调节不同算子并行度时遇到一些问题,找出问题的根本原因解决问题,并分析整理。
2024-01-25 23:09:23
1599
1
原创 Flink的KeyedProcessFunction基于Event Time和Process Time的定时器用法实例分析
KeyedProcessFunction是用来处理KeyedStream的。每有一个数据进入算子,则会触发一次processElement()的处理。它还提供了定时器的功能,在在预警、监控等场景特定场景下,非常适合。KeyedProcessFunction定时器包分为两种:基于事件时间、基于处理时间。下面以统计计数的方式展示这两种定时器的用法,并附上详细的分析思路。
2024-01-18 17:33:04
869
原创 FlinkSQL【分组聚合-多维分析-性能调优】应用实例分析
是否开启【MiniBatch 聚合】和【Local-Global 聚合】对分组聚合场景影响巨大,尤其是在数据量大的场景下
2024-01-16 10:51:32
900
原创 FlinkSQL中【FULL OUTER JOIN】使用实例分析(坑)
Flink版本:flink1.14最近有【FULL OUTER JOIN】场景的实时数据开发需求,想要的结果是,左右表来了数据都下发数据;左表存在的数据,右表进来可以关联下发(同样,右表存在的数据,左表进来也可以关联下发)。但在实际应用中遇到一些问题。
2024-01-04 18:02:25
1016
原创 FlinkSQL窗口实例分析
Windowing table-valued functions (Windowing TVFs),即窗口表值函数注意:窗口函数不可以单独使用,需要聚合函数,按照 window_start、window_end 分区,即存在:group by window_start,window_endTUMBLE函数采用三个必需参数,一个可选参数:data:是一个表参数,可以是与时间属性列的任何关系。timecol:是一个列描述符,指示数据的哪些时间属性列应映射到滚动窗口。
2023-12-28 15:14:51
1416
原创 flink watermark 实例分析
把一个现有的列定义为一个为表标记事件时间的属性。该列的类型必须为,且是 schema 中的顶层列,它也可以是一个计算列。watermark是触发计算的机制,只要,就会触发当前行数据的计算。
2023-12-21 10:28:02
1328
原创 FlinkSql-Temporal Joins-Lookup Join
在 Flink SQL 中,Temporal Joins 是一种常见的数据关联操作,特别适用于处理包含时间维度的数据。Lookup Join 是 Temporal Joins 的一种类型,它允许将流数据与维表数据进行关联。当您有一个实时的流数据流,并且需要与维表进行关联,以获取维度信息时,Lookup Join 是一个很有用的工具。例如,在电商领域,您可以将实时的订单流与商品维表进行关联,以获取商品的详细信息,如名称、价格、类别等。
2023-11-27 16:33:51
814
原创 java服务内存说明及配置详解
Non-Heap Space 翻译为非堆内存,也被称为Off-Heap(堆外内存),大家习惯于叫这部分内存为堆外内存。查看了很多国内外文章,对于这块内存,没有很统一的定义。广义上的Non-Heap除开Heap以外的所有内存,包括MetaSpace、NativeMemory(JNI Memory、Direct Memory等)、Stack、Code Cache等。下面讲解的Non-Heap是针对于广义的定义。狭义上的Non-Heap只包含Metaspace、code_cache。
2023-09-22 10:35:19
1128
转载 linux内核bug修复方案:网络设备引用计数泄漏
服务器安装Docker后,在进行服务重新部署后,出现 kernel:unregister_netdevice: waiting for veth2e632a2 to become free. Usage count = 1错误频繁输出,影响操作。适用内核版本:3.10.* 关键词:kernel:unregister_netdevice: waiting for … to become free. Usage count = 1问题现象。
2023-07-27 10:50:33
1004
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人