自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 聊聊python中的显式声明类型参数

类型参数还可以是自定义类,或者自定义类的集合类型class A:a.test()test_a(a)自定义类型作为集合中元素类型。

2025-01-26 09:16:52 822

原创 java多线程分发处理,线程聚合场景解决方案解析

设定一个可接受等待的最大值N,当N个线程都在CyclicBarrier上面阻塞等待的时候,触发tripped,线程继续执行,cyclicbarrier关联任务开始执行.cyclicbarrier跟它名字一样,它可以循环使用,当发生tripped后,相当于状态重制,又可以接受N个线程在它上面等待.cyclicbarrier适合固定数量线程循环进行并行处理然后聚合的场景,当每一个线程把当前批次处理,然后cyclicbarrier聚合处理,之后又可以循环执行.获取"许可",操作完资源之后调用。

2025-01-19 10:25:52 951

原创 正则表达式,看完这一篇博客即可

做了一段时间的genai相关应用.遇到如下的一种场景:一次大模型调用输出多个模块代码,从输出内容里面提取这些模块代码然后保存成多个文件,组合成一个可运行的项目或者完整的功能模块.这里就涉及到对大模型返回的原始文本结果用正则表达式进行处理的场景了.本文详细回顾一下python和java里面正则表达式的用法以及技巧,并探究了正则表达式在大模型场景下的应用.以python语言中的re模块为例,回顾python中正则表达式中的特殊符号.默认情况下匹配任意非换行符单个字符串,pythonre中可以使用re

2025-01-19 09:58:59 727

原创 python拓扑排序算法实现

按照wiki拓扑排序的说法,拓扑排序是对有向无环图的顶点的线性排序,要求对于顶点u到v的每一个有向边uv顶点u都在v前面.拓扑排序其中一个重要的场景就是对互相有依赖的任务的执行顺序排序本文总结了python如何实现拓扑排序,包括卡恩算法以及深度优先搜索算法这两种排序算法.两种算法都可以帮我们解决涉及到互有依赖的task的执行顺序编排问题.

2025-01-09 08:20:34 738

原创 docker容器内怎么正确使用宿主机的GPU资源

重新运行官方的milvusgpudocker-compose.yml则可以正常启动,附带笔者在官方的docker-compose.yml文件上添加的attu的完整版本docker-compose文件,通过。其实只需要正确安装配置好nvidia-smi以及nvidia-container-toolkit参考docker关于正确使用宿主机器GPU的文档。输出内容为容器内运行nvidia-smi指令的结果,不包错则nvidia-container-toolkit正常安装且正常配置.

2024-12-11 09:54:20 1389

原创 D3.js 初探

D3js 使用小结D3.js 使用小结最近在做一个Data Visualization 的项目,由于对最终呈现的效果的交互性要求比较高,再加上自己做过前端的项目,对javascript还是比较熟悉的,所以最终采用D3.js 来完成数据的可视化;开发过程中有一些小的心得以及对D3.js 的一些认识,于是在此总结一下。

2024-12-04 20:51:30 730 1

原创 基于snowflake id 的 N 位唯一数字id 生成算法总结

分布式场景下选择snowflake id 生成算法来生成id是常见的技术选型,然而默认情况下snowflake id 生成器生成的id长度为19位数字,有些场景下我们需要的是8位,9位等长度小于19的唯一数字id,这个时候就需要将原有的snowflake id 进行一定的处理才能得到满足要求的指定为数的唯一数字id.本文详细总结一下常用的处理方法以及其优缺点.优点:1. 更加随机且均匀分布的映射,减少碰撞. 2. 保持了 Snowflake ID 的唯一性和分布特性。缺点:高并发场景下id容器碰撞。

2024-11-29 22:42:59 474

原创 docker 容器访问宿主机器服务的最简单方法

经常遇到一个服务是容器方式启动,另一个服在开发机器上启动,涉及到容器内发请求到宿主机器上面的问题,这里把最简单的解决办法记录以下。容器内将此ip作为宿主机ip即可实现容器内服务访问宿主机服务,简单高效的方法.查看docker网桥ip, 一般都是。

2024-11-10 07:38:06 1552 1

原创 浅谈一下关系型数据库中json类型字段的处理

mysql以及postgresql针对json类型字段提供的处理方法会有差异,因此使用的时候需要注意这个点.其次实际开发过程中我们也可以不用使用如下这个表结构存储推荐job的结果file_nametypeidintstatusvarcharresultjson我们完全可以在定义推荐结果表的时候将book_id, user_id和score 也定义为字段,这样也不必做比较复杂的json字段解析.field_nametypeidintstatusvarcharbook_idint。

