- 博客(106)
- 收藏
- 关注
原创 SpringBoot多线程查询实战-查询库中所有数据多线程实现
但是,在数据量较大且服务器资源足够的情况下,多线程方法通常能够显著提高查询效率。此外,由于它是同步执行的,没有利用并行处理的能力,所以在处理大量数据时可能会比较慢。这个方法采用了分页查询的方式,每次只获取一部分数据,从而避免了内存溢出的问题。然而,它也是同步执行的,没有利用多线程或并行处理的能力。如果每次分页查询的数据量仍然很大,或者需要查询的轮数很多,那么这种方法的效率可能仍然会受到限制。 在比较这三种方式的效率时,我们需要考虑几个关键因素:数据量的大小、查询操作的复杂性、以及并行处理的能力。
2024-03-27 12:56:53
2936
1
原创 IDEA调优-四大基础配置-编码纵享丝滑
2>这对于拥有多个项目的开发人员来说尤为重要,可以有效降低内存占用,特别是对于内存资源有限的机器。2>特别是在构建复杂的项目或使用大量插件的情况下,增加共享堆内存可以提高构建的稳定性。较大的保留代码缓存可以提高 JIT 编译的效率,但可能导致内存浪费。较小的保留代码缓存可以减少内存占用,但可能降低 JIT 编译的效率。较小的停留时间可以提高软引用缓存的命中率,但可能导致频繁的淘汰。较大的停留时间可以减少淘汰的频率,但可能降低软引用缓存的命中率。较小的初始堆栈可以减少内存占用,但可能导致频繁的垃圾回收。
2024-03-22 21:21:41
8888
8
原创 一文搞懂—Java8新特性之Lambda表达式
Lambda表达式是JDK1.8之后的一种语法,是一个匿名函数,是对匿名函数的简写形式,我们可以把 Lambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递),可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升;引入Java Lambda主要是为了支持函数式编程思想。Lambda表达式可以让我们更方便地使用函数式接口,从而实现更加简洁、易读、易维护的代码。同时,Lambda表达式还可以让我们更好地利用多核处理器的优势,实现并行化处理,提高程序的性能。
2023-05-08 22:25:55
1459
1
原创 ES(Elasticsearch)+SpringBoot实现分页查询
ES作为一个搜索工具,寄托于Lucene之上,提供了方便的数据存储和搜索服务,一般的用它来作为网页数据索引以及存储用户画像(即用户标签)数据,可以提供复具有复杂的查询条件的服务。例如在网页索引中,通过倒排的方式索引的方式,对文档进行分词存储,可以很快的定位关键字所在的文档,从而达到毫秒级的搜索效率;而在用户画像存储中,ES既可以作为标签宽表,提供类似HIVE宽表的特性,又可以达到传统关系型数据库或者HBase的实时查询的要求,所以在一般的用户画像存储中也是不二之选。
2023-05-05 00:19:44
2124
原创 SpringData-Redis配置及常用操作
其中 key 是 List 数据类型的 key,index 是指定位置的下标(0 表示头部,-1 表示尾部),value 是要插入的元素。需要注意的是,以上操作涉及到 List 的操作,因为 List 是有序的元素集合,因此对于元素的位置我们是可以进行控制和操作的。,其中 key 是 Sorted Set 数据类型的 key,value 是待添加的元素,score 是该元素的分数。,其中 key 是 List 数据类型的 key,index 是要获取的元素的下标,返回指定位置的元素。
2023-05-04 23:59:54
2635
原创 腾讯云COS+SpringBoot实现文件上传下载功能
这里要进行cosConfig和cosClient的依赖注入,因为后面要用到,整体来说,就是把配置类和客户端进行了封装,后面再进行调用的时候更加便捷一些。减少了代码量,前面我发过其他的教程都是放在一个类的这样确实有点不好,这里做一次修改。最近一直在做一个项目,需要支持视频,音频,图片的上传,前面介绍的都是把腾讯云COS的配置文件放在一个Controller中,但是随着项目变大,需求增多,这里做一个拆分和封装。这里配置了客户端和配置文件类。这两部完成基本就没什么问题了。2.pom.xml中添加。
2023-04-23 10:14:08
1764
3
原创 腾讯云COS+ElmentUI+SpringBoot视频上传功能实现
这里是当文件上传成功,从后端响应中获取返回的当前视频链接,这里我将链接存入到前端一个对象中,后面在进行表单提交的时候,将这个链接写入到数据库中即可!同时在这里我修改了action,这个是我自己的视频上传接口,在实现的时候,你也需要完成这样一个后端接口做对接,后面会详细说明!这个接口中你需要修改对应的id和key以及存储桶名称,就可以实现将视频文件上传到腾讯云中了。今天在做项目的时候需要完成一个视频上传的功能,这里做一个记录!这里我已经申请了腾讯COS对象存储服务,并拿到了对应的key。
2023-04-22 18:42:01
1566
原创 腾讯云COS对象存储JavaSDK服务实现文件上传下载
这里偷懒了直接在controller层实现了整个功能,不过大道至简,就这几行代码,先把最基础的功能实现再说。这里我希望用户点击上传音频就可以将音频上传到对应的存储桶中。大致实现就是这样,有疑问的地方可以私信我哦!我这里使用的是springboot。
2023-04-07 18:14:35
1530
原创 mavon-editor使用教程
我的使用方式是将编辑器放在form表单中,这样进行增删改查的时候就可以直接将数据存到数据库,并且在回显的时候,如果是回显在markdown编辑器的预览页面,是不需要的进行渲染的。可以说markdown是我最喜欢的编辑模式了,相比富文本编辑器要好太多了。这段时间在做一个面试题网站,在实现的过程中想在vue脚手架中引入一个MarkDown的編輯器,对于一个前端小白来说属实有点困难,但是最终我还是实现了,废话不多说,先看效果!这里是我配置的预览页面的全部属性,有需要的可以自行修改。总体来说效果还是很满意的。
2023-04-07 18:00:20
1938
原创 使用docsify完成一个MarkDown格式的个人博客
日常的时候根据笔记很多,很多内容整理比较麻烦,突发奇想,做一个个人博客网站,最好是直接可以将Markdown文件放入博客中,直接进行展示,于是参考了很多网上教程,经过一天的努力就完成了这样的一个效果,虽然没有太多复杂功能,但总体来说一定是够用的。但是这个框架不支持自动生成目录,也就是说,如下图左边栏的目录结构都需要你自己写,这样就很麻烦了,但是没关系,我找到了一个插件,直接使用这个插件就可以自动生成目录,基本完成80%的自动化操作。
2023-03-19 20:59:52
1100
原创 JavaWeb项目-管家婆账务系统(JSP+Servlet+Bootstrap)
本项目为一个记账系统,实现用户进行注册登录后,进入主页面,对个人账单数据进行增啥改查,并提供丰富的查询聚合统计功能。 项目主要用到JSP做页面展示,使用Servlet,作为做后端数据的处理工作,使用MySql作为数据存储,项目采用标准的MVC架构实现即”模型-视图-控制器“三层架构实现(View—>Controler—>Service—>Dao),开发者可以通过个人需求对页面内容进行分层开发。主要采用技术:前端:bootstrap,javascript,JQuery,html,css。
2023-03-19 20:15:39
2703
原创 蓝桥杯——受伤的皇后(递归+回溯)
1.不符合的情况下:当第一次调用时,出现这种情况,从而导致无法继续进行递归,直接返回为void。2.符合的情况下,让count++,并对最后一行进行回溯,让它的前一列继续向前移动,进行递归。输入的第一行包含一个整数 n。请问一共有多少种摆放方案。输出一个整数,表示答案。(图片为不符合情况下)其中,1≤n≤10。
2023-03-03 15:53:19
856
原创 MaxWell原理概述
Maxwell 是由美国Zendesk公司开源,用Java编写的MySQL变更数据抓取软件。它会实时监控Mysql数据库的数据变更操作(包括insert、update、delete),并将变更数据以 JSON 格式发送给 Kafka、Kinesi等流数据处理平台。官网地址:http://maxwells-daemon.io/
2023-02-28 10:42:02
1130
原创 五种最常用经典排序算法(Java)
一般为数组大小/2,左边找到一个比基准值大的数,右边找到一个比基准值小的数,然后进行交换,算完之后左边的都为比基准值小的,右边都为比基准值大的,但不能保证他们是有序的,所以还需要对左右生成的数据进行二次排序。将数组中的数据遍历,先拿第一个进行比较,看后面的有没有比这更小的,有的话交换,没有就第二个进行比,依次比较,一共需要比数组大小-1次。将数组中的数据遍历,先拿第一个进行比较,看后面的有没有比这更小的,有的话交换,没有就第二个进行比,依次比较,一共需要比数组大小-1次。
2023-02-27 15:12:24
957
原创 Flume三种组件的选择对比
将数据发送到kafka消息队列中,这个也是比较常见的,主要针对实时计算场景,数据不落盘,实时传输,最后使用实时计算框架直接处理。 将数据发送到kafka消息队列中,这个也是比较常见的,主要针对实时计算场景,数据不落盘,实时传输,最后使用实时计算框架直接处理。 慢,基于磁盘,但可以优化,有一个索引(在内存中)机制,从随机读写,到指定位置读写,索引也会备份到磁盘中,也可以进行二次备份。1:可能会丢数据,如果Flume的agent挂了,那么channel中的数据就丢失了。
2023-02-26 11:13:01
1186
原创 Hadoop的生成经验调优和基准测试
HDFS的DataNode节点保存数据的路径由dfs.datanode.data.dir参数决定,其默认值为file://${hadoop.tmp.dir}/dfs/data,若服务器有多个磁盘,必须对该参数进行修改。数据统计主要用HiveSQL,没有数据倾斜,小文件已经做了合并处理,开启的JVM重用,而且IO没有阻塞,内存用了不到50%。但是还是跑的非常慢,而且数据量洪峰过来时,整个集群都会宕掉。,注意,如果你的节点内存资源不够8GB,则需要调减小这个值,而YARN不会智能的探测节点的物理内存总量。
2023-02-24 20:34:52
1623
原创 离线电商数仓业务浅谈
也就是说,DIM层已经对事实描述的角度做出了处理,例如商品维度表抽取了ODS层的如下图8张表,对于商品来说,商品只是描述问题的维度,在后面的数据处理中,只需要对这一维度进行描述即可。 从ODS层知道,我们获取的只是对应的日志文件,那么必然要进行拆分,放入不同的数据表中,这里分为启动日志,页面日志,动作日志,曝光日志,错误日志五张表。后台数据库进行增删改查交互,产生的数据就是业务数据。实的角度,也就是我们所说的维度,在完成需求的时候,需要结合描述事实的角度,与事实的度量,相结合的方式。
2023-02-23 23:41:37
1262
2
原创 L4-SQL进阶题目
从订单信息表(order_info)中统计每个用户截止其每个下单日期的累积消费金额,以及每个用户在其每个下单日期的VIP等级。) over( order by …若80000
2023-02-23 19:15:28
1094
3
原创 Java实现二叉树的创建与四种遍历方式(前,中,后,层)
这里我们需要理解二叉树中会存储3个值,分别为自己本身的val值和两个指针,这两个指针分别会指向两个新的节点,或者指向为空。
2023-01-16 19:21:24
1764
原创 力扣算法(Java实现)—数组入门(11题)
给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。请你判断一个 9 x 9 的数独是否有效。一个有效的数独(部分已被填充)不一定是可解的。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。,请你 原地删除重复出现的元素,使每个元素。
2023-01-12 20:56:20
1313
原创 Flink-按键分区状态-算子状态-广播状态
💎💎💎💎💎 按键分区状态(Keyed State)顾名思义,是任务按照键(key)来访问和维护的状态。它的特点非常鲜明,就是以 key 为作用范围进行隔离。 在进行按键分区(keyBy)之后,具有相同键的所有数据,都会分配到同一个并行子任务中;所以如果当前任务定义了状态,Flink 就会在当前并行子任务实例中,为每个键值维护一个状态的实例。于是当前任务就会为分配来的所有数据,按照 key 维护和处理对应的状态。1.值状态(ValueState) 顾名思义,状态中只保存一个“值”(value)
2022-12-25 17:02:28
1164
原创 Flink-状态编程的基本概念
具体来讲,托管状态是由 Flink 的运行时(Runtime)来托管的;在配置容错机制后,状态会自动持久化保存,并在发生故障时自动恢复。当应用发生横向扩展时,状态也会自动地重组分配到所有的子任务实例上。对于具体的状态内容,Flink 也提供了值状态(ValueState)、列表状态(ListState)、映射状态(MapState)、聚合状态(AggregateState)等多种结构,内部支持各种数据类型。聚合、窗口等算子中内置的状态,就都是托管状态;
2022-12-24 10:22:45
842
原创 Flink-基本的合流操作
💎💎💎💎💎在代码中,我们只要基于 DataStream 直接调用.union()方法,传入其他 DataStream 作为参数,就可以实现流的联合了;得到的依然是一个 DataStream:注意:union()的参数可以是多个 DataStream,所以联合操作可以实现多条流的合并。注意:对于合流之后的水位线,也是要以最小的那个为准 数据类型不能改变1.连接流(ConnectedStreams)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ejyQTMlQ
2022-12-23 16:51:13
965
原创 Flink-使用filter和SideOutPut进行分流操作
所谓“分流”,就是将一条数据流拆分成完全独立的两条、甚至多条流。也就是基于一个DataStream,得到完全平等的多个子 DataStream。一般来说,我们会定义一些筛选条件,将符合条件的数据拣选出来放到对应的流里。
2022-12-23 13:32:54
1524
原创 Flink-基本处理函数(ProcessFunction)
是无论那种算子,如果我们想要访问事件的时间戳,或者当前的水位线信息,都是完全做不到的。在定义生成规则之后,水位线会源源不断地产生,像数据一样在任务间流动,可我们却不能像数据一样去处理它;跟时间相关的操作,目前我们只会用窗口来处理。而在很多应用需求中,要求我们对时间有更精细的控制,需要能够获取水位线,甚至要“把控时间”、定义什么时候做什么事,这就不是基本的时间窗口能够实现的了。 于是必须祭出大招——处理函数(ProcessFunction)了。处理函数提供了一个“定时服务”(Time
2022-12-23 13:14:47
224
原创 Flink基本转换算子
1.映射(map)2.过滤(filter)3.扁平映射(flatMap)4.按键分区(keyBy)5. 简单聚合(sum,min,max等)6.归约聚合(reduce)7.自定义函数
2022-12-15 13:32:35
456
原创 Flink水位线-详细说明
在Flink中,**水位线是一种衡量Event Time进展的机制**,用来处理实时数据中的乱序问题的,通常是水位线和窗口结合使用来实现。 从设备生成实时流事件,到Flink的source,再到多个oparator处理数据,过程中会受到网络延迟、背压等多种因素影响造成数据乱序。 具体实现上,==水位线可以看作一条特殊的数据记录,它是插入到数据流中的一个标记点,主要内容就是一个时间戳,用来指示当前的事件时间。==而它插入流中的位置,就应该是在某个数据到来之后;这样就可以从这个数据中提取时间戳,作为
2022-11-19 17:38:18
1293
原创 Flink窗口及其分类-详细说明
Flink 是一种流式计算引擎,主要是来处理无界数据流的,数据源源不断、无穷无尽。想要更加方便高效地处理无界流,一种方式就是将无限数据切割成有限的“数据块”进行处理,这就是所谓的“窗口”(Window)。所以在 Flink 中,窗口其实并不是一个“框”,流进来的数据被框住了就只能进这一个窗口。相比之下,我们应该把窗口理解成一个“桶”。在 Flink 中,窗口可以把流切割成有限大小的多个“存储桶”(bucket);每个数据都会分发到对应的桶中,当到达窗口结束时间时,就对每个桶中收集的数据进行计算处理。
2022-11-19 17:21:19
5523
原创 Flink的六种物理分区策略
当 Flink 提 供 的 所 有 分 区 策 略 都 不 能 满 足 用 户 的 需 求 时 , 我 们 可 以 通 过 使 用partitionCustom()方法来自定义分区策略。可以通过字段名称指定,也可以通过字段位置索引来指定,还可以实现一个 KeySelector// 创建执行环境 StreamExecutionEnvironment env = StreamExecutionEnvironment . getExecutionEnvironment();} }.
2022-11-17 11:50:51
1168
原创 Flink架构&重要概念解析-超详理解
在 Standalone 部署时,因为 TaskManager 是单独启动的(没有Per-Job 模式),所以 ResourceManager 只能分发可用 TaskManager 的任务槽,不能单独启动新TaskManager。比如我们在上一章实践过的独立集群环境的会话模式,就是需要先启动集群,如果资源不够,只能等待资源释放,而不会直接启动新的 TaskManager。 TaskManager 是 Flink 中的工作进程,数据流的具体计算就是它来做的,所以也被称为“Worker”。
2022-11-15 16:47:15
1401
原创 Hive分区表、分桶表练习(含数据集)
🏈当Hive表对应的数据量大、文件多时,为了避免查询时全表扫描数据,Hive支持根据用户指定的字段进行分区,分区的字段可以是日期、地域、种类等具有标识意义的字段。示字段含义如下:count_date(统计日期),county(县),state(州),fips(县编码code),cases(累计确诊病。是一种用于优化查询而设计的表类型。现有6份数据文件,分别记录了《王者荣耀》中6种位置的英雄相关信息。指的是分区的字段值是基于查询结果自动推断出来的。指的是分区的字段值是由用户在加载数据的时候手动指定的。
2022-11-09 20:38:54
942
原创 Hive实战练习(包含数据集)
(1)要想统计 Music 类别中的视频热度 Top10,需要先找到 Music 类别,那么就需要将category 展开,所以可以创建一张表用于存放 categoryId 展开的数据。所以如果要 group by 类别,需要先将类别进行列转行(展开),然后再进行 count 即可。(2)我们需要按照类别 group by 聚合,然后 count 组内的 videoId 个数即可。(1)即统计每个类别有多少个视频,显示出包含视频最多的前 10 个类别。(3)统计对应类别(Music)中的视频热度。
2022-11-09 14:00:26
2048
1
原创 Hive中内部表、外部表、分区表、分桶表之间的关系
抽样可以从被抽取的数据中估计和推断出整体的特性,是科学实验、质量检验、社会调查普遍采用的一种经济有效的工作和研究方法。那么将保存相同列值的桶进行JOIN操作就可以,可以大大较少JOIN的数据量。默认情况下创建的表就是内部表,Hive拥有该表的结构和文件。换句话说,Hive完全管理表(元数据和数据)的生命周期,类似于RDBMS中的表。中的数据不是Hive拥有或管理的,只管理表元数据的生命周期。而且外部表更为方便的是可以搭配location语法指定数据的路径。在Hive外部仍然可以访问实际数据。
2022-11-06 15:32:16
1258
大数据方向目前的就业状况怎样?
2022-08-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人