- 博客(293)
- 资源 (38)
- 收藏
- 关注
原创 StarRocks 中的数据模型、索引
数据冷热特征,比如最近几天的数据才需要修改,老的冷数据很少需要修改,比如订单数据,老的订单完成后就不在更新,并且分区是按天进行分区的,那么在导入数据时历史分区的数据的主键就不会被加载,也就不会占用内存了,内存中仅会加载近几天的索引。字节,其内容为数据块中第一行数据的排序列组成的前缀,在查找前缀索引表时可以帮助确定该行数据所在逻辑数据块的起始行号。需要注意的是:由于存储引擎会为主键建立索引,导入数据时会把索引加载到内存中,所以主键模型对内存的要求更高,所以不适合主键模型的场景还是比较多的。
2023-05-28 16:12:03
8
原创 StarRocks 集群模式搭建
下载后上传至其中一台服务器中,这里我上传至。注意:如果电脑有多个网卡,可以通过修改。进行了快速体验,本篇文章进行。,因此确保安装前已经安装好。进行了简单的介绍及使用。下,分别启动三台服务的。回到解压位置,将改好的。节点,进入到解压目录的。
2023-05-21 22:44:18
258
原创 StarRocks 极速全场景 MPP 数据库介绍及使用
StarRocks是一款高性能分析型数据仓库,使用向量化、MPP架构、CBO、智能物化视图、可实时更新的列式存储引擎等技术实现多维、实时、高并发的数据分析。既支持从各类实时和离线的数据源高效导入数据,也支持直接分析数据湖上各种格式的数据。兼容MySQL协议,可使用MySQL客户端和常用BI工具对接。同时StarRocks具备水平扩展,高可用、高可靠、易运维等特性。广泛应用于实时数仓、OLAP报表、数据湖分析等场景。充分吸收关系型OLAP。
2023-05-21 16:34:31
513
原创 基于 FineReport 快速设计联动报表
FineReport 一款用于报表制作,分析和展示的工具,可以轻松的构建出灵活的数据分析和报表系统。
2023-05-07 17:48:39
622
原创 ETL工具 - Kettle 案例,拉取网络列表数据
的话就执行转化进行具体的获取数据写数据的操作,这里转换返回的结果把接口返回的。一页的大小,如果我们要获取全部的数据,肯定需要对这两个参数进行修改。下面通过计算总条数转换获取到总数,实际就是取的返回中的。工具访问该接口获取到数据,然后根据拿到的结果使用。对结果集进行解析,这里分了两个链路,上面的解析。的大部分算子都应该有了相应的了解,下面我们基于。的查询、连接、统计、脚本算子进行了介绍,对。在转换执行后,无需拿到转换的结果,直接对。拼接一个完整的访问接口,替换到原来的。下面又指向检验字段的值,一直递归计算。
2023-05-02 22:05:13
1513
2
原创 ETL工具 - Kettle 查询、连接、统计、脚本算子介绍
连接算子一般将多个数据集通过关键字进行连接,类似 `SQL` 中的连接操作,统计算子可以提供数据的采样和统计功能,脚本算子可以通过程序代码完成一些复杂的操作
2023-04-30 23:12:13
492
原创 ETL工具 - Kettle 输入输出算子介绍
上篇文章对Kettle进行了简单的介绍及做了个简单的案例,但是对Kettle的Step算子工具没有做过多的解释,本篇文章从输入输出算子工具开始进行介绍。ETL工具 - Kettle 介绍及基本使用输入是转换里面的第一个分类,用来完成ETL中的E抽取数据或者生成数据。在Kettle。
2023-04-30 15:19:09
1094
原创 ETL工具 - Kettle 介绍及基本使用
在介绍Kettle前先了解下什么是ETLETL是的缩写,即数据抽取、转换、装载的过程,对于企业或行业应用来说,经常会遇到各种异构数据的处理、转换、迁移等操作,这些操作有可能会面对大量的数据和繁琐的步骤,因此就萌生了一些ETL处理工具,市面上常见的ETL工具有很多,比如等,本篇文章就主要来介绍下Kettle工具。Kettle水壶)是一款国外开源的ETL工具,现在已经更名为PDI的缩写,由纯java编写,可以在上运行,绿色无需安装,数据抽取高效稳定。Kettle如上图介绍 ,Kettle分了两种脚本文件,
2023-04-28 23:56:44
1047
1
原创 SpringTx 源码解析 - @Transactional 声明式事务执行原理
方法获取到事务的属性信息后,如果结果不为空的话进行属性的补充后直接将属性信息返回给了。注解,不存在的话再去检测方法所在类上是否符合,这里主要看下方法层面的。的扫描和匹配过程进行分析,如果对这块不了解的话,建议看下前面的。中也是最终触发执行逻辑的类,其中包含了事务的开启、提交、回滚等。这里遍历了所有的事务解析器,这些解析器怎么来的呢,看到。这里对事物属性进行了缓存,看下缓存中不存在的情况,通过。方法中,最后通过反射获取到类下的方法,由于这里不属于。的子类,该类也是源码分析的关键点,由于其属于。
2023-04-13 22:00:00
284
原创 SpringAop 源码解析 (二) - 代理对象的创建以及执行过程
方法,主要做了对切面方法的扫描和匹配过程,并且这里拿到的结果就是所有匹配的切面方法包装类集合,本篇文章继续上篇文章的脚步,分析下后面代理对象的创建过程和执行过程。上面文章分析到这个位置,下面继续,如果存在匹配的切面方法,则先进行标记,反之不存在也进行标记,下次再进来该。的话,则会对当前代理对象进行缓存,目的是在同一个类中自我方法调用的情况下,如果被调用的方法带有。,其实是触发所有的切面增强方法,最后再触发目标方法,看到。最后一个时,就是代表所有的切面方法都触发完了,这里的。
2023-04-09 17:38:53
361
原创 SpringAop 源码解析 (一) - Aspect 切面方法的查找匹配过程
则是对注解形式处理的,由于现在基本都使用注解形式,所以这里直接看注解形式的处理,进到。方法中,接着判断如果是单例的话就将结果缓存下来,便于下次使用,最后在将结果返回给。方法确实创建了一个代理对象,并且最后使用的也是代理对象,下面就主要分析下。匹配出适合当前类的增强方法,这两个方法也是本篇的核心,下面挨个来分析下。方法,是一个抽象方法,具体逻辑由子类实现,其作用是用来对每个。方法,不过父类中的方法是对配置文件进行解析处理的,而下面的。匹配的增强方法,如果是空的话,则返回一个固定的空数组,在。
2023-04-05 15:36:50
477
原创 SpringMVC 源码解析 - Controller 的扫描注册及匹配过程
源码梳理的文章中就分析过,但那次分析的确实不怎么详细,因此这里再继续梳理下,看是如何和上面注册的过程形成呼应的。对应一个接口,如果这里匹配出多个并且一致的话,则会抛出异常,否则最后返回匹配出来的。,其作用是在容器启动后将系统中所有控制器方法的请求条件和控制器方法的对应关系注册到。路径,接着尝试获取映射存储器的读锁,主要防止有写的情况造成线程安全问题,拿到锁后通过。会根据请求条件和容器中存储的系统接口信息比对,再执行对应的控制器方法,从而帮助。,我们要通过反射执行方法的话,是需要目标对象的,因此在。
2023-04-01 19:40:46
585
原创 Spring 源码解析 - @Async 注解下的循环依赖问题原理
仅允许有一个实例,先创建的要被后创建的覆盖,但这个覆盖的前提是实例已经完全创建成功,这里可以看下。方法获取一个早期的实例,获取之后存入二级缓存中,从前面放入三级缓存可以看出其实是触发的。,由于这里是循环依赖,已经放入了第三级缓存中,因此可以命中,这快的源码逻辑在。实例,由于前面已经曝光到了二级缓存中,因此这里可以获取到,但容器中的。存在循环依赖,仅放入二级缓存中,并没有实例化完成,因此这里会返回。真正的实例,而这里返回的是代理实例,现在相当于单例的。是不是很奇怪,难道代理对象就会有问题吗,如果换成。
2023-04-01 12:20:26
388
原创 Spring 源码解析 - BeanPostProcessor 扩展接口
实例化之前尝试使用该类型的实例生成一个代理对象,如果方法返回的是一个非空对象, 将会跳过后续。实例化、配置和初始化的每个阶段,因此实现过程需要非常谨慎。从上面的触发点源码中,可以看出有些地方是触发的特定类型的。方法,那现在也是从这里入手,主要逻辑在该方法下触发的。的特征,在此之外又提供了获取早期实例的方法。的初始化方法前后,允许我们自定义修改新的。从上面的实例中可以感觉出来,我们并没有对。源码分析的文章中,分析的入口都是基于。的实例化,因此使用的话需要非常谨慎。的实例化息息相关,因此可以从。
2023-03-31 20:00:00
238
1
原创 SpringMVC 源码解析 - 请求执行的过程
SpringMVC 是一个基于 Spring 框架的 MVC 框架,它简化了 Web 应用程序的开发。采用了前端控制器模式,请求会首先被一个中央控制器 DispatcherServlet 处理,再由其分发到具体的 Controller 进行处理。
2023-03-25 21:34:51
283
原创 Spring 源码解析 - Bean创建过程 以及 解决循环依赖
Spring 中的资源文件 bean定义信息,被组装成了 BeanDefinition 存放进了 beanDefinitionMap 容器中,那 bean 是怎样创建和依赖注入的还没有进行分析,而且这里还有个经典的循环依赖问题,本篇文章将带领大家一起继续上篇文章进行Spring源码的分析,梳理下`Bean`创建过程以及循环依赖问题的解决。
2023-03-20 18:14:07
1374
原创 Spring 源码解析 - Bean资源加载注册过程
的使用情况,可以发现在容器关闭时也对其进行了上锁,主要就是为了防止放生冲突,在锁中可以看到又触发了很多方法,逻辑比较多,这里主要看。对象时会对已经初始化好的对象进行记录,因此这里可以用来判断容器是否初始化完成,如果容器已经初始化,则为了避免数据的不统一,这里对。中的命名空间是否是默认的还是自定义的,如果是自定义的则使用用户自定义的解析规则,否则使用默认的解析,由于前面例子中的。去容器中获取,如果容器中存在,并不允许覆盖,则抛出异常,还会判断容器中的。方法中,在该方法中,将读取资源文件为输入流,然后使用。
2023-03-15 19:18:38
341
原创 Semaphore 源码解读
通过阅读Semaphore的源码可以发现,大量依赖于AQS中提供的方法,如果有阅读过ReentrantLock 锁源码的分析,可以发现相似度极高,都是使用AQS所提供的的特征实现某些场景的应用。
2023-03-09 21:00:00
279
原创 AQS 源码解读
AQS不做具体的某个场景的应用,但通过其内部维护的FIFO队列和共享资源state便可以实现很多种不同的场景,在阅读了AQS源码后,应该有了更深入的理解,后面再去看等的源码会发现很容易理解。
2023-03-07 23:13:00
548
1
原创 Condition 源码解读
通过上面的源码分析,应该对Condition有了新的理解和掌握,细心地小伙伴应该可以发现在源码中好多地方都使用了CAS,因此当竞争资源非常激烈时,Lock的性能要远远优于。
2023-03-05 17:30:46
459
原创 CopyOnWriteArrayList 源码解读
当new新建一个后会生成一个数组array来存放添加的内容,如果是无参的构造函数,则array的长度为0,添加数据时再进行扩容。同时会声明一个锁。当进行add操作时,先进行上锁,然后对当前的array进行copyOf,并且新的长度是之前的长度+1,这样才能存放当前新的值,将新值填充后,再替换掉旧的array数组后,释放当前锁。当使用get获取数据时,无需上锁,直接读取当前array数组的指定位置。当使用remove时,同样先进行上锁,然后再获取当前的array。
2023-03-05 15:19:12
650
原创 一文总结 JUC 并发编程
阻塞队列,数据由队列的一端输入,从另外一端输出,当队列是空的,从队列中获取元素的操作将会被阻塞,直到其他线程往空的队列插入新的元素。如果后面括号括起来的部分是一个类,其作用锁的对象是这个类的所有对象。读写锁将操作读写分开成 2 个锁来分配给线程,在多个线程读的情况下,不受锁的控制,但是在写的情况下,只允许一个获得锁的线程来写,并且写的过程中读锁也在等待。修饰了,当一个线程获取了对应的锁,并执行该代码块时,其他线程便只能一直等待,其中要么获得锁的线程执行完了所有逻辑,正常释放锁,要么线程执行发生异常,由。
2023-02-11 16:18:13
505
1
原创 基于 Nacos Config 事件监听 动态调整线程池参数
在实际项目中一般都会使用线程池解决一些异步并发问题,不过线程池核心参数很大程度上一次性进行设置,但系统运行起来总有可能出现各种各样的问题,如果修改线程池的参数则一般需要重启项目,对于生产环境而言有时无法进行重启,这种情况下就需要我们做成可动态调节的线程池。会自动刷新的,那这里为啥还要手动解析呢,答案就是配置更新后,会首先触发这里的监听,如果在监听中直接调用调整方法,使用。这里需要注意下,我在触发监听后,手动获取的参数,上面细心地会发现,其实。配置,所以关于线程的配置可以放在。,可以将修改后的配置,映射为。
2023-02-05 17:42:04
782
1
原创 Nginx 性能优化
如果一个静态资源的过大,传输起来肯定越慢,并且会占用大量带宽,因此在项目部署时可以通过。的核心数,操作系统执行原理本质上是采用时间片切换机制,也就是一个。核心会在多个进程之间不断频繁切换,造成很大的性能损耗。是基于多路复用模型实现的,但默认的多路复用模型。工作进程处理客户端请求,而我们可以根据机器的。在实际项目中进程或线程数往往都会远超出系统。Nginx启动后默认只会开启一个。提供了三个支持资源压缩的模块。对于静态资源实现压缩传输。接口的增强版,因此切换为。的工作进程,绑定在固定的。亲和机制则是指将每个。
2023-02-05 14:42:05
4126
原创 基于 Tensorflow 2.x 从零训练 15 点人脸关键点检测模型
标签 ,是表示着图像上真实关键点的坐标,直接让模型回归真实点的话,浮动会有点大,因此这里将真实点转为相对于图像的比例点,也就是直接除于图像的大小,得到一个相对点的位置,相对点的位置都在。年中国科学院深圳研究院提出的用于人脸检测任务的多任务神经网络模型,该模型采用了三个级联的网络,还采用候选框加分类器的思想,进行快速高效的人脸检测。上面提到实际训练的数据集并不多,因此有必要通过数据增强扩充数据,数据增强这里就做一个随机对比度的改变,这样不会影响关键点的位置,增强部分放在模型的。
2023-01-08 22:16:13
571
原创 基于 Tensorflow 2.x 使用 MobileNetV2 微调模型优化训练花卉图像识别模型
使用预训练的优秀模型和权重来从新样本中提取特征,最后同样给到一个新的分类器,但不同的是预训练模型的全部或某些层的权重被冻结,不会随着反向传播进行修改,只是略微调整了模型结构,这种方式不会破坏训练模型。深度学习模型应用于小型图像数据集场景下,一般由于数据量的局限性,导致模型提取特征有限,进而影响识别的准确度,一种常用且非常高效的优化方式便是使用预训练网络模型。:使用预训练的优秀模型和权重来从新样本中提取特征,最后给到一个新的分类器,从头开始训练,之前的权重会随着反向传播进行修改。
2023-01-02 17:47:26
1046
原创 基于 Tensorflow 2.x 从零训练花卉图像识别模型
例如对图像进行随机旋转,这里将图片归一化操作也放在模型中了,这样的好处是在训练模型或预测模型时,可以不用做归一化操作了,同样也可以将。工具读取图片数据集,并且借助该工具,可以方便的进行数据集的划分、随机打乱、及统一大小操作,避免了自己再对数据集进行繁琐的操作。因此解决上面问题,对于图像问题可以首先考虑使用数据增强,让每次喂入模型的数据都是有区别的,进而达到扩充数据集,在。个分类的数据量,其实是不相等的,蒲公英 的数据量明显是比其他分类要多的,有可能在训练的过程中偏向于蒲公英 分类。
2023-01-02 13:53:12
1673
2
原创 基于 Tensorflow 2.x 实现多层卷积神经网络,实践 Fashion MNIST 服装图像识别
并且每三个周期保存一次权重,防止意外停止后继续训练,最后保存了。的训练模型,方便后面进行测试预测效果。标签是整数数组,介于。构建多层卷积神经网络,在。上面搭建的模型,训练后会在。数据集更多样化,比常规。张图片,验证集的比例为。数据集,该数据集包含。从训练日志中,可以看到。
2022-12-18 16:01:03
509
1
原创 基于 Tensorflow 2.x 实现多层卷积神经网络,实践 MNIST 手写数字识别
对于单环境的图片识别场景来说,还是有点偏低,本文使用多层的卷积代替。,并且每三个周期保存一次权重,防止意外停止后继续训练,最后保存了。数据集,有的小伙伴可能没有看过上篇文章。该数据集已被封装在了。如果看过上篇文章可以发现损失和准确率都有明显的提升。的训练模型,方便后面进行测试预测效果。神经网络,经过训练后发现准确率只有。张作为测试数据,每一张图片都代表。网络中的隐藏层对模型进行优化。上面搭建的模型,训练后会在。张图片数据,大小统一是。张图片,验证集的比例为。从训练日志中,可以看到。
2022-12-18 15:07:17
479
原创 基于 Tensorflow 2.x 实现 BP 神经网络,实践 MNIST 手写数字识别
可以看到面对书写较工整的数字都可以较好的进行识别,但是对于不工整的就有点吃力,下一篇使用卷积神经网络进行优化,提高识别的准确率。工具包下,如果没有指定数据集的位置,并先前也没有使用过,会自动联网下载该,使该数据集使用起来更加方便,它包括了。是一个非常有名的手写数字识别数据集,在很多资料中都会被用作深度学习的入门样例。,并且每三个周期保存一次权重,防止意外停止后继续训练,最后保存了。,在本专栏后面博客,会使用多层卷积训练模型,可以实现更好的效果。上面搭建的模型,训练后会在。张图片,验证集的比例为。
2022-12-18 14:10:43
716
1
原创 基于 EasyOCR + HanLp 实现图片文字实体(中文姓名、机构名、地域名)识别
目前支持80中语言的识别。并且支持:图像预处理(去噪、色彩饱和度、尖锐处理)、CRAFT文字检测、中间处理(倾斜处理等)、文字识别、后续处理、输出结果。具备功能完善、性能高效、架构清晰、语料时新、可自定义的特点。目前,基于深度学习的。下面是我准备的图片,其中姓名、机构名、地域名,还有一些干扰文字。分析出文本中的 中文姓名、机构名、地域名 等信息。工具包,目标是普及自然语言处理在生产环境中的应用。的模型如果不存在也会自动下载,这个下载速度较快。技术,支持包括简繁中英日俄法德在内的。提取出文本中的文字,利用。
2022-12-11 18:00:42
876
原创 HanLP 基于SVM支持向量机 训练 文本分类
分类器依赖了第三方库,没有集成在主项目中,需要拉取。上篇文章通过朴素贝叶斯文本分类器,训练测试了。,本篇继续测试SVM支持向量机分类器。,这里就保持保本一致,将 pom 中。拉取项目后,发现 pom 依赖的。升级后会有两点不兼容,需要修改。然后将该项目打包到本地。
2022-12-11 14:48:44
543
原创 HanLP 基于朴素贝叶斯 训练 文本分类
针对文本分类算法已经帮我们实现 朴素贝叶斯法 ,用户可以无需关心内部细节,基于朴素贝叶斯算法,实现文本分类,语料库采用。
2022-12-11 14:00:18
710
原创 HanLP 自然语言处理使用总结
/ 对于系统中已有的词性,可以直接获取 Nature pcNature = Nature . fromString("n");// 此时系统中没有"电脑品牌"这个词性 pcNature = Nature . fromString("电脑品牌");// 我们可以动态添加一个 pcNature = Nature . create("电脑品牌");// 可以将它赋予到某个词语 LexiconUtility . setAttribute("苹果电脑" , pcNature);
2022-12-11 12:55:20
924
2
Navicat for Oracle.zip
2021-03-08
docker-19.03.8.tar.gz
2020-12-14
canal1.1.5.zip
2020-12-13
gitlib.zip
2020-12-09
RedisClient-windows.zip
2020-12-08
redisclient-win32.x86.1.0.zip--Delete
2020-12-08
阿里开发规范.zip
2020-12-08
zookeeper-3.4.10.tar.gz
2020-12-04
kafka_2.12-2.6.0.tar.gz
2020-12-04
apache-zookeeper-3.5.8.tar.gz-Delete
2020-12-04
swagger-ui-3.18.3.zip
2020-12-03
mycat.tar.gz
2020-08-03
MyCat.tar.gz-Delete
2020-08-03
logstash-6.4.3.tar.gz
2020-07-31
美国新冠疫情累计测试案例数据集
2022-10-23
hadoop-3.1.4 windows.zip
2022-10-05
hadoop 3.1.4
2022-10-03
elasticsearch7.8.0.zip
2022-01-03
data-for-1.7.5.zip
2022-01-03
elastic-job-lite-console-master.zip
2021-12-22
sentinel.zip
2021-12-22
stata1.4.2.zip
2021-12-22
harbor-offline-installer-v1.5.3.tgz
2021-08-15
dashboard-master.zip
2021-07-23
flannel-master.zip
2021-07-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人