关于记录集合里面的记录数
记录集合里面的记录数 该数量是指组件与组件之间通信的【缓存队列】的size大小,Kettle内部用List实现该缓存队列,每一条语句都会被封装成一个 RowSet对象,每个组件之间都会有个List<RowSet>队列,源step每次会往该队列写一条数据,目标step每次会从队列读取一条数据。 kettle里面转换是并行的,数据是一条一条流经每个组件,队列大小采用默认的10000条即可。 但是当使用到【阻塞数据直至步骤完成】、【阻塞数据】相关组件时,则需要根据业务数据量扩大该size的大小。 否则,数据会一直在某两个组件之间的缓存队列中存放,当数量达到一定大小时,就会卡主不动。 缓存队列的大小对作业没有影响,查看源码发现,缓存队列由inputRowSet 和 outputRowset组成,底部实现是ArrayList,初始化创建的时候,默认容量为10,并不会直接创建设定长度的 数组。并且使用ArrayList的特性:当要添加的数据量超过数组的容量时候,ArrayList会动态扩容,size扩大1.5倍
记录kettle安装以及支持clickhouse进行开发
kettle下载地址 选择需要的版本,进入这个路径,下载这个ce 解压 kettle 安装包下载clickhouse所需驱动包 将 clickhouse-plugins文件夹复制到 kettle 的 data-integration\plugins文件夹里 复制驱动包里的其余jar包,粘贴到 kettle 的 data-integration\libswt\xxx 目录下(根据自己的系统而定,linux环境使用uname -r 先看下系统) 启动kettle编辑工具,双击 data-integration 目录下 Spoon.bat 启动
记录kettle安装以及支持clickhouse进行开发(基于kettle9.2)
todo 待改造,目前这种可以配置变量的地方却无法配置变量(不识别,只能写死),之后尝试改下 目前kettle最新的版本是9.2,但是es仅支持到6.4.2,而且也无法配置用户名和密码还有schema,所以需要对es-bulk-insert组件改造下下载源码(kettle github源码地址)(有些包可能国内网络下载不下来,而且国内镜像也没有,就需要单独去想办法了,有人需要的话我会把包发出来) 主要改两个类 ElasticSearchBulk ElasticSearchBulkDialog 前者是业务数据执行需要的,后者是那个组件框需要的,比如你点test,就会调用这个类的test方法 首先需要改pom文件,改成需要的版本 其次是这些在高版本中弃用的类和方法 在elastic官网中也给出了对应的替代方法(https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/_changing_the_application_8217_s_code.html#_how_to_migrate...
statefulset的使用
StatefulSet和Deployment控制器的区别 statefulSet下的Pod有DNS地址,通过解析Pod的DNS可以返回Pod的IP deployment下的Pod没有DNS 通过StatefulSet和headless service部署的服务效果 为什么要用headless service+statefulSet部署有状态应用?使用headless service+statefulSet可以实现 StatefulSet会为关联的Pod保持一个不变的Pod Name,其hostname格式为$(StatefulSet name)-$(序号【从0开始】) StatefulSet关联到的每一个Pod分配一个dnsName$<Pod Name>.$<service name>.$<namespace name>.svc.cluster.local headless service会为关联的statefulSet分配一个域,通过dns解析该域能获取到每个pod的ip+port<service name>.$<na...
记录k8s-service中的几种类型以及port区别
官方介绍k8s service 分为几种类型,分别为:ClusterIp (默认类型,每个Node分配一个集群内部的Ip,内部可以互相访问,外部无法访问集群内部) NodePort (基于ClusterIp,另外在每个Node上开放一个端口,可以从所有的位置访问这个地址) LoadBalance (基于NodePort,并且有云服务商在外部创建了一个负载均衡层,将流量导入到对应Port。要收费的,一般由云服务商提供,比如阿里云、AWS等均提供这种服务, k3s也默认提供了一个lbs - klipper-lb, 本地集群可以使用metallb, metallb解释文档) ExternalName (将外部地址经过集群内部的再一次封装,实际上就是集群DNS服务器将CNAME解析到了外部地址上,实现了集群内部访问) 例如,以下 Service 定义将 prod 名称空间中的 my-service 服务映射到 my.database.example.com: 12345678apiVersion: v1kind: Servicemetadata:name: my-service...
python生成requirements.txt的方法
python项目如何在另一个环境上重新构建项目所需要的运行环境依赖包? 使用的时候边记边加载是个很麻烦的事情,总会出现遗漏的包的问题,这个时候手动安装也很麻烦,不能确定代码报错的需要安装的包是什么版本。这些问题,requirements.txt都可以解决! 生成requirements.txt,有两种方式: 第一种 适用于单虚拟环境的情况1pip3 freeze > requirements.txt 为什么只适用于单虚拟环境?因为这种方式,会将环境中的依赖包全都加入,如果使用的全局环境,则下载的所有包在里面,不管是不是当前项目依赖的 当然这种情况并不是我们想要的,当我们使用的是全局环境时,可以使用第二种方法。 第二种 (推荐) 使用pipreqs github地址为:pipreq 12345# 安装# pip3 install pipreqs -i https://pypi.tuna.tsinghua.edu.cn/simple/pip3 install pipreqs# 在当前目录生成pipreqs . --encoding=utf8 --force 注意--e...
JMeter响应断言
JMeter中有个元件叫做断言(Assertion),它的作用和LoadRunner中的检查点类似。用于检查测试中得到的响应数据是否符合预期,用以保证性能测试过程中的数据交互与预期一致。 jmeter常用几种断言 Response Assertion(响应断言) Size Assertion(数据包字节大小断言) Duration Assertion(持续时间断言) beanshell 断言(自由断言) JSON断言 Response Assertion(响应断言)添加响应断言对Web请求的响应结果进行验证 输入需要匹配的字符串此处对于访问Baidu首页,需要设置匹配的字符串为“百度一下,你就知道”,表示返回的文本内容若包含有“百度一下,你就知道”,则就算Pass Response Assertion配置参数 模块类型 选项名称 配置说明 Name Response Assertion名称 Comments 注释 Apply to 断言应用的范围 Main sample and sub-samples 作用于父节点取样器及其子节点取...
Jmeter-性能测试详述
Jmeter介绍 jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单。因为jmeter是java开发的,所以运行的时候必须先要安装jdk才可以。jmeter是免安装的,拿到安装包之后直接解压就可以使用,同时它在linux/windows/macos上都可以使用。jmeter可以做接口测试和压力测试。其中接口测试的简单操作包括做http脚本(发get/post请求、加cookie、加header、加权限认证、上传文件)、做webservice脚本、参数化、断言、关联(正则表达式提取器和处理json-json path extractor)和jmeter操作数据库等等。 此外,还可以不断增大并发数直到接口响应出现error,测得一个系统能承载的最大并发数。 压力测试压测思路 设定x个线程去同时请求接口(人为指定并发数为x),测得此时的qps、平均耗时等值。然后逐渐增大并发数进行测试,随着并发数的增大qps会逐渐增大直到达到一个最大值。这时我们就得到了系统的一个qp...
jmeter安装/简单使用
Jmeter快速入门1.安装JmeterJmeter依赖于JDK,所以必须确保当前计算机上已经安装了JDK,并且配置了环境变量。 1.1.下载可以Apache Jmeter官网下载,地址:http://jmeter.apache.org/download_jmeter.cgi 1.2.解压因为下载的是zip包,解压缩即可使用,目录结构如下: 其中的bin目录就是执行的脚本,其中包含启动脚本: 1.3.运行双击即可运行,但是有两点注意: 启动速度比较慢,要耐心等待 启动后黑窗口不能关闭,否则Jmeter也跟着关闭了 2.快速入门2.1.设置中文语言默认Jmeter的语言是英文,需要设置: 效果: 注意:上面的配置只能保证本次运行是中文,如果要永久中文,需要修改Jmeter的配置文件 打开jmeter文件夹,在bin目录中找到 jmeter.properties,添加下面配置: 1language=zh_CN 注意:前面不要出现#,#代表注释,另外这里是下划线,不是中划线 2.2.基本用法在测试计划上点鼠标右键,选...
把jmeter结果数据写入到指定文件
背景:在日常的功能测试或者性能测试的时候,需要把结果中指定的数据保存到指定的文件,进行使用. 示例围绕 beanshell 来实现这个功能 下面从两个方面来实现:保存接口返回指定的数据从数据库用 SQL 语句取数据,保存结果到指定文件中保存接口返回指定的数据接口:登录 需求:提取 token 值 新建 HTTP 请求 请求返回的结果,这里直接用 JSON 显示: 新建 JSON 提取器 调试,看有没有获取到值添加 debug sampler 运行,查看 debug sampler 响应数据里面 token 有没有取到值 添加 beanshell 取样器 代码1234567891011121314151617181920212223242526272829303132333435363738//指定需要写入到xxx文件,若没有该文件会新建;若存在该文件,多次执行将以追加模式展示File file = new File("D:/xxx.txt");if (!file.exists()) { //创建失败会抛出异常throw new IO...
