文章目录

  • 1. 初步体验:csv 转为excel
  • Kettle概念
  • 配置mysql链接
  • mysql 一对多关联查询结果保存到mongodb中


1. 初步体验:csv 转为excel

Windows环境下安装pdi-ce-8.0.0.0-28.zip ,解压后执行lib下的Spoon.bat

kettle的mongodb delete控件 kettle连接mongodb_mongodb


kettle的mongodb delete控件 kettle连接mongodb_mysql_02


将csv输入拖入

双击拖进去的csv,浏览选择csv文件,其他配置默认

kettle的mongodb delete控件 kettle连接mongodb_mongodb_03


点击获取字段,然后再点击预览同理将excel输出拖入到工作区

kettle的mongodb delete控件 kettle连接mongodb_字段_04


然后按下shift + 点击csv文件,并拖向Excel输出

kettle的mongodb delete控件 kettle连接mongodb_数据库_05


按下ctrl+s,将代码保存到某个位置

然后双击Excel输出,设置输出位置

kettle的mongodb delete控件 kettle连接mongodb_mysql_06


点击字段,点击获取字段,点击最小宽度,确认,然后点击执行按钮

kettle的mongodb delete控件 kettle连接mongodb_mysql_07


文件即可导出成功

Kettle概念

Kettle is Visual Programming Language ,简称VPL , 图形化编程语言

对于kettle的转换,不能定义为一个执行顺序,因为所有的方式都以并发的方式执行,当转换启动后,所有的步骤都同时启动;
如果需要按照一定的顺序执行,需要用到Job,作业Job就是一个串行的调度工具

配置mysql链接

将mysql驱动拷贝到lib下,配置mysql数据源的时候要注意设置useSSL为false

kettle的mongodb delete控件 kettle连接mongodb_mysql_08

mysql 一对多关联查询结果保存到mongodb中

kettle的mongodb delete控件 kettle连接mongodb_数据库_09


先看下职员信息表

kettle的mongodb delete控件 kettle连接mongodb_字段_10

资质信息

kettle的mongodb delete控件 kettle连接mongodb_字段_11

工作经验信息

kettle的mongodb delete控件 kettle连接mongodb_字段_12

设计将职员信息的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 ;

kettle的mongodb delete控件 kettle连接mongodb_数据库_13


kettle的mongodb delete控件 kettle连接mongodb_字段_14

mongoDB的设置为

kettle的mongodb delete控件 kettle连接mongodb_mysql_15


kettle的mongodb delete控件 kettle连接mongodb_字段_16


kettle的mongodb delete控件 kettle连接mongodb_字段_17