自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(106)
  • 收藏
  • 关注

原创 EasyExcel百万数据级别插入案例

本文主要介绍使用easyexcel进行数据插入的优化案例集过程!

2024-07-29 19:58:34 385

原创 SpringBoot多线程查询实战-查询库中所有数据多线程实现

但是,在数据量较大且服务器资源足够的情况下,多线程方法通常能够显著提高查询效率。此外,由于它是同步执行的,没有利用并行处理的能力,所以在处理大量数据时可能会比较慢。这个方法采用了分页查询的方式,每次只获取一部分数据,从而避免了内存溢出的问题。然而,它也是同步执行的,没有利用多线程或并行处理的能力。如果每次分页查询的数据量仍然很大,或者需要查询的轮数很多,那么这种方法的效率可能仍然会受到限制。​ ​ ​在比较这三种方式的效率时,我们需要考虑几个关键因素:数据量的大小、查询操作的复杂性、以及并行处理的能力。

2024-03-27 12:56:53 2936 1

原创 IDEA调优-四大基础配置-编码纵享丝滑

2>这对于拥有多个项目的开发人员来说尤为重要,可以有效降低内存占用,特别是对于内存资源有限的机器。2>特别是在构建复杂的项目或使用大量插件的情况下,增加共享堆内存可以提高构建的稳定性。较大的保留代码缓存可以提高 JIT 编译的效率,但可能导致内存浪费。较小的保留代码缓存可以减少内存占用,但可能降低 JIT 编译的效率。较小的停留时间可以提高软引用缓存的命中率,但可能导致频繁的淘汰。较大的停留时间可以减少淘汰的频率,但可能降低软引用缓存的命中率。较小的初始堆栈可以减少内存占用,但可能导致频繁的垃圾回收。

2024-03-22 21:21:41 8888 8

原创 使用MyBatisPlus实现向数据库中存储List类型的数据

使用MyBatisPlus实现向数据库中存储List数据解决方案

2024-02-29 10:39:47 1671

原创 SpringBoot搭建个人项目架构设计

【代码】SpringBoot搭建个人项目架构设计。

2023-09-22 22:29:49 291

原创 一文搞懂—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

原创 SpringMVC+Elmentui+VUE实现上传下载功能

【代码】SpringMVC+Elmentui+VUE实现上传下载功能。

2023-05-04 15:01:17 1018

原创 Java+大数据学习笔记分享!

Java学习笔记,大数据学习笔记,超全面!!!

2023-05-01 21:35:59 1208

原创 腾讯云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实现)—链表入门(6题)

思路一:表节点一个个入栈,当全部入栈完之后再一个个出栈,出栈的时候在把出栈的结点串成一个新的链表。

2023-01-14 17:54:27 1027

原创 力扣算法(Java实现)—字符串入门(9题)

除前导空格或数字后的其余字符串外,请勿忽略 任何其他字符。本题中的空白字符只包括空格字符 ’ ’。

2023-01-12 21:39:12 766

原创 力扣算法(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

pandas数据集获取

pandas数据集获取

2022-09-04

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

TA关注的人

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