2024-06-06 01:33:12 1042

原创 java集合类型一行代码实现创建且添加初始元素的实现汇总

common collections 提供了一些集合工具类(xxxUtils 命名规则: {集合类型}Utils) 来扩展jdk集合相关的api.当然它的关注点也不是创建集合对象的时候就添加初始化元素.后面我也会专门讲解一下apache commons相关的模块,此处也不再赘述.guava collection 是jdk collection的扩展, 它提供了丰富的集合相关的api看来帮助开发.真对每一种集合类型都提供了相应的工具类(比如Sets,Lists,Queues等,命名规则: {集合类型}s).

2024-05-07 16:33:32 831

原创 springboot模块以及非springboot模块构成的多模块maven项目最佳构建方式

这个结构看起来不是那么舒服,比如这里买的spark-job模块,跟spring完全没关, 不应该让spring-boot-started-parent作为其parent.那么有没有什么方法能够。的spring boot 相关的起步依赖包. 而不需要使用spring的模块可以完全不用管这个parent pom.spark-job的pom.xml(大致的pom不讨论细节)如下。spark-job的pom如下(大致的pom不讨论细节)core 模块 pom.xml 如下。web-service的pom如下。

2024-05-05 18:21:16 1268 1

原创 hive metastore使用mysql作为backend db遇到的问题

hms使用mysql作为Backend metadata database, 但是启动爆如下错误.原生的hive不带pg以及mysql的驱动包,所以这里要自己构建镜像添加这两个包到。docker-compose 文件。.所以要预先在mysql上面创建好。这个数据库,hms才能启动成功.

2024-04-14 08:27:04 458 1

原创 jenv实现mac下多版本jdk管理以及切换

多个java项目使用jdk版本不一样,mac机器下需要实现多版本的jdk管理. 使用工具。

2024-04-08 23:10:01 820

原创 Fernet加密解密技术详解

参考关于fernet的定义结合cryptography package中关于fernet的说明: https://cryptography.io/en/latest/fernet/可以将fernet定义为一种对称加密算法, 它可以将用户信息(字节序列)32字节(256 bits)的密钥以及unix时间戳(单位秒)加密成密文.同理可以使用32字节密钥过期时间(单位秒)和给定的unix时间戳进行解密.

2024-02-28 13:37:33 2365

原创 kubernetes技巧(一):关于选择器

如果是基于资源的label筛选使用label-selector,如果是资源label之外的字段筛选使用field-selector.

2024-02-25 10:43:23 1606

原创 多podman machine设置连接问题

已经存在一个资源配置较小的的podman machine(named as A)前提,启动了一个资源设置较大的podman machine(named as B). 关闭A单独启动B,使用。早些启动的podman machine A 是默认的连接, 启动B之后默认连接还在A,不会自动切换到active的machine B所以导致。check可以确定当前连接上了machine B.发现不能连接到podman machine B.

2024-02-05 20:21:30 594

原创 python装饰器详解

自定义装饰器主要分三种,不带参数的函数装饰器带参数函数装饰器,以及类装饰器. 下面一一进行讲解不带参数的函数装饰器// 装饰器函数,接受一个参数,参数代表被装饰的函数// 内层函数,入参是被装饰函数的全部参数,内部可以在被装饰函数调用前后实现一些逻辑# before// 是否有返回值取决于被装饰的函数# afterreturn res运行结果before 1 2 after总结一下就是两层函数,外层为装饰器名称,只接收一个参数表示被装饰的函数,内层函数参数为被装饰函数的所有入参.

2024-01-27 07:38:06 942

原创 python 中的 random

如果产生单个随机数使用built-inrandom包,如果需要产生随机的向量使用np.random。

2024-01-24 21:49:00 1047 1

原创 jupyterlab开发环境最佳构建方式

创建虚拟环境安装jupyterlab包.创建其他虚拟环境安装项目中python框架,包等等,进行环境隔离.需要映射成kernel的虚拟环境安装ipykernel, 使用指令将虚拟环境全局映射成jupyter kernel, 实现环境可进行访问.

2023-09-22 20:42:10 736 1

原创 ssh 免密码登录远程服务器最佳实践

工作中遇到需要使用多个云平台多个k8s集群的情况. 某些云平台不能使用desktop访问, 所以只能远程登录到指定访问权限的虚拟机. 在这个前提下一般是指知道这些虚拟的ip, user 以及 password. 使用ssh登录每一次都需要输入密码, 使用scp拷贝的时候也涉及到输入密码. 一旦涉及到较多的虚拟机需要登录,那么这回让工作效率变低. 这里总结一下免密码登录多个远程服务器的最佳实践.. 这里因为有多个服务器所以这里创建的时候使用特定的密钥文件名替换默认的密钥文件名字. 比如以。

