简介这是一份围绕 ETL 与 Kettle 基础入门的 PPT 讲解资料面向具备一定编程基础、工作 13 年的研发人员帮助读者建立从数据抽取、转换到装载的完整认知并解决 Kettle 安装配置、数据库连接与数据同步实践中的基础问题。压缩包内为 1 个 pptx 文件约 859KB以 26 页幻灯片组织内容便于按章节浏览和课堂式讲解。已有 1466 人学习。资料以 PDI 9.2 演示覆盖 ETL 基本流程、Kettle 的定位与目录结构、转换和作业的区别、步骤与跳及数据行的核心概念也涉及数据库连接方式、使用注意事项和常见不足点。读者可结合 MySQL、Oracle 环境练习安装、任务编排与数据同步调优逐步理解 Kettle 在项目中的落地方式适合作为入门梳理与后续实践查阅的提纲。1. 先别急着装软件ETL 和 Kettle 到底是什么刚碰数据仓库的人十个里有八个会在某个下午卡在同一个问题上两份表格明明都在自己电脑里复制粘贴十分钟就干完了为什么团队非要装一个叫 Kettle 的软件这个疑问特别正常也正好是 ETL 入门要跨的第一道坎。ETL 是三个英文词的缩写——抽取、转换、装载说白一点就是把散落在各个业务系统里的数据捞出来洗干净、把格式统一再整整齐齐搬进数据仓库这一个地方。而 Kettle现在官方叫 PDI就是做这件事的一款开源工具纯 Java 编写拖拖拽拽就能把流程搭出来不用从零写代码。这套讲解材料讲的就是它的基础怎么装、目录里都是什么、转换和作业怎么用适合会一点数据库、但完全没碰过 ETL 工具的人从零开始。2. 为什么值得学手工导数据的三个硬伤和 ETL 的三段式2.1 先看清痛点手工导数据到底会在哪一步出问题先不讲工具讲个你大概率见过的场面。月底要出一份经营报表订单数据在业务系统里客户资料在同事发来的表格里还有一批三年前的历史数据躺在老系统导出的文本文件里。手工做法是打开表格软件一列一列复制遇到日期格式不一样就手动改遇到客户名前后带空格就一个个删遇到金额带千分位就再调一次格式。第一次做花两小时第二次做还是两小时因为上一次怎么处理的根本没人记下来。这里有三处硬伤第一处是重复劳动。只要数据源的导出方式不变这套手工动作每个月都要原样重来一遍做得越久越觉得自己像个复制粘贴机器。第二处是没有留下记录。手工处理的过程全在你脑子里和鼠标上哪天报表数字对不上你没办法回溯到底是哪一步改错了整个链路就是个黑匣子。第三处是量一大就崩。表格软件有行数上限几十万行还能凑合上百万行打开就开始转圈更别提多个数据源还要互相对齐。这三处硬伤正是 ETL 工具存在的理由。它不是把复制粘贴换个界面重做一遍而是把「怎么取数、怎么洗、怎么放」这三段逻辑固定成一份可以反复执行、可以给别人看、出错能查的流程文件。你搭一次以后每次点一下运行就行中间改过哪一步也留在文件里谁接手都能看懂。2.2 拆开 ETL 三段式抽取、转换、装载各管一段把 ETL 三个字母拆开看其实很像做一顿饭的三个动作买菜、洗切炒、装盘上桌。Extract 是抽取也就是买菜。它负责把数据从各种原始的业务系统里读出来这是所有工作的前提。抽取过程往往要连好几个不同的数据源可能是一个关系库可能是一批文本文件也可能是某个系统定时导出的表格。这一步看上去简单又琐碎实际上它是整个方案能不能成的一个主要障碍——源系统的表结构变了、字段含义和你以为的不一样、编码对不上问题基本都出在这一段。Transform 是转换也就是洗切炒。它按照预先设计好的规则把抽出来的数据加工成统一的样子让本来异构的数据格式能对齐。要注意任何对数据的处理过程都算转换范围比新手想的宽得多按规则验证数据对不对、修改数据的内容和结构、把多个数据源的数据合到一起、根据已有字段算出派生值和汇总值全都属于转换。你在表格里删一个空格是转换你在代码里写一段 case when 也是转换区别只在于工具帮你把这一步固定下来了。Load 是装载也就是装盘上桌。它把转换完的数据按计划增量或者全量地导入到数据仓库里也就是把数据写进目标系统的所有操作。增量是指只搬这次新增或变化的部分全量是指整批重来一遍。选哪种不取决于喜好取决于数据量和目标表能不能承受重复写入。三段里新手最容易低估的是抽取最容易写乱的是转换最容易忽略的是装载的幂等性——同一批数据跑两遍目标表里会不会多出一份。带着这三个词去看任何 ETL 工具你都不会迷路。2.3 Kettle 凭什么适合新手绿色免安装加上拖拽界面市面上做这件事的工具分两拨一拨是商业套件功能全、服务好但要授权另一拨是开源工具Kettle 就是开源这一拨里普及度很高的一个。它有几个特点对新手特别友好。第一纯 Java 编写能在 Windows、Linux、Unix 上跑你在自己笔记本上搭的流程搬到服务器上基本不用改。第二绿色免安装下载下来解压就能用不写注册表、不装服务、不需要管理员权限这一点对在公司电脑上练手的人太重要了。第三图形化界面靠拖拽连线的方​​式搭流程不用一上来就写几百行代码你能先看见数据是怎么流的再去理解背后的逻辑。第四内置的数据加工组件很多也支持多种脚本遇到组件搞不定的场景还能自己写一段补上。第五开放源代码并且提供 SDK公司里真要做二次开发包装也有路可走。它内部只有两种文件记住这两个词后面所有内容都挂在这上面transformation 叫转换负责针对数据的基础加工job 叫作业负责整个工作流的控制。转换管「怎么处理数据」作业管「先做啥后做啥」。新手常犯的错是把两者混为一谈结果在一个转换里拼命找「按顺序执行」的开关找不到就开始怀疑工具。另外提一句前置知识。这套材料假设你有一定的编程基础熟悉常见的关系型数据库会写最基本的查询语句。如果你连「一张表有主键」「怎么用 SQL 查几张表关联」都还没概念建议先花两天补上这块不然学到连接数据库那一步会很痛苦。反过来说只要你会写简单 SQL、能看懂字段和类型剩下的门槛并不高。3. 第一步怎么迈把 PDI 9.2 跑起来的四个动作3.1 下载与解压为什么它压根不需要「安装」找安装包的方式很简单在开源托管站点搜索 PDI找到 9.2 这个版本下载压缩包就行。别去乱七八糟的下载站那些站点经常把压缩包重新打一遍塞进一些你不需要的东西。下载完是解压不是双击安装。这里有一条容易出错的经验解压路径不要带中文也不要有空格。原因在于工具内部有不少批处理脚本和配置文件路径里的空格会被当成参数分隔符中文在某些系统的默认编码下会解析失败。你可能会遇到界面能打开、但一跑转换就报找不到文件的情况排查半天最后发现是文件夹名字叫「新建 文件夹」。建议的路径长这样Windows 上放D:\pdi9\Linux 上放/opt/pdi9/都是纯英文、无空格、层级浅。解压完成后你会看到一个目录里面几十个文件别慌下一节挑重点讲。还有一点这套东西不需要装服务、不需要改系统配置用完想删直接删文件夹。这也是很多人愿意拿它练手的原因试错成本几乎为零。3.2 解压目录看一眼记住五个文件就够用了打开解压目录第一眼会觉得乱。其实对新手来说先认清下面这些就够了其余的等用到再查。文件或目录作用新手要不要碰Spoon.bat / spoon.sh启动图形界面你 90% 的时间在这里天天用Kitchen.bat / kitchen.sh命令行运行作业后期用Pan.bat / pan.sh命令行运行转换后期用Carte.bat / carte.sh启动集群相关服务先别碰set-pentaho-env.bat / .sh设置环境变量的脚本出问题时看lib支持库数据库驱动 jar 放这里连库失败时用plugins插件目录扩展功能放这里后期用samples自带示例学习的好材料建议翻一翻classes生命周期监听、注册表扩展、日志的配置文件先别碰simple-jndiJNDI 连接配置先别碰再补几个你会在目录里看到但暂时用不上的docs是文档launcher是启动配置libswt是图形界面依赖的库pwd是集群相关配置system是系统目录ui是软件界面资源Encr.bat提供加密算法相关命令Import.bat是导入命令SpoonDebug.bat是以调试方式启动界面。看不明白没关系知道「它大概属于哪一类」就行。这里有个实用建议samples目录里放着一批自带例子等你把第一个转换跑通之后回来打开几个看看别人是怎么连步骤的比自己瞎试快得多。另外lib目录值得记牢后面连数据库连不上十有八九是要往这里放一个驱动文件。3.3 双击 Spoon 之前先确认 Java 环境它是纯 Java 写的所以机器上必须有 Java 运行环境。先打开终端或命令行敲一句# 查看当前生效的 Java 版本 java -version # 顺便看一眼 JAVA_HOME 有没有配 echo $JAVA_HOME第一行会输出类似java version 1.8.0_xxx的内容看到具体版本号就说明 Java 在。如果提示「不是内部或外部命令」那就是没装或者没配到环境变量里。第二行如果输出为空说明JAVA_HOME没设置这种情况在 Windows 上很常见。版本上装 Java 8 是最稳的选择具体以解压包里附带的说明为准。Windows 上设置环境变量的位置在系统属性的高级选项里新建一个名为JAVA_HOME的变量指向 JDK 目录再把%JAVA_HOME%\bin加进Path。Linux 上则在 shell 的配置文件里 export 这两个变量。配完之后别急着开界面先在命令行里再敲一次java -version确认新开的窗口能读到。这一步的意义在于目录里那个set-pentaho-env脚本会自己去猜 Java 在哪猜不到的时候界面就起不来而它给的中文或英文报错往往只有一行新手容易看漏。3.4 第一次进主界面认准三个区域不要乱点双击Spoon.batLinux 下执行spoon.sh等几秒会出现启动画面然后进主界面。第一次打开可能弹出一个选择存储库的窗口直接取消或者选「不使用存储库」都可以新手阶段把文件存在本地就行。主界面看着复杂其实只要认三个区域。左边是核心对象面板按类别列出了各种步骤你要用的「CSV 文件输入」「表输出」「字段选择」都在里面用的时候拖到中间画布上。中间是画布你搭的流程就长在这里步骤是方框跳是带箭头的连线。下方是执行结果和日志区转换跑起来之后每一步读了多少行、写了多少行、有没有报错全在这里显示。还有一个位置要留意左上角或顶部有「转换」和「作业」两个标签。新建的时候选错标签页会出现「拖了一个步骤进来但连不上」的尴尬情况。养成习惯做数据处理就开转换做流程调度就开作业。第一次进来建议什么业务都别做就拖两个步骤到画布上用鼠标按住其中一个方框的边缘往另一个方框上拉一条线。拉成功了你会看到一条带箭头的连线这就是跳。这个小动作练熟后面所有流程都是它的组合。4. 吃透两个核心概念转换和作业到底差在哪4.1 转换一条处理数据行的流水线转换是 ETL 解决方案里最主要的部分它处理的是抽取、转换、加载这些针对数据行的操作。一个转换里包含一个或多个步骤比如读取文件、过滤数据行、清洗数据、把数据加载进数据库。步骤之间通过跳来连接跳定义的是一个单向通道允许数据从一个步骤流向另一个步骤。这里有个关键点要先立住在 Kettle 里数据的单位是行数据流就是数据行从一个步骤移动到另一个步骤的过程有时候也叫记录流。所以你脑子里应该建立的画面是一条流水线一行数据从入口进来经过一个个工位被加工最后从出口出去。不是「先执行 A 再执行 B」的脚本思维而是「数据同时流经所有工位」的管道思维。这个思维差别会直接影响你搭流程的方式。比如你想先过滤再排序在脚本里是两行代码的先后关系在这里是两个步骤用跳连起来箭头方向就是数据流方向连反了结果就不对。新手最常见的翻车就是把跳连反跑完发现目标表是空的还以为是数据库的问题。转换文件保存下来是一个独立文件可以单独运行也可以被作业调用。它不负责「什么时候跑」「跑失败了要不要重试」这类问题那些是作业的事。4.2 步骤、跳和行集Kettle 运转的三个零件步骤是转换里的基本组成单位也就是你在画布上拖来拖去的那些方框。它有四个关键特性值得记住第一每个步骤要有一个名字而且这个名字在同一个转换范围内必须唯一重名了会出问题第二每个步骤都会读写数据行唯一的例外是「生成记录」这种只写不读的步骤第三步骤会把数据写到与它相连的一个或多个输出跳再送到跳另一端的步骤第四大多数步骤可以有多个输出跳。多个输出跳引出一个必考概念分发和复制。分发是指目标步骤轮流接收记录第一行给 A第二行给 B第三行再给 A复制是指所有记录同时发送到所有目标步骤A 和 B 各拿一份完整的。这两个选错了数据量会翻倍或者少一半而且不会报错只能靠你自己核对行数发现。搭多路输出的时候双击跳的连线就能看到这个设置。跳是步骤之间那条带箭头的连线。它不只是一根线实际上是两个步骤之间一个叫行集的数据行缓存行集的大小可以在转换的设置里定义。这个缓存机制带来一个很直观的规则行集满了往里写数据的步骤就停下来等行集空了从里面读数据的步骤也停下来等。所以整条流水线是自动互相配合的快的工位会被慢的工位自动拖住不会出现一边猛灌一边跟不上的情况。这个基于行集缓存的规则还有一个重要后果每个步骤都可以由一个独立的线程运行并发程度最高同时数据以最省内存的流式方式处理。数据仓库经常要处理大量数据这种「并发 低内存」的组合正是 ETL 工具的核心需求。也正因为如此转换里不可能定义执行顺序——转换一启动所有步骤同时开始各自从输入跳读数据、往输出跳写数据直到跳里没数据了才停全部步骤都停了整个转换才结束。想要按顺序执行任务就得用作业。最后说一下数据行本身。一行数据是零到多个字段的集合字段的类型有这么几种String 是字符类型Number 是双精度浮点数Integer 是带符号的长整型64 位BigNumber 是任意精度数据Date 是带毫秒精度的日期时间Boolean 取 true 或 falseBinary 是二进制字段可以装图像、声音、视频这类内容。每个步骤输出数据行时还会带一份字段描述也就是元数据通常包括名称、数据类型、格式、长度、精度、货币符号、小数点符号和分组符号。小数点在不同文化背景下可能是点也可能是逗号这个坑在做跨国数据的时候会突然冒出来提前知道有这回事就行。4.3 跟着做五步把一份 CSV 变成 Excel概念讲完动手跑第一个例子。目标很朴素读一个文本文件把它写成一份表格文件。这个流程只有两个步骤但包含了转换的全部要素。先准备一份测试数据存成orders.csv放在一个纯英文路径下order_id,customer_name,city,amount,order_date 1001,客户A,某市A,128.50,2024-03-01 1002,客户B,某市B,89.00,2024-03-01 1003,客户C,某市A,450.00,2024-03-02 1004,客户D,某市C,27.80,2024-03-02四列分别代表订单号、客户名称、所在城市、订单金额和下单日期。这份数据是虚构的你完全可以换成自己手上的任何一份文本数据只要格式是逗号分隔、第一行是列名。接着按顺序做五步。第一步打开 Spoon新建一个转换画布是空的。第二步在左边核心对象面板里找到「CSV 文件输入」拖到画布上。双击它打开配置窗口在文件名称那一栏点浏览选中刚才的orders.csv。分隔符确认是逗号编码选 UTF-8如果你的文件是别的编码就对应改。然后点「获取字段」按钮工具会自己读前几行把列名和类型猜出来猜得不准可以手动改比如把amount的类型从 String 改成 Number。第三步再从面板里拖一个「Excel 输出」有的版本叫 Excel 写入放到画布上位置在第一个步骤的右边。双击配置指定输出文件路径比如D:\pdi9\out\orders.xlsx同样别带中文和空格。工作表名可以留默认。第四步连线。按住键盘上的 Shift 键用鼠标从「CSV 文件输入」的图标按住拖到「Excel 输出」上松开两个方框之间会出现一条带箭头的连线。箭头方向必须是从读的一端指向写的一端连反了这个转换跑起来就是空的。第五步点工具栏上的运行按钮一个绿色的三角在弹出的窗口里点启动。看下方的执行结果面板正常情况下会显示读入 4 行、写出 4 行耗时不到一秒。去打开那个 xlsx 文件四行数据应该整整齐齐躺在里面。如果这一步成功了恭喜你已经把 ETL 里 E 和 L 都走了一遍只差中间那个 T。想加点转换的味道就在两个步骤中间再插一个「字段选择」步骤把city这一列去掉或者插一个「过滤记录」只保留amount大于 100 的行。改完重新运行看行数变化你就理解跳和步骤是怎么配合的了。顺便说一下输出到数据库的做法。把第二步换成「表输出」配置好数据库连接和目标表字段映射一下就行。目标表可以是提前建好的也可以让工具帮你建-- 目标表与 CSV 的列一一对应 CREATE TABLE dw_order ( order_id BIGINT COMMENT 订单号, customer_name VARCHAR(64) COMMENT 客户名称, city VARCHAR(32) COMMENT 所在城市, amount DECIMAL(12,2) COMMENT 订单金额, order_date DATE COMMENT 下单日期 );这张表里的类型和工具里的类型是能对上的String 对 VARCHARInteger 对 BIGINTNumber 对 DECIMAL 或 DOUBLEDate 对 DATE 或 DATETIME。新手常犯的错是全用 VARCHAR 兜底短时间能跑通后面做汇总计算时排序和求和都会出怪结果能一开始定准就别偷懒。4.4 作业只有需要「按顺序」的时候才出场前面反复说转换里的步骤是并发执行的那如果我确实需要「先同步 A 表成功了再同步 B 表」怎么办答案是作业。作业完成的是整个工作流的控制。它不直接处理数据行而是按顺序编排一连串动作启动一个转换、等它结束、判断成功还是失败、成功就继续下一步、失败就走另一条分支发个提醒。你在作业里看到的条目是开始、转换、成功、失败、发送邮件这类而不是字段和行。举个典型的例子把聊天信息同步到另一个系统整个流程拆成一个总作业加两个分作业具体的字段处理和写入动作都放在各个转换里完成。这样拆的好处是总作业负责顺序和异常转换负责数据处理两边各干各的改起来互不牵连。类似的还有从不同数据源取数据、加工过滤、再插入目标库这种活儿通常是一个转换做清洗另一个转换做写入用一个作业串起来。作业和转换的文件是分开的运行方式也不一样。图形界面里可以直接跑服务器上一般用命令行Pan.bat跑转换Kitchen.bat跑作业。这两个脚本名记住部署的时候能省不少事。写作业时有几个习惯值得早养成。给每个条目起能看懂的名字别留「转换 2」「转换 3」在关键节点后面挂一个成功分支做日志记录失败的路径不要空着至少让它把错误写进日志文件。这些动作在流程简单的时候看着多余等你半夜被叫起来查问题时就知道值了。5. 新手最容易踩的五个坑现象、原因和解决5.1 双击 Spoon 一闪就没了现象双击Spoon.bat黑窗口闪过一下就关闭界面从来没出现过。换成命令行里执行也一样只留下一行看不懂的提示。原因绝大多数情况是 Java 环境没找到或者版本不匹配。启动脚本会去找JAVA_HOME指向的目录找不到就退出也有可能是机器上装了多个 Java 版本默认生效的那个太新或太旧导致界面库加载失败。少数情况是解压路径带了中文或空格脚本解析路径时直接失败。解决先在命令行执行java -version确认 Java 在再执行echo %JAVA_HOME%Linux 用echo $JAVA_HOME确认变量指向。变量为空就补上然后关掉所有窗口重新开一个新的命令行再试。还不行就用SpoonDebug.bat启动它会输出更详细的日志把最后十几行报错拿去搜基本都能对上原因。路径问题就把整个目录挪到D:\pdi9\这种最简路径下再试一次。5.2 数据库连不上报驱动或连接错误现象在「表输出」里配好数据库连接点测试报找不到驱动类或者连接被拒绝、超时。明明用别的客户端连同一个库是通的。原因分两类。一类是缺驱动工具本身不内置所有数据库的驱动 jar需要你手动放。另一类参数问题比如主机端口写错、库名不对、账号没有远程访问权限或者服务端的时区设置和客户端对不上导致连上了但握手失败。解决先把对应数据库的驱动 jar 放进lib目录然后重启界面重启这一步不能省。参数方面逐项核对主机、端口、库名、用户名别复制带空格的字符串。如果报的是时区相关的错误在连接设置的高级参数里显式指定一下时区。测试连接时优先用最简单的账号排除权限因素。还有一种情况是公司网络有访问限制这个只能找负责网络的同事确认不是工具的问题。5.3 中文变成问号或者乱码现象数据写进目标表或者导出文件后中文全变成问号、方块或者一串看不懂的字符。数字和英文完全正常。原因编码在链路上不一致。文件本身是 GBK读取时按 UTF-8 解析或者读取对了但写库时连接串没声明字符集都会出现这个现象。工具内部处理时是按字段类型和编码来的任何一段对不上就出乱码。解决三个地方逐一确认。读取文件的步骤里显式指定文件编码别用自动识别数据库连接的参数里加上字符集声明目标表的字符集也要确认有些库默认不是宽字符集。定位方法是先跑一半把读到的数据直接写到一个文本文件里看如果这一步就是乱码问题在读取端如果这一步正常问题在写入端。这个二分法排查思路比盲目改参数快得多。5.4 转换一秒跑完目标表里却没有数据现象点运行日志显示执行成功耗时极短但打开目标表一看是空的。行数统计显示读入 0 行或者压根没有统计。原因常见三种。跳连反了箭头是从写的一端指向读的一端数据流不动文件路径写错但没报错比如指向了一个空文件或者通配符没匹配到任何文件步骤没真正启动比如过滤条件把所有行都筛掉了或者字段名对不上导致映射为空。解决先开日志把日志级别调到详细看每个步骤分别读了多少行、写了多少行从第一个读入 0 行的步骤开始查。再检查跳的方向鼠标悬停在连线上能看到起点和终点。最后看过滤条件临时把它关掉跑一次确认数据本身是有的。这套「看行数、看方向、看条件」的顺序建议固定成习惯。5.5 数据量一过十万行内存就撑爆了现象小数据量跑得飞快换成几十万上百万行就开始卡最后报内存溢出或者机器直接卡死。原因转换确实是流式处理的但有几个地方会破坏这个特性。比如中途用了排序、分组这类需要把数据先攒起来的步骤攒的量超过内存就爆比如行集缓存设得过大每个步骤之间都堆着一大坨数据再比如一次性提交的记录数设得太夸张。解决先看流程里有没有必须全量排序的步骤能不排就不排非要排就加大可用内存或者分片处理。再调小行集大小和提交记录数用时间换内存。运行时的内存参数可以在启动脚本里调给它分配更多堆空间但这只是缓解不是根治。真正上量的场景正确做法是分批次跑或者按时间范围切成多个转换并行处理。我见过有人拿单机内存硬扛千万级数据最后靠加机器解决其实改成分批早就过去了。6. 基础打通之后接下来三周该练什么跑通第一个例子只是把门推开一条缝真正让人从「会用」变成「敢用」的是接下来有节奏的练习。我按三周给一个路径你可以照着改。阶段练什么做到什么算过关第一周熟悉界面和基本步骤文本文件读写、表格文件读写、字段选择、过滤记录不看教程能独立搭出「读文件—清洗—写文件」的流程并且知道每一步读写了多少行第二周连接两种不同的数据库做同步练表输入、表输出、字段映射、增量条件能说清一次同步里哪些行会被写入、重复跑两遍会不会多数据第三周把多个转换用作业串起来加日志记录和失败分支用命令行脚本运行作业失败时你能从日志里定位到具体是哪个转换哪一步出问题第一周的重点不是功能多而是手感。把samples目录里的自带例子打开几个看别人怎么连跳、怎么命名步骤你会发现很多自己纠结半天的问题别人是用一个很朴素的步骤组合解决的。这一周还要养成一个习惯每搭完一个流程自己核对一遍输入行数和输出行数对不上就查别等出错再回头。第二周开始碰真实场景。找一个你有权限的测试库建两张结构不一样的小表练「把 A 表的数据清洗后写进 B 表」。这一步会逼你面对字段类型不匹配、主键冲突、空值处理这些具体问题比看十页文档都有用。增量同步这个点要专门练加一个时间条件只取上次同步之后新增的数据然后故意重复跑两次看目标表会不会翻倍。翻倍了就说明幂等没做好这是生产环境里最常见的翻车点。第三周练调度。把前两周做的转换放进一个作业里按顺序串起来中间挂上日志记录失败的分支让它把错误写进文件。然后用命令行跑一次Pan.bat跑转换、Kitchen.bat跑作业感受一下脱离图形界面之后是什么样——服务器上可没有双击这回事。这一步过了你才算真的能把它用在项目里。再往后可以碰的方向有这些用脚本步骤处理复杂的字段逻辑比如日期格式转换、字符串拼接调外部接口拿数据再解析回来入库调用数据库的存储过程针对大数据格式做输入输出。这些不是必须马上学的遇到具体需求再查效率更高。最后留一句血泪经验。我第一次做同步作业的时候跳连反了跑了一整晚第二天打开目标表发现是空的还以为数据库权限有问题查了两个小时才回头看了一眼那条箭头的方向。从那以后我每次点运行之前都强制自己先看一眼日志行数、再看一眼跳的方向两个都对了才敢让它跑通宵。慢三十秒省一晚上这笔账怎么算都划算。希望帮到你。本文还有配套的精品资源点击获取