job和trans的参数详解
pan调用示例 sh pan.sh -rep=initech_pdi_repo -user=pgibbons -pass=lumburghsux -trans=TPS_reports_2011 -param:db_ip=$db_ip -param:db_name=$db_name 参数 参数说明 rep 企业或数据库存储库名称 user 仓库用户名 pass 仓库密码 trans 要启动的转换的名称(在存储库中显示) dir 包含转换的存储库目录,包括前导斜杠 file 如果调用的是本地 KTR 文件,则为文件名,如果不在本地目录中,则包括路径 level 日志级别(基本、详细、调试、行级别、错误、无) logfile 将日志输出写入的本地文件名 listdir 列出指定存储库中的目录 listtrans 列出指定存储库目录中的转换 listrep 列出可用的存储库 exprep 将所有存储库对象导出到一个 XML 文件 norep 防止 Pan 登录到存储库。如果您已经设置了 KETTLE_REPOSITORY、KE...
一些开发中需要注意的问题点
注意点1234567891011121314151617181920212223242526272829303132333435361. 过滤记录或者字段选择等组件, 无法出现上面步骤中的字段的时候,尝试在上面步骤中再次点击确定2. 两个数据流join前必须先进行排序操作。3. 数据流从计算器或join操作流出,并将流入另一join操作之前,需要插入一个字段选择插件。4. 表输入插件中,填写查询语句时,语句末尾不能加分号。~~ kettle8.2以上无此问题5. sql脚本插件中,填写sql语句时,语句末尾必须加分号,否则不会执行。~~ kettle8.2以上无此问题6. 引用变量时,采用${变量名}的方式引用,以免出现问题。此种引用方式还可以在变量内容后接其他字符串,例如:${key}_20151217会被解析为:value_2015217。7. job中执行多个trans时,如何确定trans执行的先后顺序?根据连接线的先后顺序执行,如果需要优先执行则先连接从开始到该trans的连线即可。8. 如果源数据中有空值,但是目标数据中不希望出...
关于记录集合里面的记录数
记录集合里面的记录数 该数量是指组件与组件之间通信的【缓存队列】的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...
