kettle使用--1.mysql多表关联导入mongoDB

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的设置为
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值