kettle数据上传

文章讨论了数据库中的字符串处理函数如substr和instr的不同用法,提到了日期格式的正确选择,以及如何优化传输速率,包括调整MySQL配置如useServerPrepStmts和useCompression。同时,还涉及读写操作的性能提升策略,如defaultFetchSize和rewriteBatchedStatements的使用。

1-实际值过大:substr
substr(t4.检验结果 ,0,20)  结果,
————————————————
2、instr函数也有三种情况:

instr(字段,’关键字’)>0相当于 字段like ‘%关键字%’

instr(字段,’关键字’)=1相当于 字段like ‘关键字%’

instr(字段,’关键字’)=0相当于 字段not like ‘%关键字%’
————————————————
3、日期格式不对
字段选择元数据,选择类型以及格式
————————————————
4、传输速率过慢
输入表:选项加入
(1)增加读操作
useServerPrepStmts:true
cachePrepStmts:true
(2)读取缓存,设置过高消耗内存也会高
defaultFetchSize:10000
useCursorFetch:true
(3)压缩数据传入,与mysql服务端进行通信时采用压缩
useCompression:true

目标表:选项加入
defaultFetchSize:5000
(1)提高写的操作
rewriteBatchedStatements:true
useServerPrepStmts:false
useCursorFetch:true
(2)设置与mysql服务器通讯时压缩数据传入
useCompression:true
————————————————

to_char(t.入院日期,'yyyy-mm-dd hh24:mm:ss') 入院时间,
to_char(t.出院日期,'yyyy-mm-dd hh24:mm:ss') 出院时间,
————————————————


 

### 使用 Kettle 实现 SFTP 文件上传的配置教程 Kettle(Pentaho Data Integration)是一种强大的开源 ETL 工具,支持多种数据处理和传输任务。通过使用 Kettle 的内置步骤,可以轻松实现文件的 SFTP 上传功能。以下是关于如何使用 Kettle 实现 SFTP 文件上传的详细指南。 #### 1. 准备工作 在开始之前,请确保以下条件已满足: - 已安装并配置好 Kettle 环境[^4]。 - 需要上传的文件已准备好,并确定其路径。 - 目标服务器支持 SFTP 协议,并已获取正确的访问凭据(如用户名、密码或密钥)。 #### 2. 创建转换 (Transformation) 打开 Kettle 的 Spoon GUI 工具,创建一个新的转换文件 (.ktr)。 #### 3. 添加必要的步骤 在 Kettle 中,可以通过以下步骤实现文件的 SFTP 上传: - **Get File Names**:用于获取需要上传的文件列表。 - **Write to Log**(可选):记录日志以便调试。 - **Put File(s) on FTP/SFTP Server**:这是核心步骤,用于将文件上传到 SFTP 服务器。 ##### 3.1 配置 "Get File Names" - 拖动 "Get File Names" 步骤到画布上。 - 双击该步骤进行配置。 - 在 "Directory" 字段中指定文件所在的本地目录。 - 在 "Filemask" 字段中定义文件过滤规则(例如 `*.csv` 表示所有 CSV 文件)[^3]。 ##### 3.2 配置 "Put File(s) on FTP/SFTP Server" - 拖动 "Put File(s) on FTP/SFTP Server" 步骤到画布上。 - 连接 "Get File Names" 和 "Put File(s) on FTP/SFTP Server"。 - 双击 "Put File(s) on FTP/SFTP Server" 进行配置。 - 在 "Server name or IP address" 字段中输入目标 SFTP 服务器的地址。 - 在 "Username" 和 "Password" 字段中输入登录凭据。如果使用密钥认证,请选择 "Key file" 并指定私钥路径[^4]。 - 在 "Remote directory" 字段中指定目标服务器上的目录路径。 - 勾选 "Use SFTP" 以启用 SFTP 协议。 #### 4. 测试连接 在 "Put File(s) on FTP/SFTP Server" 的配置窗口中,点击 "Test connection" 按钮以验证与 SFTP 服务器的连接是否成功。如果连接失败,请检查凭据或网络设置。 #### 5. 执行转换 保存并运行转换文件 (.ktr),观察日志输出以确认文件是否成功上传至 SFTP 服务器。 #### 6. 调试与优化 如果遇到问题,可以通过以下方法进行排查: - 检查目标服务器的权限设置。 - 确保本地文件路径正确。 - 查看 Kettle 日志输出,定位错误原因。 --- ### 示例代码:通过 Java API 实现 SFTP 文件上传 如果需要通过编程方式实现 SFTP 文件上传,可以参考以下 Java 示例代码: ```java import com.jcraft.jsch.ChannelSftp; import com.jcraft.jsch.JSch; import com.jcraft.jsch.Session; import java.io.File; import java.io.FileInputStream; public class SFTPUploader { public static void uploadFile(String host, int port, String user, String password, String remotePath, File localFile) throws Exception { JSch jsch = new JSch(); Session session = jsch.getSession(user, host, port); session.setPassword(password); session.setConfig("StrictHostKeyChecking", "no"); session.connect(); ChannelSftp channelSftp = (ChannelSftp) session.openChannel("sftp"); channelSftp.connect(); try (FileInputStream fis = new FileInputStream(localFile)) { channelSftp.cd(remotePath); channelSftp.put(fis, localFile.getName()); } finally { channelSftp.disconnect(); session.disconnect(); } } public static void main(String[] args) { try { File file = new File("/path/to/local/file.txt"); uploadFile("sftp.example.com", 22, "username", "password", "/remote/path", file); System.out.println("File uploaded successfully."); } catch (Exception e) { e.printStackTrace(); } } } ``` 此代码使用 JSch 库实现了 SFTP 文件上传功能[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值