1. 初步体验:csv 转为excel
Windows环境下安装pdi-ce-8.0.0.0-28.zip ,解压后执行lib下的Spoon.bat
将csv输入拖入
双击拖进去的csv,浏览选择csv文件,其他配置默认
点击获取字段,然后再点击预览
同理将excel输出拖入到工作区
然后按下shift + 点击csv文件,并拖向Excel输出
按下ctrl+s,将代码保存到某个位置
然后双击Excel输出,设置输出位置
点击字段,点击获取字段,点击最小宽度,确认,然后点击执行按钮
文件即可导出成功
Kettle概念
Kettle is Visual Programming Language ,简称VPL , 图形化编程语言
对于kettle的转换,不能定义为一个执行顺序,因为所有的方式都以并发的方式执行,当转换启动后,所有的步骤都同时启动;
如果需要按照一定的顺序执行,需要用到Job
,作业Job就是一个串行的调度工具
配置mysql链接
将mysql驱动拷贝到lib下,配置mysql数据源的时候要注意设置useSSL为false
mysql 一对多关联查询结果保存到mongodb中
先看下职员信息表
资质信息
工作经验信息
设计将职员信息的uuid为_id主键,维护到mongodb中,而职员有多个资质,工作经验信息,资质和经验均以json数组的形式保存在职员对象中
例如
{
_id: '8160158147989553152',
staff_code: '0000111000',
itcode: 'KWLB002',
LEVEL: '02',
staff_name: 'lucy',
gender: 1,
birth_date: '20211208',
staff_category_code: '01',
department_code: '03',
place_code: '00',
judicial_entity_code: '0048',
fl_place_code: '01',
begin_work_time_1: '20211201',
enter_company_time_1: '20211202',
highest_education_code_1: '01',
import_stamp: '1639745876804',
certificate: [
{
name: '毕业证',
type: '03',
valid: '1'
},
{
name: '毕业证',
type: '04',
valid: '1'
}
],
experience: [
{
name: '微创ESS服务项目',
beginTime: '200701',
endTime: '200712'
},
{
name: '中储棉市场监测系统系统集成服务',
beginTime: '200801',
endTime: '200812'
},
{
name: '体育局运维服务二期',
beginTime: '201001',
endTime: '201012'
},
{
name: '项目18',
beginTime: '202001',
endTime: '202012'
},
{
name: '项目14',
beginTime: '202101',
endTime: '202112'
}
]
}
职员基本信息输入
SELECT
uuid AS _id,
staff_code,
itcode,
LEVEL,
staff_name,
gender,
birth_date,
staff_category_code,
post_code,
department_code,
place_code,
judicial_entity_code,
fl_place_code,
major_name,
work_years,
office_years,
begin_work_time_1,
enter_company_time_1,
highest_education_code_1,
graduated_school_1,
import_stamp
FROM bid_manager.b_staff_baseinfo
职员资质信息输入
SELECT staff_uuid as _id, CONCAT("[",GROUP_CONCAT( '{', '"name":"' ,certificate_name ,'"' ,',', '"type":"' ,type ,'"' ,',', '"valid":"',is_forever_valid ,'"' ,'}' ),"]") AS certificate FROM b_staff_certificate_info GROUP BY staff_uuid ;
职员工作经验输入
select staff_uuid as _id ,CONCAT("[",GROUP_CONCAT( '{', '"name":"' ,project_name ,'"' ,',', '"beginTime":"' ,begin_time ,'"' ,',', '"endTime":"',end_time ,'"' ,'}' ),"]") AS experience from b_staff_work_experience_info GROUP BY staff_uuid ;
mongoDB的设置为