2023-09-16 18:09:41 286

原创 k8s 中快速启动curl pod 做api test

k8s上运行的pod需要进行api测试,由于开发使用的镜像都是最小化构建,不能保证现有的pod中一定有curl工具,于是需要启动一个带有curl工具的测试pod专门进行api测试。上述指令实现在指定namespace下创建一个带有curl tool的pod, 可以用于进行api测试.

2023-08-17 10:23:11 1233

原创 MAC google cloud cli 安装问题

应该是安装包本身存在lib版本问题.

2023-06-16 16:03:01 699

原创 helm cli push 本地chart package 到 harbor

helm

2023-05-13 23:52:32 545 1

原创 配置podman ssl连接私有harbor仓库

当前私有仓库使用harbor且enable了ssl. 本地容器工具由docker切换到了podman. podman对比docker的各种优势此处不再赘述,这里主要讲一下podman本地配置问题.猜想可能是podman对自签名证书不支持, 因为如果使用的是podman desktop 可以在 registry中。私有仓库,笔者有试验过这种方式添加私有仓库,尝试连接的时候报如下错误。配置完毕重启一下podman 然后测试, 注意此此处的证书是。下面看详细的配置,笔者是mac, 所以配置文件路径是。

2023-04-29 21:23:25 1810 1

原创 快速生成tls证书相关文件enable https

平常开发过程中需要服务enable https, 涉及到CA证书和服务端证书秘钥, 但是由于openssl命令平时使用不多,每一次都要去搜索一下怎么用,于是在此处记录一下快速生成tls证书相关文件的openssl命令,使用时方便查询。这里生成证书带san, 适合生成。,假设需要证书的网站二级域名是。的以https协议访问服务器., 使用如下指令生成ca证书。作为域名的服务, 将。配置给浏览器且设置为。的证书即可实现浏览器。

2023-04-27 23:50:41 261

原创 Mac下SoapUI 启动无响应问题

不得已用SoapUI来写api测试, mac上第一次安装启动会出现无响应问题, 记录一下mac下SoapUI启动无响应问题的解决办法修改/Applications/SoapUI-{version}.app/Contents/vmoptions.txt文件, 添加内容-Dsoapui.browser.disabled=true修改/Applications/SoapUI-{version}.app/Contents/java/app/bin/soapui.sh去掉注释JAVA_O

2022-02-25 11:07:28 1177 1

原创 pip freeze vs pipreqs

问题规范的python 项目文件,都会有一个项目依赖包的文件requirements.txt文件里面罗列出了此项目运行依赖的所有python包, 以便于在切换到其他环境的时候, 使用pip install -r requirements.txt 指令完成项目依赖包的安装. requirements.txt文件引入就是为了方便项目在不同的环境下能够快速安装好依赖并且运行. 然而使用常规的命令pip freeze > ./requirements.txt生成requirements.txt 文件会将整

2022-01-01 16:43:42 886

原创 Chrome NET::ERR_CERT_COMMON_NAME_INVALID问题解决方案

文章目录背景原因最快捷方法: KeyStore explorer工具背景上集成测试环境中的spring boot 项目server 启动了ssl协议, 同时正确在Chrome浏览器配置好了自签名证书cer文件. 但是当前端调用后端https接口时报错Chrome NET::ERR_CERT_COMMON_NAME_INVALID. 一般纯浏览器访问,可能大家就是直接点击下面的unsafe链接了, 但是前端是通过ajax call访问后端的api, 因此不可能出现点击unsafe链接的行为, 所以这个问题

2021-12-21 08:54:34 6542

原创 Minikube使用小结

文章目录启动失败镜像无法下载微服务最佳实践. 需要考虑传统的非云原生以云原生的场景.云原生场景使用k8s做试验的时候, 需要解决环境问题. 选择单独用一台虚拟机去安装k8s, 造轮子耗时过长; 选择自家的k8s云服务又要收钱. 索性使用minikube 简单开箱即用. 不过在使用过程中也会遇到一些坑,这里总结一下以及提供相应的最快解决方案(不是最优解)启动失败网上很多讨论启动失败的问题. 归根到底都是依赖的镜像需要翻墙才能下载. 如果觉得翻墙麻烦, 那就利用公司网络保证start minikube成功

2021-12-08 18:01:43 2729

原创 idea maven download source 失败

