摘要:
题记部分 (1)Flume使用场景 线上数据一般主要是落地(存储到磁盘)或者通过socket传输给另一个系统,这种情况下,你很难推动线上应用或服务去修改接口,实现直接向kafka里写数据,这时候你可能就需要flume这样的系统帮你去做传输。 (2)Flume丢包问题 单机upd的flume sour 阅读全文
摘要:
题记部分 一、什么是状态一致性 有状态的流处理,内部每个算子任务都可以有自己的状态。对于流处理器内部来说,所谓的状态一致性,其实就是我们所说的计算结果要保证准确、一条数据也不应该丢失,也不应该重复计算,在遇到故障时可以恢复状态,恢复以后的重新计算,结果应该也是完全正确的。 二、状态一致性分类 (1) 阅读全文
![Flink - [08] 状态一致性](https://img2024.cnblogs.com/blog/1729889/202406/1729889-20240620095445890-527812639.png)
摘要:
一致性检查点(Checkpoints)、从检查点恢复状态、检查点的实现算法、Flink检查点算法、保存点(Savepoints) 阅读全文
![Flink - [07] 容错机制](https://img2024.cnblogs.com/blog/1729889/202406/1729889-20240617164611612-101489430.png)
摘要:
题记部分 一、Flink中的状态 由一个任务维护,并且用来计算某个结果的所有数据,都属于这个任务的状态。 可以认为状态就是一个本地变量,可以被任务的业务逻辑访问。 Flink会进行状态管理,包括状态一致性、故障处理以及高效存储和访问,以便开发人员可以专注于应用程序的逻辑 在Flink中,状态始终与特 阅读全文
![Flink - [06] 状态管理](https://img2024.cnblogs.com/blog/1729889/202406/1729889-20240617164540876-428093363.png)
摘要:
题记部分 一、时间语义 Flink中的时间语义分为以下, (1)Event Time:事件创建的时间 (2)Ingestion Time:数据进入Flink的时间 (3)Processing Time:执行操作算子的本地系统事件,与机器相关 哪种时间语义更重要? 不同的时间语义有不同的应用场合,我们 阅读全文
![Flink - [05] 时间语义 & Watermark](https://img2024.cnblogs.com/blog/1729889/202406/1729889-20240617160114087-1668019043.png)
摘要:
题记部分 一、Flink中的窗口是什么 (1)一般真实的流都是无界的,怎样处理无界的数据? (2)可以把无限的数据流进行切分,得到有限的数据集进行处理 —— 也就是得到有界流 (3)窗口(Window)就是将无限流切割为有限流的一种方式,它会将流数据分发到有限大小的桶(bucket)中进行分析。 二 阅读全文
![Flink - [04] 窗口(Windows)](https://img2024.cnblogs.com/blog/1729889/202406/1729889-20240617153221284-1763721166.png)
摘要:
使用scala编写flink api从不同的数据源(源端)读取数据,并进行无界流/有界流的数据处理,最终将处理好的数据sink到对应的目标端 一、maven配置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.a 阅读全文
![Flink - [03] API](https://img2024.cnblogs.com/blog/1729889/202406/1729889-20240617150656985-1326840730.png)
摘要:
题记部分 一、物理删除&逻辑删除 物理删除:delete from table_name where xxx = ?; 逻辑删除:update table_name set deleted = 0 where xxx = ?; 二、测试 (1)增加逻辑删除字段deleted(默认1,1:存在,0:删 阅读全文
![MybatisPlus - [05] 逻辑删除](https://img2024.cnblogs.com/blog/1729889/202406/1729889-20240612163820446-1878450189.png)
摘要:
limit m,n、PageHelper、MyBatisPlus分页插件 一、拦截器分页 (1)在MybatisPlusConfig中进行配置 @Bean public MybatisPlusInterceptor paginationInterceptor() { MybatisPlusInter 阅读全文
![MybatisPlus - [04] 分页查询](https://img2024.cnblogs.com/blog/1729889/202406/1729889-20240612163803247-1909940322.png)
摘要:
阅读全文
摘要:
参考:https://www.cnblogs.com/haoxinyue/p/5208136.html(分布式系统唯一ID生成方案汇总) 一、准备工作 (1)创建数据库: create database if not exists mybatis_plus; (2)创建user表: drop tab 阅读全文
![MybatisPlus - [02] HelloWorld](https://img2024.cnblogs.com/blog/1729889/202406/1729889-20240606212511668-721742497.png)
摘要:
MybatisPlus可以节省我们大量工作时间,所有的CURD代码它都可以自动化完成! 一、是什么 MyBatis-Plus(简称MP)是一个基于MyBatis的增强工具,其设计目的是在不改变MyBatis核心功能的基础上对其进行扩展和增强,从而简化开发过程并提升开发效率。 二、特点 (1)无侵入性 阅读全文
![MybatisPlus - [01] 概述](https://img2024.cnblogs.com/blog/1729889/202406/1729889-20240606163444452-1822419702.png)
摘要:
mybatis-config.xml中的标签需要按照一定顺序配置,否则会有以下提示。 configuration(配置) properties(属性) settings(设置) typeAliases(类型别名) typeHandlers(类型处理器) objectFactory(对象工厂) plu 阅读全文
![mybatis - [08] mybatis-config.xml 详解](https://img2024.cnblogs.com/blog/1729889/202406/1729889-20240606225521609-1794832854.png)
摘要:
题记部分 (1)mapper类 List<User> getUserLike(String value); (2)mapper.xml <!-- 写法1 --> <select id="getUserLike" resultType="com.harley.pojo.User"> select * 阅读全文
![mybatis - [07] 模糊查询](https://img2024.cnblogs.com/blog/1729889/202406/1729889-20240606225505335-695233728.png)
摘要:
题记部分 一、如何保证数据质量问题 在数据处理的每一个环节,根据业务要求,提前设置好告警规则。 比如, (1)设置日增数据量的阈值以及对于计算结果、某些关键指标的阈值; (2)从数据源获取到数据之后的第一步,就可以根据这个制定的规则,先看数据量是否在阈值范围内,比如正常的情况下,应该是1万条数据。阈 阅读全文