- 博客(91)
- 收藏
- 关注
原创 大数据面试 --- 六
对于注入时间,是进入Flink中的事件,后续一般会都会使用该时间,一般不需要结合水位线生成,所以不能处理无序事件和延迟数据。对于事件时间,在进入Flink之前就已经存在了,必须要结合水位线进行生成,在处理无序事件会有一定的延迟。对于摄入时间,指的是执行操作算子的系统时间,每一个算子的时间不同,所以性能相对较高。事件时间指的是事件产生的时间,通常使用事件中的时间戳来描述。摄入时间指的是事件在Flink中被处理的当前时间。注入时间指的是时间进入Flink中的事件。
2024-05-15 14:10:26 162
原创 大数据面试专题 -- kafka
是一个用于存放数据的组件,用于系统之间或者是模块之间的消息传递。kafka是一种基于订阅发布模式的高性能,高吞吐的实时的消息队列,是一个分布式系统,高性能的TCP网络协议进行的。AR:所有的副本ISR:健康的副本OSR:有问题的副本。
2024-03-30 17:16:46 1122 1
原创 kettle--资源库
可以将job或者是transform存储在指定的目录中,其实和xml是一致的,不需要使用用户和密码就可以访问。作用:数据库资源库就是将转换和作业相关的信息保存到数据库中,当团队中需要使用到的时候都可以去使用该数据。作用:将数据以文件的形式进行保存。
2024-03-26 17:43:52 273
原创 kettle 使用:(9.2)
因为这是一个数据同步是属于转换任务,所以创建一个转换任务:指定输入是表输入,输出是插入/更新。2、使用kettle。
2024-03-26 15:48:41 206
原创 大数据面试总结 四
每一个datanode都会定期向namenode发送heardbeat消息,当一段时间namenode没有接收到某一个datanode的消息,此时namenode就会将该datanode标记为死亡,并不会向他们发送任何的IO请求,同时任何注册到失效的namenode上的数据不会提供给hdfs所使用,当某些块的副本数小于指定的数量的时候,namenode会不断的跟踪哪些副本是需要复制的,并在必要的时候进行复制。insert into 表名 (列名1,列名2,列名3)values(值1,值2,值3)
2024-03-20 11:57:38 1095
原创 kettle (9.2)
1、spoon.bat/spoon.sh(linux):(勺子),主要的作用是一个图形化界面,可以使用图形化的方式开发transformattion和job。2、作业每一个步骤,必须需要等前面的步骤完成后才能进行,对于转换来说是一次性把所需要的控件全部执行完。4、carte.bat/carte.sh(linux):(菜单):轻量级的web服务器,主要是用来建立远程的服务器。是最早使用的一种开源ETL的工具,是一种开源的ETL工具,底层是使用纯java实现的,可以在不同的环境中进行部署。
2024-03-20 11:33:38 167
原创 数据集成工具 ---- datax 3.0
3、切分成多个Task后,Datax job 就会调用scheduler模块,根据配置的并发数量,将拆分的Task重新组合,组装成TaskGroup,每一个TaskGroup都负责一定的Task任务的执行,默认TaskGroup并发数量数5个。2、当Datax启动后,Datax job会根据不同的源数据将job切分成不同的Task,所以Task是Datax的最小作业单位,每一个Task都会负责一部分的数据同步。1、Reader:作为数据的采集模块,负责采集数据源的数据,将数据发送给Framework。
2024-03-12 17:11:43 923
原创 SQL中常见的优化
假设此时有order表与user表,其中order表中数据越有10000条,user表中的数据大概在100条数据,此时在查询所有有效用户下过的列表订单,可以使用in关键字来实现。在做查询的时候,有时候的需求是查询数据中的第一条数据,此时就可以按照某个字段按照某种顺序进行排序,通过limit 1取出第一条数据。在使用子查询的时候使用到关键字in,执行的逻辑是先执行内部的语句,在内部sql语句的结果的基础上在做查询。在使用的时候,union all 会自动的对重复的数据进行去重,从而可以减少cpu资源的占用。
2024-02-23 16:09:28 397
原创 python--整体的模块
一个模块包含了变量、函数、类以及其他的模块,然而对于函数来说,函数也有属于自己的本地变量。4、在一个模块中可以导入其他模块中的包。在python中的导包就相当于将代码复制一遍运行。是将一个程序分割为源代码文件的集合以及将这些部分连接在一起的方法。2、在python中,一个py文件就是一个模块,多个模块组成一个包。import 包名.模块名称 as 别名。from 模块 import 功能名称。例如:导入demo包中的add函数。1、import 模块 (as 别名)2、导入包的方式import。
2024-02-01 20:50:55 190
原创 python-- 函数
def 函数名称(参数):函数体#例如:# 需求:定义一个函数:求一个数据的二次方s = x * xreturn s#函数的调用:函数名称(参数)# 函数的调用:函数名称(参数)#对于python中函数中的参数:在参数的个数存在多个的时候,参数可以设置成默认值:s = x + yreturn s# 此时的参数y就可以不用进行赋值print(f"参数默认值的值是{add(100)}")
2024-01-30 16:47:36 159
原创 python--文件读取与写入
文件读取的方式分成两种,分别是open和with open,两种的区别在于当文件读取结束之后,open方式需要关闭连接,但是使用with open的方式不需要。
2024-01-30 16:38:03 228
原创 python -- 变量
age = 20#type主要的用法是将数据的类型打印出来#也可以在定义变量的时候指定数据的类型:#变量的一般定义的规则:#1、变量名必须是大小写的英文字母、数字或者是下划线的组合#2、不能使用数字开头,并且对大小写比较敏感#3、在命名的时候不能使用关键字命名。
2024-01-30 16:26:21 104
原创 python -- 基础语法
常量表示的是“不能变”的变量,python中是没有常量的关键字,只是在约定的时候默认使用大写字母组合成的变量当作常量。1、变量名必须是大小写字母、数字或者是下划线的组合,不能是数字开头并且需要注意大小写。2、不能使用关键字进行命名。
2023-12-27 14:20:39 376
原创 大数据面试总结 二
就是将维度表退化到事实表中,例如说一个订单表,是一个事实表,还有一个就是商品的信息表,是维度表,将来进行展示的时候,需要展示的商品的所有的信息,就类似于join,将维度表关联到事实表中。主要存放的就是一些不怎么变化的数据表,就比如说一些地域的省份的名称就不会发生改变。
2023-12-10 20:27:42 1083
原创 大数据面试总结
ptuval()的核心就是通过哈希码来定位同桶,然后向桶中插入数据,如果桶是空的,那么就直接向桶中插入新的节点,如果桶不是空的,就会遍历红黑树,判断key是否存在,如果存在,那个原先旧的value就会被新的value所代替。会根据需要查询的key通过哈希算法计算出哈希码,通过哈希码来确定对应的桶的位置,如果桶是空的,那么就返回null,值不存在,如果桶不是空的,就遍历链表或者是红黑树,通过equals()方法来比较传入的键与当前的键是否相同。默认扩容后的数据的容量的大小是等于原先旧的2的n倍。
2023-12-05 22:43:45 1836
原创 MySQL的乐观锁和悲观锁
悲观锁在操作数据的时候,保持的是一种比较悲观的状态,在每次拿取数据的时候都认为别的线程也会同时的修改数据,所以每次在拿数据的时候都会给数据上锁,这样别线程想要拿这个数据就会被阻塞,直到拿到锁。乐观锁在操作数据的时候,是保持一种乐观的状态,认为别的线程是不会同时修改数据的,所以是不会上锁的,但是在更新的时候,会判断一下在这个期间内是否有别的线程修改过数据。1、假设两个线程,线程A和线程B直接获取同步数据资源,不会加锁,执行各自的操作。1、多个线程,如线程A,B尝试获取同步锁。是需要阻塞的,效率比较低。
2023-11-22 16:56:21 64
原创 Hadoop -hdfs的读写请求
5、此时客户端会将block切分成多个package,以package的形式传递到DN中,在pipiline中依次传输,当传输到最后一个DN的时候,就会返回一个ack响应,当客户端接收到最后一个DN传输过来的ack,此时package就传输完成,然后一次传输package。4、客户端会选择距离较近的DN中去读取block,如果客户端就在DN中,就会在自生读取block,当block读取完成后,文件读取还没有结束,此时客户段会向NN继续发送读数据的请求,获取下一批的block的地址。
2023-11-22 16:19:52 866
原创 Redis 持久化机制
client Redis[内存] --> 内存数据、磁盘数据----> 磁盘,Redis官方提供了两种不同的持久化方案将内存中的数据存储在硬盘中:快照(Snapshot)AOF只追加日志文件。
2023-11-22 15:17:00 267
原创 MySQL -- JDBC
其中事务1先修改了,修改之后看了版本号是1.1 ,于是提交修改的数据,将版本号修改为1.2 其中事务2后修改的,修改之后准备提交的时候,发现版本号是1.2 ,和它最初读的版本号不一致。是SUN公司制定的一套接口(interface)。接口都有调用者和实现者。面向接口调用、面向接口写实现类,这都属于面向接口编程。悲观锁:事务必须排队执行。数据锁住了,不允许并发。乐观锁:支持并发,事务也不需要排队,只不过需要一个版本号。事务1–>读取到版本号1.1。事务2—>读取到版本号1.1。
2023-11-21 21:28:22 256
原创 Hadoop-- hdfs
首先在启动的时候,namenode是不会存储任何datanode与block的映射关系,是datanode会自动的将这种映射关系汇报给namenode,然后namenode会根据datanode的提供的关系自动的生成映射关系。2、存储元数据信息,会将文件的一些属性、文件的大小、文件的权限都存储在namenode上面,和存储block的位置信息,在每次开启集群的时候datanode会向namenode汇报block的信息。NN也会将存储的元数据信息存储到磁盘中,此时会使用到两个文件,分别是。
2023-11-20 20:41:06 641
原创 Hadoop -- 分布式文件系统
在Hadoop1.0的版本中,默认的大小是64M,在Hadoop2.0以及后面的版本中,默认的大小是128M,这样的目的是达到最小的寻址开销。不管文件有多大,所有的文件都是由字节数组构成,当想要切分文件的时候,就是将一个字节数组切分成多份,当需要使用这份数据的时候,就可以根据偏移量将字节数据拼接在一起,此时数据又可以继续使用。然么对于不同的文件的block的大小是可以不一样的,不同的文件的大小可以设置成不同数量的block数量。当文件存储在磁盘中,不仅效率比较低,并且文件的大小可能会超出单机的存储的范围。
2023-11-20 19:06:09 1468
原创 MySQL-- INNODB 引擎
缓冲池是主内存中的一个区域,里面可以缓存磁盘上经常操作的真实数据,在执行增删改查操作时,先操作缓冲池中的数据(若缓冲池没有数据,则从磁盘加载并缓存),然后再以一定频率刷新到磁盘,从而减少磁盘IO,加快处理速度。更改缓冲区(针对于非唯一二级索引页),在执行DML语句时,如果这些数据Page没有在Buffer Pool中,不会直接操作磁盘,而会将数据变更存在更改缓冲区Change Buffer中,在未来数据被读取时,再将数据合并恢复到Buffer Pool中,再将合并后的数据刷新到磁盘中。
2023-11-15 17:15:22 75
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人