步骤:设置脚本型数据源
您可以借助脚本型数据源,应对复杂的自定义数据提取和转换情景。您可以编写 Kettle ETL 脚本来指定要从中提取数据的信息源,然后将特定于客户的业务规则应用于提取的数据。在设置脚本型数据源之前,您必须已在网络中的本地 Windows 服务器上安装数据代理。请参见 概念:数据代理 了解更多信息。
在 Kettle 中使用的平台或脚本不会自动升级或迁移。如果您使用旧版数据代理(Kettle 版本为 4.4),则必须在集成模块的代理用户界面中使用“下载旧版代理”版块的链接。如果要升级到 Kettle 6,则必须在之前从未安装过任何 Kettle 版本的系统上重新安装新的数据代理和新的 Kettle 版本。
脚本型数据源适用于拥有 Pentaho Kettle 脚本编写经验和 Spoon 用户界面使用经验的高级 ETL 实施者。有关 Pentaho Kettle 和 Spoon 的更多信息(包括内容丰富的文档和教程),请参见 https://docs.hitchivantara.com/p/pentaho-dia。
如要设置脚本型数据源,请执行以下操作:
- 转至“集成”>“设计集成”,以访问数据设计器。
- 在页面右侧的“组件库”中的“数据源”文件夹内,单击“新建数据源”。系统会显示“新建”对话框。
- 选择“脚本型数据源”作为数据源类型,并输入数据源的名称。
- 单击“创建”。页面的中心区域会显示新数据源的设置及其他信息。
- 输入数据源的信息:
- 关联的代理:从下拉列表中选择代理。
- 入口点:从下拉列表中选择入口点。入口点是系统上的一个 ETL 脚本。您可以稍后对其进行编辑。
- 日志级别:从下拉列表中选择日志级别,以指定此数据源的日志记录详细级别。可用选项包括:
- 错误:仅记录严重错误。
- 信息:记录所有基本信息,例如数据源的更新时间。
- 详细:提供有关所有阶段和操作的详细信息。此级别主要用于调试或审核,因为其产生的日志信息量可能超出一般用途的实际所需。
- 源 URI:输入脚本要连接的 URI,用分号 (;) 分隔。此字段仅用于帮助您识别和记录脚本要连接的基础源系统,本软件不会将该字段用于任何其他用途。
- 在“操作”菜单中,单击“保存”。
启动 Spoon
保存脚本型数据源的基本信息后,您可以启动 ETL 脚本编辑器 Spoon,处理脚本,以及向脚本型数据源添加表格。
如要查看并编辑脚本,请执行以下操作:
- 在 Windows“开始”菜单中,单击“所有程序”。
- 打开“Workday Adaptive Planning Data Agent”文件夹。对于 7.1.44 及更低版本的数据代理,请打开“Adaptive Data Agent”文件夹。
- 单击“Adaptive Script Editor”。在显示 Pentaho 初始屏幕和启动提示之后,将显示 Spoon 页面。
- 输入您的Adaptive Planning登录电子邮件地址和密码,然后单击“Login Now/Refresh Tenant List”。如果您已从 Workday 同步用户,请参见 使用 Workday 凭据登录数据代理和脚本编辑器。
- 在下拉列表中选择租户。列表中通常只有一个租户。Spoon 会刷新租户列表。
- 从下拉列表中选择要用于此数据源的代理。Spoon 会刷新代理列表。
- 从“Edit Script”的下拉列表中,选择刚创建的脚本型数据源。
现在您已登录并告知 Spoon 您要使用的代理和数据源,您可以开始编辑脚本。
- 单击 Spoon 页面右上角的“Data Integration”。此时将显示 Spoon 的集成透视面板组。
- 选择“File”>“Open”,浏览到要查看并编辑的脚本,然后单击“OK”。集成中包含的脚本型数据源示例脚本提供了有关脚本结构和数据库连接的信息,这些信息可帮助您开发自己的脚本。
- 根据需要编辑脚本,然后保存脚本。
- 单击右上角的“Adaptive”以返回到 Adaptive 透视面板组。此时将再次显示 Spoon 页面。
- 单击“Publish Agent Changes”。此操作会将脚本推送回Adaptive Planning服务器上的脚本,该脚本存储在脚本存储库中。
系统支持以下数据导入模式。相关设置可能因表格而异。
- 每次导入数据时,系统都会替换所有记录。
- 每次必须同步数据时,远程代理都会扫描所有源记录,并传输更改后的记录。
- 系统会传输在相关期间范围内的所有记录。
向脚本型数据源添加表格和列
准备好脚本后,您可以向集成中的数据源添加表格和列。
数据源中定义的列必须与 ETL 脚本中定义的列完全匹配,否则数据加载将失败,这点至关重要。
如要向脚本型数据源添加表格,请执行以下步骤:
- 在“数据组件”菜单中,展开“自定义表格”条目。
- 将“脚本表格”条目拖放到“要导入的表格”区域。放置该条目后,系统会显示“脚本表格”对话框。
- 输入表格设置:
- 名称:输入表格的名称。
- 数据导入模式:选择以下导入模式之一:
- 每次运行数据导入时替换的所有记录:这是默认模式。每次导入数据时,系统会替换暂存区中的所有记录。
- 在导入时使用远程缓存来识别并发送已更改的记录:集成会检查暂存区,将暂存区中的记录与电子表格或数据库中的记录进行比较,然后仅导入已更改的记录。
- 期间范围内所有已传输的记录:选择此模式时,系统会提示您输入一个期间范围,以及在集成中作为该时间范围应用对象的列。系统会根据所选的条件来导入记录。
- 数据导入筛选器:您可使用此字段来输入 SQL 表达式,用于对要导入的信息进行筛选或格式设置。从数据库中提取数据之前,系统会应用 SQL 筛选器,以减少需要导入的数据量,从而让您更好地控制将哪些数据导入暂存区中。单击此字段可显示上文所述的“编辑 SQL 筛选器”对话框。(在此筛选器中输入的相关内容将应用于数据库中的实际数据,而不是暂存区中的预览数据。)
- 单击“应用”以应用设置。
如要向脚本型数据源添加列,请执行以下步骤:
- 在“数据组件”菜单中,展开“自定义列”条目。
- 将其中一种列类型拖放到“要导入的表格”区域。拖放后,系统会显示“自定义列”对话框。
- 对列设置进行相关输入:
- 名称:输入列的名称。列名称必须与在 Spoon 中为脚本指定的列名称(包括大写和嵌入的空格)完全匹配。
- 列类型:仅供显示的字段,用于标识列类型。
- 转换列类型:不能更改此值,但 SQL 列除外。对于 SQL 列,您可以从六个转换选项中进行选择。
- 单击“应用”以应用设置。
管理列
如果您正在使用的表格包含大量列,可以使用“管理列”来快速选择要导入的列。“管理列”对话框会显示表格中的列,以便您选中要导入的列或取消选中不想导入的列。
如要管理要导入的列,请执行以下操作:
- 单击表格名称右侧选项卡上的箭头。此时系统将显示一个浮动菜单,其中包含多个选项。
- 单击浮动菜单中的“管理列”。此时系统将显示“管理列”对话框。
- 在要导入的列旁边,选择相应的复选框。选中某列并保存弹出窗口内容后,该列还会显示在预览窗口中。取消选中某列后,系统会将该列从预览窗口中移除。您无法为系统生成的字段更改导入状态,例如isDeleted。要更改各列的导入状态,您可以选择列属性并设置属性,或者将列拖放到设计器中。
自定义表格
对于每个表格,您可以自定义数据的导入方式。
如要自定义表格设置,请执行以下步骤:
- 单击表格名称右侧选项卡上的箭头。此时系统将显示一个浮动菜单,其中包含多个选项。
- 单击浮动菜单中的“表格设置”。
- 单击“应用”以应用设置。
- 对每个表格重复步骤 1 到步骤 3。
- 单击“保存”以保存数据源中的设置。
设置列选项
使用“要导入的表格”版块时,您可以预览数据在数据源中的呈现方式,或导入后在暂存区中的呈现方式。要更改每列的选项,您可以将鼠标指针悬停在列标题上,然后单击列名称旁边的下拉菜单。这些选项包括:
- 升序排序:根据此列按升序对整个表格进行排序。
- 降序排序:根据此列按降序对整个表格进行排序。
- 列设置:此对话框用于更改暂存表中列的属性。
- 名称:列名称,显示在标题中。
- 列类型:在列中使用的数据类型。
- 转换列类型:从此下拉菜单中选择新类型。
- 从导入中排除列:选择此选项可从要导入的数据中移除该列。
- 删除自定义列:选择此选项可删除列。此选项仅适用于自定义列。
从暂存表中下载数据
您可以从单个暂存表中下载数据。
如要从单个暂存表中下载数据,请执行以下操作:
- 在“要导入的表格”版块中,单击表格标题中的向下箭头。
- 选择“下载数据”。
- 出现“此操作将发送一封包含数据下载 URL 的电子邮件”提示时,单击“发送”。Adaptive Planning向与数据设计者关联的电子邮件帐户发送包含 URL 的电子邮件。
- 打开电子邮件,然后单击该 URL。系统将以 .csv 文件格式下载数据。
使用高级筛选器
在“源”下拉菜单下方,您可以单击“高级筛选器”,以显示用于在“要导入的表格”预览区域中筛选数据的选项。高级筛选器提供了一些工具,用于查看和浏览暂存表内或脚本中数据的子集。当您从“源”下拉菜单中选择“脚本”时,系统会将预览请求发送给代理进行处理。您可以通过更改筛选器属性,更改预览窗口中显示的数据视图,而不用更改暂存区中的数据。
预览区域专用于预览暂存区中的一小部分数据。您可以浏览电子表格中的可用数据,并通过检查暂存区来验证获得的数据是否符合预期。在预览功能中设置的筛选器不会影响暂存区中的实际数据。
高级筛选器的选项包括:
- 隐藏重复行:选中此复选框可隐藏重复行。
- 最大行数:在文本框中输入一个数字来限制预览区域中显示的行数。
- 列:选中此下拉菜单中的列可显示相应的列,取消选中此下拉菜单中的列可相应隐藏所显示的列。
从此列表中移除某列不会将该列从导入列表中移除。
- SQL 筛选器:单击大文本框可显示上文所述的“编辑 SQL 筛选器”对话框,您可以在其中对 SQL 筛选器输入相关内容来限制要预览的行。单击“应用”可自动检查筛选器的 SQL 语法。如果存在任何错误,系统会在表达式中指示相应的错误。有关详细的 SQL 语法帮助,您可以在“注释”版块中单击“在线帮助”。
单击“移除筛选器”(“源”下拉菜单旁)可清除所有高级筛选器的设置。
在表格自定义流程中,您还可以使用 SQL 表达式来创建联接表和自定义列。
添加和编辑参数
您可以使用参数将信息传递到基础 Kettle 脚本,也可以使用默认值设置这些参数。然后,该脚本可以使用这些参数来控制 ETL 脚本中的转换和筛选。
如要添加参数,请执行以下操作:
- 单击“参数”标题右侧的“编辑参数”图标。此时将显示“参数编辑器”对话框。
- 在左侧窗格中单击存放参数的文件夹。文件夹名称将显示在右侧窗格中。
- 单击“添加”,然后从浮动菜单中选择以下选项之一:
- 文件夹:新建一个文件夹。
- 布尔值:创建一个布尔值参数 (true/false)。
- 整数:创建一个整数参数。
- 文本:创建一个文本参数。
- 密码:创建一个密码参数。
- 期间范围:创建一个期间范围参数(开始日期/结束日期)。
- 维度:创建一个维度。
- 实际值版本:创建一个实际值版本。
- 计划版本:创建一个计划版本。
- 在右侧窗格中,输入所选选项的信息。
- 单击“应用”。
您可以在左侧窗格中双击要编辑的条目并更改字段中的信息,以此来编辑各个参数或文件夹,然后单击“应用”可保存变更。
您还可以创建文件夹来对参数进行分组,然后将参数拖到文件夹中。
使用脚本型数据源导入数据
设置并保存脚本型数据源后,您可以导入数据。
如要使用脚本型数据源导入数据,请执行以下操作:
- 在“操作”菜单中选择“导入数据”。所选数据将由 ETL 脚本以及任何 SQL 表达式进行筛选,然后加载到暂存区中。您可以预览暂存区中的数据。
除非您将这些数据清除,或者后续的数据加载导致系统根据生效的“数据导入模式”设置将这些数据清除,否则这些数据将一直保留在暂存区中。
如要从暂存区中清除数据,请执行以下操作:
- 单击“操作”菜单中的“清除暂存表”。系统会对数据源中所有表格的暂存区进行清除。