自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

曾用名:这个程序猿可太秀了

  • 博客(308)
  • 资源 (18)
  • 收藏
  • 关注

原创 NoUniqueKey问题和Regular join介绍

核心类if (!} else {} else {将数据存储于本侧的状态中根据join key去另一侧的状态中获取数据并且match在flinksql对changelog的处理中将数据分为了Accumulate(insert/update_after)和Retract(delete/update_before)两类。if input side is outer //本侧是outer join。

2025-05-06 19:08:03 900

原创 flink Unsupported operand types: IF(boolean, NULL, String)

结果遇到了 Unsupported operand types: IF(boolean, NULL, String),根据报错反馈,很明显应该是没有对 null 自动转换(Spark 是会自动转的)if 的源码我以前看过,就是calcyte自动生成的,在org.apache.flink.table.planner.codegen.calls 的 IfCallGen 类。问题:业务方存储了NULL 字符串,需要处理为 null。

2024-04-22 20:16:31 630 1

原创 Checkpoint 源码探查

一个Job的JobManager,每个job在同一时刻有且仅有一个JobMaster。在HighAvailability配置下,由JobMasterServiceLeadershipRunner参与选举,成为Leader后,启动相应job的JobMaster,并启动job。

2024-03-23 16:10:02 686

原创 Flink TopN源码

按顺序遍历treeMap,当遍历过程中发现遍历的key与当前数据的key相同时,和当前数据key相同的所有数据数据(dataState中的LIST),全部撤回并且更新他们的rowNumber+1。那接着去org.apache.flink.table.planner.plan.nodes.exec.stream包下找,里面有StreamExecRank,核心代码就在这了。整个处理流程差不多就结束了,可以看到rowNumber当N较大且排序变化频繁的时候,性能消耗还是非常大的,极端情况下游的数据会翻很多倍。

2024-03-17 17:47:26 739

原创 Flink window 源码

当数据来的时候,调用Trigger判断是否需要触发计算,如果调用结果只是Fire,则计算窗口并保留窗口原样,窗口中的数据不清理,数据保持不变,等待下次触发计算的时候再次执行计算。增量计算指的是窗口保留一份中间数据,每流入一个新的元素,新的元素都会与中间数据两两合一,生成新的中间数据,再保留到窗口中,如:ReduceFunction、AggregateFunction、FoldFunction(过期)。在窗口函数计算完成后,如果窗口已经结束,则调用窗口函数的close方法,表示窗口已经结束。

2024-03-17 16:51:37 63

原创 Flink SQL 执行框架源码

2. 然后使用优化器基于规则进行等价变换,例如我们比较熟悉的谓词下推、列裁剪等,经过优化器优化后得到最优的查询计划(RelNode–>RelNode),先基于calcite rules 去优化logical Plan, 再基于Flink定制的一些优化rules去优化logical Plan。经过优化器处理后,得到的逻辑树中的所有节点都是FlinkPhysicalRel ,以待生成物理执行计划了,也就是第三步 translateToExecNodeGraph()

2024-03-16 16:46:50 70

原创 Flink

待迁移。

2024-02-27 00:54:30 122

原创 Flink 源码编译

切换到alibaba的setting.xml(外网地址网速不好可能失败),顺便清理下idea的缓存(Invalidate and Restart,”File" -> "Invalidate Caches / Restart"),再试试,就OK了。可能你用的是公司的maven仓库,导致一些依赖下载失败,看看右边maven的依赖图也可以看出来,依赖缺失会有红线(下图我这个是正常的)方式2:从 git 上下载,然后手动导入项目,flink 官网介绍也是这种。方式1:直接 get from vcs。

2024-02-07 21:18:53 1438

原创 FlinkSql通用调优策略

使用DataGenerator 提前进行压测,了解数据的处理瓶颈、性能测试和消费能力开启minibatch:"table.exec.mini-batch.enabled", "true"开启Local+Global 两阶段聚合:"table.exec.mini-batch.enabled", "true"解决数据倾斜问题:流式倾斜,开启minibatch窗口类有界操作,传统的两阶段聚合的方式数据源分布就不均匀,做reblance针对大状态开启rocksdb。

2024-02-07 21:15:17 2517 3

原创 Flink 状态和容错

状态是什么:其实状态并不是flink独有的特性,状态在生活中普遍存在和使用,只是近些年在实时任务这些词汇会被频繁提及离线其实也有,比如Remote Shuffle Service,对于整个任务来说,每个 Stage 的结果就是状态,而Remote Shuffle Service 就起到了的作用场景示例:一个消费上游 Kafka,使用 Set去重计算 DAU 的实时任务。kafka。

2024-02-07 20:28:47 2565

原创 Flink流式数据倾斜

KeyBy 前数据已经不均匀了,可能是Topic 每个分区的数据不一致(较为少见),或者上游task处理以后导致的数据不均匀,导致下游operate chains的某个task压力很大。流式处理的数据倾斜和 Spark 的离线或者微批处理都是某一个 SubTask 数据过多这种数据不均匀导致的,但是因为流式处理的特性其中又有些许不同。窗口操作类似Spark的微批处理,直接两阶段聚合的方式来解决就可以。开启minibatch 和 global,牺牲时效性,减少输出数据量。2.3 keyby类。

2024-02-07 20:21:34 1657

原创 flink反压及解决思路和实操

我这个是并行度是 4 ,所以会有 0、1、2、3 代表是哪个 subTask(task 下每个并行task),其中看到的比较多的是这两个,outPutUsage 代表发送端 Buffer 的使用率,inPutusage 代表的接收端 Buffer 的使用率。也可能是 TaskManager 的内存引起的 GC 问题,也会导致反压,我们一般使用 G1 回收机制,有可能是 TaskManager JVM 各区内存分配不合理导致频繁的 Full GC。,比如大促时流量激增,或者使用了数据炸开的函数。

2024-02-07 20:16:47 4277

原创 详述FlinkSql Join操作

Full Join:流任务中,左流或者右流的数据到达之后,如果没有 Join 到另外一条流的数据,就会等待(左流放在左流对应的 State 中等,右流放在右流对应的 State 中等),如果之后另一条流数据到达之后,发现能和刚刚那条数据 Join 到,则会输出。Full Join:和Left原理一样,左流或者右流的数据到达之后,无论有没有 Join 到另外一条流的数据,都会输出,如果一条流的数据到达之后,发现之前另一条流之前输出过没有 Join 到的数据,则会发起回撤流。

2024-02-07 16:13:10 4031

原创 FlinkSql 窗口函数

以前用的是Grouped Window Functions(分组窗口函数),但是分组窗口函数只支持窗口聚合现在FlinkSql统一都是用的是Windowing TVFs(窗口表值函数),Windowing TVFs更符合 SQL 标准且更加强大,支持window join、Window aggregations、Window Top-N、Window Deduplication

2024-02-07 16:06:10 3245

原创 Flink Sql大汇总

Flinksql 大而全的学习后汇总,一文带你学会FlinkSql

2024-02-03 10:05:07 236

原创 flink写入paimon流程代码

RowDataStoreWriteOperator继承TableWriteOperator,这个类又通过provider初始化了write,RowDataStoreWriteOperator类刚才用到了父类TableWriteOperator的write对象。以StoreSinkWrite.Provider是StoreSinkWriteImpl为例,那上面的write()实际调用就是这个类的write()最终走到了MergeTreeWriter的write(),判断内存是否满了,满了就溢出磁盘。

2024-01-30 14:19:44 1086

原创 数据质量和治理论

数据质量和数据治理,这个概念很大不是一两个人可以处理的问题,但是又不得不做,往往需要整个团队或者跨团队协作尽量去处理好这个事情以下是一些方法论。

2024-01-29 14:23:23 1031

原创 spark window源码探索

1. WindowExec 物理执行逻辑入口,主要doExecute()和父类WindowExecBase2. WindowFunctionFrame 窗框执行抽象,其子类对应sql语句的不同窗框其中又抽象出BoundOrdering类, 用于判断一行是否在界限内(Bound), 分为RowBoundOrdering和RangeBoundOrdering我们的UDAF在何时已什么顺序接受数据, 何时会被执行eval, 都取决于窗框内方法调用逻辑!

2024-01-29 13:57:15 1070

原创 Apache Paimon官网学习记录

paimon在官网的学习,简单记录一下其中的核心特点。

2024-01-29 10:35:36 2262

原创 sql执行计划源码探索

大致的流程是这样的,先记好每个阶段,我们来一起探索每个阶段在哪里,又做了什么。

2024-01-28 13:05:16 950

原创 Spark Exchange节点和Partitioning

spark exchange和不同的分区方式

2024-01-28 12:51:17 1475

原创 flink if函数false时对字符串做阶段的bug

我们之前在使用flink1.12时候也没有发现问题,但是最近一个1.15的任务出现了一个bug。最终在flink issues找到了这个bug,在这个issues里对代码做了修复。我们找了一下这个函数,发现代码确实是这样理解的,但是和官网描述明显不一致。flink官网对if函数就是我们正常的理解。本来应该返回cdefg,但是返回了cde。合并这个issues,问题解决。

2024-01-21 17:33:11 738

原创 Spark AQE源码探索

Spark AQE特性介绍和AQE源码的学习和分享

2024-01-19 10:49:35 1391 1

原创 spark dateformat源码排错

有一个任务 yyyy写成了YYYY,导致年份不对触发告警第一时间用spark dateformat搜索下看看官网,发现spark 官网也没有描述YYYY的信息。

2024-01-18 19:47:02 573

原创 Apache Paimon学习记录

根据官网介绍去快速了解 paimon 是用来设计做什么,可以做什么,对比与其他数据湖有什么特点,如何使用。

2023-09-18 17:16:20 282

原创 ClickHouse 使用介绍

ck介绍

2023-06-06 16:40:36 1749

原创 Vue学习记录

plugin插件:用于增强Vue,包含install方法的一个对象,install的第一个参数是Vue,第二个以后的参数是插件使用者传递的数据,比如vuex就是插件,了解即可,后面很多插件都是封装好的。脚手架结构, render函数,vue.config.js,package.json,vue.js和vue.runtime.xxx.js的区别,有兴趣在了解下就可以。v-if,v-else,v-else-if ,就是if else,他指定了条件为true才渲染,否则不渲染,渲染多个元素,可以用的组合方式。

2023-05-10 16:35:42 720

原创 Apache Doris使用总结

doris简介到特性到一些简单的进阶用法

2023-05-04 17:22:15 10565

原创 数据仓库建模规范

数据仓库建模规范

2023-01-13 14:31:12 693

原创 jar包获取resource下配置文件路径

我们在代码里可以这样写但是打成jar包后就不行了,我们有很多方法获取jar包路径或者resource下文件路径但是打印后你会发现路径里面带 !,此时就算你去掉!也不行就算把路径copy到linux,用cat命令也显示文件不合法,猜测打包之后的jar就是无法获取的但是我们可以读取文件,然后写入固定路径,再使用......

2022-07-12 17:08:59 5285

原创 公司用户画像项目总结

在画像项目中,自己对于用户画像的一些理解,和如何处理公司画像项目的一些总结

2022-07-08 10:57:35 1302

原创 数据中台概念

数据中台处理的事情和架构

2022-06-28 19:45:00 322

原创 数据埋点的一些问题和想法

公司当前埋点现状的一些记录和想法

2022-06-28 15:11:55 253

原创 实时数据仓库

实时数据仓库的一些分层和分层需要处理的事情,以及数据流向

2022-06-28 11:32:51 1476

原创 Spark常用函数

Hive常用函数总结,适用于符合SQL规范的数据库和Spark等分析引擎

2022-06-20 17:35:00 1078

原创 Flink 细粒度的滑动窗口解决方案

FlinkSql已经都在用TVF window了,已经在框架层面解决这个问题了,已迁移。

2022-04-07 15:11:10 1704 1

原创 Flink Checkpoint过程

已迁移。

2022-04-02 16:11:40 2284

原创 详述FlinkSql Join操作

已迁移。

2022-03-31 19:41:27 1838

原创 flink调优经验总结

已迁移。

2022-03-31 16:23:14 1748

原创 Flink流式数据倾斜

已迁移。

2022-03-31 09:54:36 1688

vcruntime140_1找不到解决方案的文件.rar

遇到了vcruntime140_1.dll文件的问题,这个是对于找不到vcruntime140_1.dll文件的问题的解决方案,把他下载解压放到winows系统目录下即可

2020-07-08

kafka-manager

kafka的监控工具,功能很强大,而且可以监控多个kafka集群,安装简单,监控的东西很多,包括集群信息topic消费者等等等等

2020-06-13

kafka监控工具KafkaOffsetMonitor.rar

Kafka Monitor是kafka的监控工具,安装简单,页面简单,主要是用来监控消费者和offset,属于使用率相当高的一个kafka管理工具了

2020-06-13

8篇个性化搜索(personalization search)的论文

Résumé : Les réseaux sociaux et les sites web collaboratifs ont connu un essor incroyable. Ils orent des opportunités d'améliorer la recherche d'information sur Internet, mais la quantité de données à traiter est gigantesque. De plus, les utilisateurs sont peu enclins à publier leurs prols personnels pour faciliter la navigation des autres utilisateurs.

2019-04-26

反编译软件

xjad反编译软件,它由集成代理和集成服务器组成。集成代理可以使用可插拔读卡器从具有可配置查询条件的数据源中获取数据,然后将数据转发给集成服务器,以使用用户定义的转换逻辑进行摄取。在进行数据导出时,也可以反向使用集成代理。

2019-04-26

spark机器学习——黄美玲

spark作为分布式机器学习的龙头,这本书是非常好的spark机器学习的书籍,黄美玲的这本书是卖的最好也是很多人去选择的一本书,分享给大家

2019-03-18

springboot搭建以及自定义全局异常

搭建springboot,运行项目,简单的springboot,利用包装器实现全局的错误异常吗和错误错误信息的自定义

2019-01-12

chromDriver

seleniumDriver,一个用来进行自动化测试和爬虫的工具,

2019-01-10

基于bootstrap的一套页面

一套bootstrap的页面,可以直接拿来用,兼容性自然不用说了,肯定是兼容各个版本的,注意是一套

2019-01-10

页面布局和自定义分页展示

用bootstrap框架搭建的页面布局,还有自定义的页面展示,要比分页插件的好看许多

2019-01-10

3d立体旋转标签云

js和css完成标签云的制作,标签云立体展示,不断旋转的立体效果

2019-01-10

美观的错误页面

一个比较好看的错误页面,错误页面也可以去做的个性化一点和美观一点

2019-01-10

报表页面3(echarts)

https://mp.csdn.net/postedit/86164826,使用echarts做报表的展示

2019-01-10

报表页面2(echarts)

https://mp.csdn.net/postedit/86164826,echarts做报表

2019-01-10

报表页面{echarts}

https://mp.csdn.net/postedit/86164826,使用echarts去做报表的展示

2019-01-10

sm整合phoenix和连接池(xml和注解两种方式)

springboot整合mybties利用xml和注解两种方式操作phoenix,连接池使用比较快的HikariCP,通过实体类对应的增删改查等方法操作hbase的表,使用分页,这个东西有点新,网上一直没找到,就自己写了一个

2018-10-15

springboot+mybaties+phoenix+HikariCP

springboot整合mybties操作phoenix,连接池使用比较快的HikariCP,通过实体类对应的增删改查等方法操作hbase的表,使用分页,这个东西有点新,网上一直没找到,就自己写了一个

2018-09-29

hbaseTemplate

spring整合hbase使用hbaseTemplate操作hbase数据库,本项目是基于注解的形式

2018-09-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除