- 博客(15)
- 问答 (2)
- 收藏
- 关注
原创 kafka源码学习(一)Producer源码
以为例,异步调用send方法执行后,调用的doSend()方法,核心流程如下:同步等待,拉取元数据maxBlockTimeMs:最长等待时间this.maxBlockTimeMs - waitedOnMetadataMs:还剩余多长时间可以使用对消息的key和value进行序列化根据分区器选择消费应该发送的分区确认消息的大小是否超过了最大值,默认是1M,实际使用过程会修改根据元数据信息,封装分区对象给每一条消息都绑定回调函数,因为样例中使用的是异步调用的方式把消息放入。
2024-04-06 18:57:19 816 1
原创 FlinkSQL学习笔记(四)常见表查询详解与用户自定义函数
1、本篇只列举一些特殊的查询方式,掌握这些查询语句的基本使用概念即可,实际用到的时候进行查询即可。2、通过对这些例子的编写,感觉Flink相比hive中常见的查询方式,更多地从时间角度进行了更新迭代,需要注意Lookup Join和Temporal Joins区别3、自定义函数,大致了解就行,后续用到直接套模板。
2024-03-24 15:36:34 1001 1
原创 FlinkSQL学习笔记(三)常用连接器举例
1、了解upsert kafka、JDBC、FileSystem、等连接器的使用场景,使用过程核心要点,2、掌握cdc连接器的使用要点,完成源码编译过程;3、问题:在flinkSQL中,端到端的一致性是通过什么方式保证的?答:1、upsert kafka本身是为了解决flink向kafka写数据是append-only的模式【只有+I这一种Changemode】,使用过程中注意需要制定key,作为update或者delete的标志。
2024-03-14 00:02:45 795 1
原创 FlinkSQL学习笔记(二)表定义详解
表的表示结构catalog name:元数据空间,常用于标识不同的“源”,比如hive catalog,inner catalog等;使得Flink里面创建的表hive中能查到,但是不一定可以取数,原因在于这里不同的“源”的定义在hive中没有,不一定可以查到。更多细节参考补充说明。database name:通常语义中的“库”table name:通常语义中的“表”表与视图FlinkSQL中的表,可以是Virtual的(view视图)和regular的(table常规表)
2024-02-24 16:50:02 901
原创 FlinkSQL学习笔记(一)快速入门
FlinkSQL是架构于 flink core 之上用 sql 语义方便快捷地进行结构化数据处理的上层库;(非常类似 sparksql 和 sparkcore 的关系)由于FlinkSQL建立在Flink core的基础之上,这里进行先对一个简单的FlinkSQL编程过程进行说明。FlinkSQL编程包括TableAPI和SQLAPI,运用中更多地使用SQLAPI,这里对于TableAPI不做详细介绍,后续用到的时候再进行详细介绍。此外,在编程方式上,两种SQL可以进行混合使用。
2024-02-03 20:39:50 1009 1
原创 Flink应用学习笔记(六)End-to-end Exactly Once
基于前面对Flink基础的学习,本章在对基础知识点的了解基础上,开始尝试使用Flink进行更进一步的应用。本周在工作中,同事遇到了使用Flink中两阶段提交的机制,因此,在应用篇中对两阶段提交进实现端到端的Exactly Once进行介绍。。当然,本帖子只作为学习用,实际应用场景会更加复杂,关于实践过程中的问题欢迎留言交流。
2023-12-31 13:30:50 879
原创 Flink基础学习笔记(五)time+watermark+window
时间不是绝对的,不同“世界”中的时间语义各不相同。本流处理中的时间本质上可以是一个普通的递增字段,不一定表示真实的时间。Ingestion Time:事件-数据进入Flink的时间,一般不用。:表示的是真实世界的时间,执行操作算子的本地系统时间,与机器相关。Processing Time在使用时是直接调取系统的时间,考虑到多线程或分布式系统的不确定性,所以它每次运行的结果可能是不确定的。Event Time:是数据当中包含的时间。
2023-12-17 18:37:19 76 1
原创 Flink基础学习笔记(四)Checkpoint与重启策略
Checkpoint机制是Flink可靠性的基石,可以保证Flink集群在某个算子因为某些原因(如异常退出)出现故障时,能够将整个应用流图的状态恢复到故障之前的某一状态,保证应用流图状态的一致性。检查点的两种实现:(1)检查点算法的简单实现–暂停应用,保存状态到检查点,在重新恢复应用(2)Flink基于检查点算法的优化实现–基于Chandy-Lamport算法的分布式快照,将检查点的保存和数据分开处理,不需要暂停整个应用,这里引入State Backend的概念。
2023-12-10 02:35:56 483 1
原创 Flink基础学习笔记(三)State
State:一般指一个具体的task/operator的状态。KeyedState。state是task级别的state,说白了就是每个task对应一个state,上图就是一个OperatorState,keyedstate记录的是每个key的状态,相比OperatorState用Key作为区分,OperatorState工作中相对少用。原始状态(raw state)和托管状态(managed state)。托管状态:由Flink框架管理的状态,我们通常使用的就是这种。原始状态。
2023-12-04 00:14:41 47
原创 Flink基础学习笔记(二)常用算子
单并行度数据源:SourceFunction;多并行度数据源:ParallelSourceFunction。此外,一般带RichXXXFunction里面可以实现更多的方法(包括初始化…等操作)。ParallelSourceFunction举例说明每秒产生一个number@Overridenumber++;@Override注意这些算子本身底层实现存在相互调用过程,这里的大部分算子和Spark中都是类似的,平时使用过程中注意灵活运用。
2023-12-03 17:06:00 60 1
原创 LLM与数据分析
本文主要以LLM的应用为基础,说明LLM与数据开发、数据分析领域的相关工作以及未来可能存在的发展。搜索在传统数据库,搜索功能都是基于不同的索引方式(B Tree、倒排索引等)加上精确匹配和排序算法(BM25、TF-IDF)等实现的。本质还是基于文本的精确匹配,这种索引和搜索算法对于关键字的搜索功能非常合适,但对于语义搜索功能就非常弱。
2023-11-06 21:32:23 788
原创 Doris笔记(一)调研综述
2、独特的数据模型。在百度内部支持超过200个产品线,集群规模上千台,数据规模超过10PB,经受长期的生产验证。查询时,无需加载全部列,减少不必要的开销。1、key-value系统只能读取全key,全value,分析报表并不需要全列,因此带来不必要的开销。2、列存储结构,使得可以通过向量化执行引擎进行优化,同时更好地进行数据压缩,提搞压缩比。不过需要注意的是,在Doris的架构设计中,并不是简单地进行了整合,底层也进行了修改。2、扩展性差:业务数据分配到了不同的节点,节点过多,元数据的管理则相对困难。
2023-10-16 16:38:47 274 1
原创 Flink源码分析(一)RPC通信和JobManager启动
Flink使用Akka+Netty框架实现RPC通信,之前在spark框架源码剖析过程中已经对Akka实现RPC通信过程有所介绍,这里不做过多描述。是管理Actor生命周期的组件,Actor是负责进行通信的组件。每一个Actor都有一个MailBox,别的Actor发送给它的消息都首先存储在MailBox中,通过这种方式可以实现异步通信。每个Actor都是单线程的处理方式,不断地从MailBox中拉取消息进行执行处理,所以对于Actor的消息,不适合调用会阻塞的处理方法。
2023-10-02 00:36:44 224 1
原创 hive笔记(一)
Hive作为大数据领域常用的数据仓库组件,在平时设计和查询时要特别注意效率。影响Hive效率的几乎从不是数据量过大,而是数据倾斜、数据冗余、Job或I/O过多、MapReduce分配不合理等等。对Hive的调优既包含Hive的建表设计方面,对HQL语句本身的优化,也包含Hive配置参数和底层引擎MapReduce方面的调整。Hive的建表设计HQL语法和运行参数层面Hive 架构层面Hive 数据倾斜总之,Hive调优作用:在保证业务结果不变的前提下,降低资源的使用,减少任务的执行时间。
2023-09-05 21:34:49 78
学习kafa的笔记,可以看看目录选择下载
2023-06-01
C语言(一般没人知道的问题)
2016-12-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人