经常遇到idea download source 失败, 这里记录一下解决办法.在idea的terminal中执行mvn dependency:resolve -Dclassifier=sources即可.

2021-12-02 08:59:20 881 1

原创 spring cloud sleuth 自定义traceId, spanId日志pattern

spring cloud sleuth 默认情况下会将traceId 和 spanId 写到MDC里面, 然后根据配置的pattern会将这两个值写到日志文件或者console里面. 但是如果此时自己的业务逻辑中也需要往MDC里面写入数据,然后写到日志文件. 比如业务中需要将aId 和 bId 两个属性写入MDC, 想将traceId, spanId 和业务aid和bid都保存在日志中, 一般做法就想到的就是去配置logging pattern如下:logging: pattern: console

2021-12-01 19:38:52 4283

原创 快速导入大量数据到Neo4j实例实现.

文章目录背景依赖数据分析方法1: LOAD CSV方法2: neo4j admin import背景中文开放知识图谱含有大量开放的知识图谱数据,可以做实验研究使用. 该平台上的提交的数据格式各种各样, 所以一般下载了平台开放数据都要做一些简单的ETL操作,将原始数据转换为(entity, entity, relation) 这样的三元组,方便直接导入Neo4j 实例. 部分开放数据集数据量比较大,常规方法可能会导致导入速度慢, 本文探讨如何将大量数据快速导入Neo4j实例.依赖Neo4j 3.5.9

2021-05-28 19:48:39 951 1

原创 Neo4j 相似度计算结果去重问题

文章目录背景背景Neo4j 有提供GDS plugin 可以实现在Neo4j上完成一些常见的图计算算法. 业务中需要实现三种相似度计算算法. GDS 也涵盖了较多的相似度算法. 相似度算法的返回值基本就是(from, to, similarity) 这样的三元组. 但是直接调用算法函数返回的结果里面from和to有重复组合对. 比如下面一个例子:首先是创建图谱Cypher:CREATE (a1: `TypeA`)CREATE (a2: `TypeA`)CREATE (b1: `TypeB`)

2021-05-21 20:45:41 118 1

原创 docker容器启动Mysql执行初始化sql脚本实现

文章目录背景准备工作实现过程背景docker容器方式启动Mysql想在启动后执行一些初始化sql脚本(如创建访问数据库的user以及赋予相应权限,执行db创建sql脚本,执行table创建的sql脚本). 且这个初始化过程全局只运行一次(比如中途停掉容器再启动,不再运行脚本,这种全局运行一次的限制,不再sql脚本里面体现). 本文详细讲解如何实现这一过程.准备工作本地安装docker且安装docker-compose. 机器上安装的是docker desktop, 所以 docker-compose

2021-05-20 22:05:46 4212 1

原创 pandas 处理日期数据列

文章目录原始数据类型经常会遇到数据里面有时间相关的列, 时间列对于特征的构建非常重要, 下面主要总结一下时间列数据的处理.原始数据类型如下所示的DataFrame查看此列(Series.dtype)的取值类型和直接查看元素类型print(user_data['评论时间'].dtype)print(type(user_data['评论时间'][0]))结果:object<class 'str'>此列本质上是日期的字符串形式, 所以dtype是 object 单个元素类型是

2021-03-20 13:10:38 562

原创 SQL 窗口函数

文章目录SQL 窗口函数SQL 窗口函数

2021-02-05 19:04:43 226

原创 python中时间处理小结

文章目录python中时间处理python中时间处理

2021-01-28 10:24:50 234

原创 pandas merge小结

文章目录pandas mergepd.mergeDataFrame.join小结pandas mergemerge 是 DataFrame之间类似于SQL的表连接操作, pandas 本身提供了 pd.merge的方法完成连接, 同时DataFrame(Series不存在此方法)也提供了join方法完成连接, 本文主要分析一下两种方法的异同.pd.mergeDataFrame.join小结...

2021-01-27 17:17:01 449

原创 pandas数据分组聚合

pandas 数据分组聚合小结

2021-01-26 22:40:05 1071

原创 Spark弹性数据集之间的转换

Spark弹性数据集之间的转换基本转换小结RDD -> DataFrame:可以直接toDF 简单实现, 复杂结构是 构建RDD[Row] + StructType 实现DataFrame -> RDD:df.rdd 实现DataFrame -> Dataset:Dataset是强类型的DataFrame, 所以只需要 df.as[case class] 即可, 注意字段类型匹配Dataset -> DataFrame:df.toDF 即可Dataset -&gt

2021-01-16 13:48:02 187

空空如也

空空如也

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

TA关注的人

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