慢慢翻 · 随手查
技术台账
PB、Oracle、医保接口、Kettle 与运维排错沉淀。
仅作个人知识整理与家庭备忘,不替代专业意见。
问题描述 场景 同步任务不能因为一行脏数据全部失败,也不能悄悄吞掉错误。 解决方案 推荐设计 1. 关键步骤开启错误处理,把错误行输出到错误表或文件。 2. 错误表记录任务名、批次号、主键、错误字段、错误信息、原始数据。 3. 每次运行结束
Wed Aug 05 Kettle问题 Kettle 大表分页抽取方案问题描述 场景 几千万行大表全量抽取容易超时、占 undo、压垮源库,需要分批处理。 解决方案 推荐方案 1. 按主键范围分页:id between ? and ?。 2. 按业务日期分页:每天或每小时一个批次。 3. 每批写入临时表后提交
Wed Aug 05 Kettle问题 Kettle 空值和默认值处理问题描述 场景 源库允许空值,目标库字段非空;或者源系统用空字符串、0、特殊日期表示未知,写入目标库时报错。 解决方案 推荐处理 1. 用“如果字段值为空”步骤补默认值。 2. 用“值映射”把特殊值转成标准值。 3. 目标库 NOT NUL
Wed Aug 05 Kettle问题 Kettle 作业变量和转换变量使用方法问题描述 场景 同一套转换需要在测试库、正式库、不同机构之间切换,不能把路径、连接、时间写死。 解决方案 推荐做法 1. 作业层定义环境变量,例如 ${ENV NAME}、${RUN DATE}。 2. 数据库连接使用变量配置 host、s
Wed Aug 05 Kettle问题 Kettle 日期时间字段转换问题问题描述 场景 跨 SQL Server、MySQL、Oracle 同步时,日期字段最容易出现格式不匹配、时分秒丢失、零日期转换失败。 解决方案 处理建议 1. 源端尽量输出真正的日期类型,不要 format 成字符串。 2. 必须字符串转
Wed Aug 05 Kettle问题 Kettle 中文乱码处理问题描述 场景 CSV、MySQL、SQL Server、Oracle 之间同步中文时,预览正常但写入乱码,或者文件读取乱码。 解决方案 排查顺序 1. 文件输入步骤确认编码:UTF 8、GBK、GB18030。 2. JDBC URL 确
Wed Aug 05 Kettle问题 Kettle 插入更新性能优化问题描述 场景 “插入/更新”步骤简单好用,但数据量大时速度慢,目标库压力高。 解决方案 优化建议 1. 小表维表可以继续使用插入/更新。 2. 大表先写目标临时表,再执行 merge。 3. 批量提交大小根据网络和数据库压力调整。 4.
Wed Aug 05 Kettle问题 Kettle 任务调度和日志保留问题描述 场景 Kettle 转换调试通过后,需要放到服务器定时运行,并能追踪失败原因。 解决方案 推荐方案 1. Windows 用任务计划程序调用 kitchen.bat 或 pan.bat。 2. 每个任务输出独立日志文件,按日期命名
Wed Aug 05 Kettle问题 Kettle MySQL 到 Oracle 数据提取配置问题描述 场景 互联网系统、随访平台、小程序后台等 MySQL 数据,需要同步到 Oracle 业务库或数据中心。 解决方案 推荐步骤 1. MySQL 连接 URL 增加字符集参数,例如 useUnicode=true&character
Wed Aug 05 Kettle问题 Kettle Oracle11G 到 Oracle19G 数据提取配置问题描述 场景 老 Oracle 11g 系统迁移或同步到 Oracle 19c,新库可能是 CDB/PDB 架构,连接串、字符集、驱动兼容都要提前确认。 解决方案 推荐步骤 1. 源库连接使用 11g 可兼容 JDBC 驱动,目标库使用
Wed Aug 05 Kettle问题 Kettle 增量同步水位设计问题描述 场景 定时任务不能每次全量同步,需要按更新时间、主键或业务时间做增量。 解决方案 推荐方案 1. 建一张 etl job watermark 表记录任务名、上次成功水位、执行时间。 2. 源端 SQL 使用 where updat
Wed Aug 05 Kettle问题 Kettle 表输入参数化 SQL 使用方法问题描述 场景 表输入需要根据上一步传入的时间、科室、机构或分页参数动态查询。 解决方案 操作步骤 1. 上一步准备字段,例如 start time、end time。 2. 表输入 SQL 使用问号占位。 3. 勾选“从步骤插入数据”。
Wed Aug 05