Kettle实现从数据库中提取数据到Excel

您所在的位置:网站首页 从数据库中提取数据到excel Kettle实现从数据库中提取数据到Excel

Kettle实现从数据库中提取数据到Excel

2024-04-27 08:34| 来源: 网络整理| 查看: 265

因为有个日常提数,工作日每天都要从数据库中提取数据,转换为excel,再以邮件的形式发给用户。

刚好近期同事在研究使用kettle自动提数且完成邮件的发送,觉得很实用又挺有意思的就学了一下这个技能~

 

首先我们需要新建 转换 

转换: 可以将数据从数据库中提取到excel中 

 

然后我们如果想要定时提取数据的话,可以新建 作业

作业: 可以定时执行转换任务,然后还可以将发送邮件耶~ (不过这个技能我还不是很熟悉,等我熟悉了再更新嘻嘻)

 

一 、 新建转换

1.点击 + 号 ,也就是新建 ,然后选择 转换

 

2. 从 核心对象 视图切换为 主对象树 , 然后开始建立我们的数据库连接

双击 DB连接,会出现下图标记的 3 弹窗

填写数据库连接信息,我这里选择连接oracle数据库,必要填写的信息为红色标记框所标记的  数据库ip  数据库名 端口号 用户名 密码

 

 

3.数据库信息填写完后我们可以点击测试按钮,看看是否能正常连接(提示为 正确连接到数据库【test】,表示信息填写没有问题)

 

4. 切换视图: 主对象树  切换到 核心对象,我们开始设立我们的输入与输出

 

 

 5. 输入 : 我们 从输入的子菜单中选择  表输入

双击 表输入,会在右侧出现 表输入图标

双击右侧表输入图标,再次出现 下图标记4出现的弹窗

 

 

6. 在弹窗中,我们开始定义输入相关信息啦

关于sql语句,我们还有一点需要注意,就是日期形式的数据需要定义一下,不然导出的数据就会数值类型啦(49165..类似的)

oracle: to_char('2019-05-05','yyyy-MM-dd')

mysql: DATE_FORMAT('2019-05-05',''%Y-%m-%d')

 

7. 输入定义好后,我们开始定义输出啦。 这里我们选择以excel的形式输出数据

选择核心对象下的 输出,双击输出下的子菜单 Microsoft Excel输出 ,会出现右侧的输出图标

双击右侧的输出图标,出现右侧 5标记的弹窗信息

 

8.定义详细的输出

选定输出文件的位置,如果不写绝对路径则会输出在 kettle启动文件 Sqoon.bat的统计目录下

下面记得选中Excel 2007 and above

最后点击确定

 

9.点击执行按钮,然后就根据提示选择 保存

 

10. 执行转换

 

 11.执行成功后,我们回到桌面就会看到刚刚保存的文件啦~

 

二、新建 作业

1.点击 + 号,然后选择 作业

 

 

2.选择通用, START (双击,出现右侧开始图标)

 

3.在 START里面定义 怎么执行(我这里定义为每天9点执行)

 

 

4.双击通用下的 转换

 

5.配置转换相关信息

选中我们刚刚配置好的转换信息(保存位置看你自己之前保存在哪里哦,我是放在了桌面~) ,最后选择确定即可

 

6.点击执行,会要求我们先保存此次编辑的 作业信息 ,如下图

 

7. 保存好后,我们可以再次启动,运行啦~  (其实还可以导入文件 test.kjb)

 

最后提供一个发送邮件的 testzip.kjb  示例 (可直接使用kettle打开,更改邮件服务配置信息即可运行)

testzip / - 2019/06/17 11:35:43.098 - 2019/06/17 11:35:43.098 ID_JOB Y ID_JOB CHANNEL_ID Y CHANNEL_ID JOBNAME Y JOBNAME STATUS Y STATUS LINES_READ Y LINES_READ LINES_WRITTEN Y LINES_WRITTEN LINES_UPDATED Y LINES_UPDATED LINES_INPUT Y LINES_INPUT LINES_OUTPUT Y LINES_OUTPUT LINES_REJECTED Y LINES_REJECTED ERRORS Y ERRORS STARTDATE Y STARTDATE ENDDATE Y ENDDATE LOGDATE Y LOGDATE DEPDATE Y DEPDATE REPLAYDATE Y REPLAYDATE LOG_FIELD Y LOG_FIELD EXECUTING_SERVER N EXECUTING_SERVER EXECUTING_USER N EXECUTING_USER START_JOB_ENTRY N START_JOB_ENTRY CLIENT N CLIENT ID_BATCH Y ID_BATCH CHANNEL_ID Y CHANNEL_ID LOG_DATE Y LOG_DATE JOBNAME Y TRANSNAME JOBENTRYNAME Y STEPNAME LINES_READ Y LINES_READ LINES_WRITTEN Y LINES_WRITTEN LINES_UPDATED Y LINES_UPDATED LINES_INPUT Y LINES_INPUT LINES_OUTPUT Y LINES_OUTPUT LINES_REJECTED Y LINES_REJECTED ERRORS Y ERRORS RESULT Y RESULT NR_RESULT_ROWS Y NR_RESULT_ROWS NR_RESULT_FILES Y NR_RESULT_FILES LOG_FIELD N LOG_FIELD COPY_NR N COPY_NR ID_BATCH Y ID_BATCH CHANNEL_ID Y CHANNEL_ID LOG_DATE Y LOG_DATE LOGGING_OBJECT_TYPE Y LOGGING_OBJECT_TYPE OBJECT_NAME Y OBJECT_NAME OBJECT_COPY Y OBJECT_COPY REPOSITORY_DIRECTORY Y REPOSITORY_DIRECTORY FILENAME Y FILENAME OBJECT_ID Y OBJECT_ID OBJECT_REVISION Y OBJECT_REVISION PARENT_CHANNEL_ID Y PARENT_CHANNEL_ID ROOT_CHANNEL_ID Y ROOT_CHANNEL_ID N Zip 压缩文件 ZIP_FILE C:\Users\S0111\Desktop\最新运营中心KPI20190615.zip 1 0 D:\DEV_TOOLS\kettle\pdi-ce-7.1.0.0-12\data-integration\网上保单贷款2019-06-18.xlsx 0 Y N Y N N N yyyy/MM/dd HH:mm:ss N N 1 N Y 0 368 160 START SPECIAL Y N N 0 0 60 12 0 1 1 N Y 0 192 176 添加文件到结果文件中 ADD_RESULT_FILENAMES Y N N C:\Users\Administrator\Desktop\报表平台\kettle每周提数 *.zip N Y 0 528 176 发送邮件 MAIL 11.22.33.44 25 [email protected] [email protected] 嗯嗯嗯嗯 N test mail Y N N N Encrypted Y N N UTF-8 normal normal normal SSL GENERAL N Y 0 672 176 START Zip 压缩文件 0 0 Y Y Y 添加文件到结果文件中 发送邮件 0 0 Y Y N Zip 压缩文件 添加文件到结果文件中 0 0 Y Y N

  

 ps: 详细示例请从github中下载源码信息~ (打开查看详情,需要本机已安装kettle)

github地址: https://github.com/DFX339/kettle_operate 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3