需求描述:
客户端有一个程序定时(15分钟间隔)的采集外网数据,不过需要将该数据保存到线上数据库的表中。但是由于客户端程序在本地,无法直接访问线上数据库。需要解决将该数据,写入到线上数据库的问题。
csv的格式如下:
1 1 1h
2 2 2h
....底下省略
表的结构跟csv的字段一样的。
id hour_id hour_desc
1 1 1h
2 2 2h
方案:
1,本地的客户端程序,将采集到的外网数据先存在本地的tsa_dim_hour表中。
2,然后再本地起一个定时任务,将本地tsa_dim_hour表的数据生成csv文件。然后将该文件上传到ftp服务器。
3,在线上由kettle定时的从ftp上取该文件,将从ftp下的文件下载下来
4,然后将csv的数据更新到表中。因为csv的数据,由应用每隔15分钟向其增量插入数据。所以我拿到整个csv文件时,需要采用insert-update的方式。
步骤如下:
1,客户端将采集到的外网数据插入本地表的步骤省略。
2,本地将相关表的数据导出成csv格式。
在D盘目录下有两个文件:
文件dumpCallcenterData.bat内容如下:
@cd d:/
del test.csv
echo "删除数据文件"
mysql -uroot -proot -D tsa < test.sql
文件test.sql内容如下:
use tsa;
select * from tsa_dim_hour
into outfile 'd:/test.csv'
fields terminated by ',' optionally enclosed by '"' escaped by '"'
lines terminated by '\r\n';
在本地起一个windows定时任务,每隔15分钟就将该表的数据导出成test.csv的文件。并将其上传到ftp服务器上。
3,将csv的文本数据同步到表中,我采用的是kettle的方案。
这个是相关的job,到时候上线的话,会设置间隔执行的时间。
图一:
以下为Get a file with FTPS的内容,这里需要注意的是remote directory可以不指定,不然会报Return Value: 550 Description: Failed to change directory. 的错误。因为我的ftp账号没有相关权限吧。
图二:
图三:图一中的transformation
这里需要注意的是,由于csv的数据没有表头,所以需要考虑如何将csv的列数据,与表中的字段一一对应上。一般可以利用获取字段,在我们的这种情况下,就会取得csv中的第一行的数据作为字段名称。所以这里就手动输入相关名称就可以了。
由于excel中的date_id,starttime,endtime为date,datetime,datetime类型,需要在后面的format上指定转换格式。因此分别指定如下:yyyy-MM-dd,yyyy-MM-dd HH:mi:ss,yyyy-MM-dd HH:mi:ss,按照此种方案,发现date_id会报错,错误如下:
Error in step, asking everyone to stop because of:
Date<binary-string> : Unable to compare with value [Date]
date_id String : couldn't convert string [2011/07/03 00:00:00.000] to a date using format [yyyy-MM-dd]
Unparseable date: "2011/07/03 00:00:00.000"
解决方案为:
Since you enabled the "lazy conversion" option in the "CSV Input" step, the data is only convert when needed. In this case, in the Dimension step.
Uncheck the "lazy conversion" option to see the error happen in the "CSV Input" step.
图四:insert-update
- 大小: 10 KB
- 大小: 51.8 KB
- 大小: 5.6 KB
- 大小: 59.2 KB
- 大小: 65.1 KB
分享到:
相关推荐
《Kettle与达梦数据库的整合:深入理解kettle-core-8.1.0.0-365_kettle_kettle达梦8_》 Kettle,也被称为Pentaho Data Integration (PDI),是一款强大的数据集成工具,它提供了一种图形化的界面,让用户能够设计、...
《详解kettle之User Defined Java Class步骤》示例代码,是最详细的udjc步骤说明文档,有示例理解更容易,更全面。
【课程大纲】01.etl使用简介_开源KETTLE 共18页.pptx02.KETTLE的使用 共19页.pptx03.KETTLE之Step流程设计 共4页.pptx06.KETTLE之Job流程设计 共4页.pptx08.KETTLE之流程性能调优与监控 共3页.pptx09.KETTLE之嵌入...
【课程大纲】01.etl使用简介_开源KETTLE 共18页.pptx02.KETTLE的使用 共19页.pptx03.KETTLE之Step流程设计 共4页.pptx06.KETTLE之Job流程设计 共4页.pptx08.KETTLE之流程性能调优与监控 共3页.pptx09.KETTLE之嵌入...
【课程大纲】01.etl使用简介_开源KETTLE 共18页.pptx02.KETTLE的使用 共19页.pptx03.KETTLE之Step流程设计 共4页.pptx06.KETTLE之Job流程设计 共4页.pptx08.KETTLE之流程性能调优与监控 共3页.pptx09.KETTLE之嵌入...
【ETL技术与Kettle详解】 ETL,即Extract-Transform-Load的缩写,是数据仓库领域中的关键过程,用于从不同的数据源提取数据,对其进行转换以满足特定需求,最后加载到目标系统中,例如数据仓库。这个过程旨在清理、...
【课程大纲】01.etl使用简介_开源KETTLE 共18页.pptx02.KETTLE的使用 共19页.pptx03.KETTLE之Step流程设计 共4页.pptx06.KETTLE之Job流程设计 共4页.pptx08.KETTLE之流程性能调优与监控 共3页.pptx09.KETTLE之嵌入...
【课程大纲】01.etl使用简介_开源KETTLE 共18页.pptx02.KETTLE的使用 共19页.pptx03.KETTLE之Step流程设计 共4页.pptx06.KETTLE之Job流程设计 共4页.pptx08.KETTLE之流程性能调优与监控 共3页.pptx09.KETTLE之嵌入...
【课程大纲】01.etl使用简介_开源KETTLE 共18页.pptx02.KETTLE的使用 共19页.pptx03.KETTLE之Step流程设计 共4页.pptx06.KETTLE之Job流程设计 共4页.pptx08.KETTLE之流程性能调优与监控 共3页.pptx09.KETTLE之嵌入...
【课程大纲】01.etl使用简介_开源KETTLE 共18页.pptx02.KETTLE的使用 共19页.pptx03.KETTLE之Step流程设计 共4页.pptx06.KETTLE之Job流程设计 共4页.pptx08.KETTLE之流程性能调优与监控 共3页.pptx09.KETTLE之嵌入...
kettle 设置循环变量 Kettle 是一个功能强大的数据集成工具,广泛应用于数据抽取、转换和加载(ETL)过程中。为了提高数据处理效率和灵活性,Kettle 提供了设置循环变量的功能,控制循环作业的执行。下面我们将详细...
### Kettle二次开发详解 #### 一、引言 Pentaho Data Integration (PDI) 或称为 Kettle,是一款强大的开源 ETL (Extract, Transform, Load) 工具,广泛应用于数据集成领域。Kettle 以其高度可扩展性和灵活性而闻名...
我自己编写的KETTLE6.1与KETTLE7.1版本之间的差距比较
【Kettle012】Kettle访问FTP服务器文件并处理数据至PostgreSQL是关于使用Kettle(也称为Pentaho Data Integration,简称PDI)工具进行数据集成的一个具体实例。Kettle是一个开源的数据集成工具,它允许用户通过图形...
Java集成Kettle所有Jar包是一项常见的任务,尤其对于那些在数据处理、ETL(提取、转换、加载)项目中使用Kettle(也称为Pentaho Data Integration或PDI)的开发者来说。Kettle是一个强大的开源数据集成工具,它提供...
资源库管理是Kettle的核心功能之一,提供了资源库的创建、更新、登录和用户管理等功能。用户可以根据需要创建新的资源库,更新现有的资源库,并对资源库进行登录和用户管理。 1.1 新建资源库 新建资源库是Kettle中...
网上看了很多的kettle通过将表名设置成变量,然后进行多表批量同步的帖子,发现多多少少都会有问题。而此类功能简单的问题对于新手而言需要花很多的时间去琢磨,本人作为新手也琢磨很久,最后经大神们指点验证,将...
标题:“kettle实战教程.pdf” 描述:“全网最详细的kettle教程” Kettle,也称为Pentaho Data Integration (PDI),是一款开源的ETL(抽取、转换、加载)工具,主要被用于数据仓库、数据迁移、数据转换等场景。本...
标题 "springboot整合kettle项目源码" 描述了一个基于Spring Boot框架的集成Kettle(Pentaho Data Integration,简称KDI)的工程实例。Kettle是一款强大的ETL(提取、转换、加载)工具,它允许开发者通过编写Java...
### Kettle源码部署知识点详解 #### 一、Kettle简介与价值 Kettle是一款知名的开源ETL(Extract-Transform-Load)工具,以其强大的功能和直观易用的图形界面著称。它允许用户轻松地从多种数据源抽取数据,进行必要...