Vertica-Kettle测试记录
Vertica单线程导入
在kettle中建立csv->Vertica的直抽测试,抽取速率稳定,没有差距悬殊的峰值与谷值,
1.在表输出处设置提交记录数为10000时,平均速度在5.5w条记录/s左右,且在数据库中已正确插入。
2.在表输出处设置提交记录数为50000时,峰值速度7.2w条记录/s+,平均速度在7.2w条记录/s左右。
Vertica多线程导入
1.两个csv导入至Vertica table,总的平均导入速度在条记录6.7w条记录/s左右,整个导入过程无错误。
2.一个csv多线程导入至同一个Vertica table,总的平均导入速度在条记录9.2w条记录/s左右,整个导入过程无错误。
Vertica一亿条数据量进行ETL插入
按照所要求的etl流程进行测试,峰值速度在6.1w条记录/s左右,平均速度在条记录5.9w条记录/s左右。
在数据库中简单查询,已经将原本的birthday拆分成了year、date、month,汉族映射为01,功能成功实现
Vertica准实时增量抽取
整体测试结果为可以成功实现Vertica准实时增量抽取,抽取速度单线程导入速度为4.3w条记录/s,总体导入速度为8.6w条记录/s.
此部分实现有点复杂,分为几个部分逐步介绍。
增量实现
ETL任务设计方案:表中有一列列名为id的自增序列,判断需要被加载的表id字段的最大数值,将导入的数据表命名为incr_dest,导出的数据表命令为incr_source。where id >?作为参数传入第二个数据抽取步骤,与数据库表抽取2中被抽取的表id进行对比,数据库表抽取2中id比传入参数大的数据传给加载至数据库步骤。
此处使用多线程进行表输出,以加快导入速度。
准实时实现
实现要点:
- 模拟实时增加数据量的数据源:此处在Vertica库中建立incr_source表,在开始实时处理时启动导入任务。
- 实时增量抽取:建立任务进行简单调度,单次执行设置合适的时间间隔。
执行时先执行第一步增量转换,再配置并执行第二步实时作业调度。
模拟实时增加的数据源:csv直抽导入。
实时增量抽取:
- 增量抽取的转换实现:见第一步增量实现。
- 实时作业调度
-
Start配置如下:从执行后每15s再次执行,重复次数无限
-
-
转换2选择在上一步增量实现配置的转换即可。
准实时增量作业完成情况如下:
初始执行时间16:03
-
-
-
单线程导入速度为4.3w条记录/s,总体导入速度为8.6w条记录/s.