概述
PDI客户端(Spoon)的Pentaho数据集成视角使您能够创建两种基本的文件类型:
- 转换用于执行ETL任务。
- 作业用于编排ETL活动,例如定义应该运行哪些顺序转换的流和依赖关系,或者通过检查条件来为执行做准备。
PDI使用工作流比喻作为转换数据和其他任务的构建块。工作流是在您创建转换和作业时使用步骤或条目构建的。每一个步骤或条目都由一个跃点连接起来,它将数据流从一项传递到下一项。
转换
转换是一个称为步骤的逻辑任务网络。转换本质上是数据流。在下面的示例中,数据库开发人员创建了一个转换,该转换读取平面文件、筛选、排序并将其加载到关系数据库表中。假设数据库开发人员检测到一个错误条件,并没有将数据发送到一个虚拟步骤(它什么也不做),而是将数据记录回一个表。本质上,转换是一组逻辑数据转换配置的有向图。转换文件名的扩展名是.ktr。
与转换相关的两个主要组件是步骤和跃点:
- 步骤是转换的构建块,例如文本文件输入或表输出。Pentaho数据集成的步骤很多,按照功能进行分组;例如,输入、输出、脚本等等。转换中的每个步骤都被设计为执行特定的任务,例如从平面文件读取数据、过滤行和记录到数据库,如上面的示例所示。您可以通过将步骤从Design选项卡拖放到画布上或双击该步骤来添加该步骤。可以配置步骤来执行所需的任务。
- 跃点是连接步骤并允许元数据从一个步骤传递到另一个步骤的数据通道。在上面的图像中,似乎有一个连续的执行发生。然而,事实并非如此。跃点决定了数据流通过的步骤,而不一定是它们运行的顺序。当您运行转换时,每个步骤在自己的线程中启动并推送和传递数据。
注意:转换中的所有步骤都是并行启动和运行的,因此初始化顺序是不可预测的。例如,这就是为什么您不能在第一步设置变量并尝试在后续步骤中使用该变量的原因。
您可以将步骤连接在一起,编辑步骤,并通过单击编辑步骤打开步骤上下文菜单。
一个步骤可以有许多连接。有些步骤将其他步骤连接在一起,而有些则作为另一个步骤的输入或输出。数据流通过步骤流到转换中的各个步骤。跃点用勺子表示为箭头。跳点允许数据从一个步骤传递到另一个步骤,也决定了数据通过这些步骤的方向和流程。如果一个步骤向多个步骤发送输出,则数据可以复制到每个步骤,也可以在它们之间分布。
作业
作业是类似工作流的模型,用于协调资源、执行和ETL活动的依赖关系。
作业将各个功能块聚合在一起,以实现整个流程。在作业中执行的常见任务包括获取FTP文件、检查条件(如是否存在必要的目标数据库表)、运行填充该表的转换以及在转换失败时通过电子邮件发送错误日志。例如,最后的作业结果可能是每晚的仓库更新。
作业条目是如上例所示的单独配置的部分,它们是工作的主要组成部分。在数据转换中,这些单独的部分称为步骤。作业条目可以为您提供广泛的功能,从执行转换到从Web服务器获取文件。一个作业条目可以多次放置在画布上;例如,您可以使用不同的配置将单个作业条目(如转换运行)多次放置在画布上。作业设置是控制作业行为的选项和记录作业操作的方法。作业文件名的扩展名为.kjb。
作业跃点指定执行顺序和执行下一个作业条目的条件。您可以通过右键单击作业跃点来指定评估模式。作业跃点只是一种控制流程。跳转到作业条目的链接,并基于上一个作业条目的结果,确定接下来发生的事情。
注意:跃点在作业中使用时与在转换中使用时的行为不同。
下面指定了作业跃点条件:
Unconditional:指定将执行下一个作业项,而与原始作业项的结果无关。
Follow when result is true:指定只有在原始作业输入的结果为true时才执行下一个作业输入。这意味着成功执行,如找到文件、找到表、没有错误,等等。
Follow when result is false:指定仅当原始作业项的结果为false时才执行下一个作业项,即执行失败、文件未找到、表未找到、出现错误等等。
跃点
跃点将一个转换步骤或作业条目与另一个连接起来。数据流的方向由箭头表示。要创建跃点,单击源步骤,然后按SHIFT键并在目标步骤上画一条线。或者,您可以通过将鼠标悬停在一个步骤上,直到鼠标悬停菜单出现来绘制跳跃。从源步骤拖动跃点画师图标到目标步骤。
创建跃点的其他方法包括:
- 单击源步骤按住鼠标中键,拖动跳转到目标的步骤。
- 使用CTRL和左键单击选择两个步骤,右键单击步骤并选择New Hop。
要分割一个跃点,需要在两个跃点之间插入一个新步骤,方法是在一个跃点上拖动该步骤。确认您要分割跃点。此特性仅适用于尚未连接到另一个步骤的步骤。
在转换中不允许使用循环,因为Spoon在很大程度上依赖于前面的步骤来确定从一个步骤传递到另一个步骤的字段值。在转换中允许循环可能会导致无尽的循环和其他问题。作业中允许使用循环,因为Spoon是按顺序执行作业条条目。但是,请确保您不会创建无尽的循环。
在转换中不允许混合具有不同布局的行。例如,如果您有两个使用不同数量字段的表输入步骤。混合行布局会导致步骤失败,因为无法在预期的位置找到字段或意外数据类型变化。如果一个步骤正在接收混合布局,陷阱探测器将在设计时显示警告。
您可以指定是否可以复制、分发数据,或者在离开一个步骤的多个跃点之间进行负载平衡。选择步骤,右键单击并选择数据移动。
可以启用或禁用跃点(例如为了测试目的)。右键单击跳转以显示选项菜单。
PDI客户端选项
PDI客户端允许您自定义其行为的某些方面。要访问选项,请选择Tools>Options。下面介绍了处理转换和作业的常规选项卡:
Preview data batch size:设置预览数据缓冲区的批处理大小。在预览数据时,此选项设置用于这些值的缓冲区大小。
Max number of lines in the logging windows:指定日志窗口中显示的最大行限制。
Central log line store timeout in minutes:设置中央日志行存储超时之前的分钟数
Max number of lines in the log history:设置在日志历史记录视图中显示限制的最大行数。
Show welcome page at startup:控制在启动PDI客户端时是否显示欢迎页。
Use database cache:PDI客户端缓存存储在源和目标数据库上的信息。在某些情况下,当您更改数据库时,缓存会导致不正确的结果。为了防止错误,您可以完全禁用缓存,而不是每次都清除缓存。
Open last file at startup:自动从XML或存储库加载您使用(打开或保存)的最后一个转换。
Autosave changed files:在运行前自动保存已更改的转换。
Only show the active file in the main tree:通过只显示当前活动的文件,减少左侧主树中的转换和作业项的数量。
Only save used connections to XML:将转换的XML导出限制为该转换中使用的连接。这在交换示例转换时很有帮助,以避免包含所有已定义的连接。
Replace existing objects on open/import:在导入期间替换对象,例如现有数据库连接。如果还检查了替换对象之前的询问,则会在导入发生之前提示您。在替换对象之前请求权限(如导入期间的现有数据库连接)。
Ask before replacing objects:在替换对象之前请求权限(如导入期间的现有数据库连接)。
Show Save dialog:当转换被更改时,允许您关闭收到的确认对话框。
Automatically split hops:禁用在分割跃点时启动的确认消息。
Show Copy or Distribute dialog:禁用将步骤链接到多个输出时出现的警告消息。此警告消息描述了处理多个输出的两个选项:
- Distribute rows:目标步骤依次接收行(循环调度)。
- Copy rows:所有行被发送到所有目的地。
Show repository dialog at startup:控制在启动时是否显示Repository对话框。
Ask user when exiting:控制当用户选择退出应用程序时是否显示确认对话框。
Clear custom parameters (steps/plugins):清除在插件或步骤对话框中设置的所有参数和标志。
Auto collapse palette tree:设置面板树是否应该自动折叠。
Display tooltips:控制是否显示主工具栏上按钮的工具提示。
Show help tooltips:显示帮助工具提示。工具提示是当您将鼠标指针悬停在PDI客户机中的一个对象上时出现的简短描述。
创建转换
在Data Integration视图中,您可以创建转换、使用转换并检查转换中的数据。
- 创建转换
按照以下说明创建您的转换:
- 执行下列操作之一:点击File>New>Transformation;单击工具栏中的New file 图标并选择Transformation;按住CTRL+N键。
- 转到Design选项卡。展开文件夹或使用步骤字段搜索特定的步骤。
- 拖动或双击一个步骤将其放置在PDI客户端画布上。
- 双击PDI客户端画布中的步骤以打开其properties窗口。要获得关于填写窗口的帮助,请单击每个步骤中可用的help按钮。
- 要添加另一个步骤,可以拖动或双击Design选项卡中的步骤,将其放置在PDI客户机画布上。如果您将步骤拖到画布上,您可以通过按SHIFT键并从一个步骤绘制到另一个步骤的跳转来添加一个跃点;如果双击该步骤,则该步骤将在画布上显示,并带有一个已经连接到上一步的跃点。
在您创建转换之后,您必须先保存转换,然后才能运行它。
- 使用转换
您可以保存、打开和运行转换。
- 检查数据
您还可以获得对数据的有价值的见解。
创建作业
在Data Integration视图中,您可以创建和使用作业。
- 创建作业
按照以下说明创建您的作业:
- 执行下列操作之一:点击File>New>Job;单击工具栏中的New file 图标并选择Job;按住CTRL+ALT+N键。
- 转到Design选项卡。展开文件夹或使用条目字段搜索特定的条目。
- 拖动或双击一个条目,将其放置在PDI客户端画布上。
- 双击该条目以打开其properties窗口。要获得关于填写窗口的帮助,请单击每个条目中可用的Help按钮。
- 要添加另一个条目,可以拖动或双击该条目,将其放置在PDI客户机画布上。如果您将条目拖动到画布上,您可以通过按SHIFT键并从一个条目绘制一个跳转到另一个条目来添加一个跃点;如果您双击它,该条目就会出现在画布上,并带有一个已经连接到前一个条目的跃点。
完成后,保存作业。
- 使用作业
您可以保存、打开和运行作业。
- 向转换和作业添加注释
向转换和作业添加和管理注释。
适配应执行层
Pentaho使用适配执行层(AEL)来运行不同引擎的转换。AEL将从您在PDI中开发的转换步骤调整为您环境选择引擎中的本地操作符,例如Hadoop集群中的AEL- spark。AEL-Spark引擎更适合在Hadoop集群中运行大数据转换。
当您选择AEL-Spark引擎来运行转换时,AEL将转换中的步骤匹配到Spark引擎中的本地操作符。例如,如果您的转换包含一个Hadoop文件输入步骤,那么AEL将使用一个等效的Spark操作符。AEL为Spark构建了一个转换定义,它将执行直接转移到集群,利用Spark在多个节点上协调大量数据的能力。
AEL在使用的Spark引擎前必须配置。配置之后,您可以通过运行配置选择Spark引擎。
虚拟文件系统
您可以使用虚拟文件系统(VFS)连接来代替传统的本地文件系统窗口,通过一些转换步骤和作业条目来访问文件。
日志记录和性能监视
配置日志记录以监视转换或作业性能。