在本关联学习路径中,我们将从一个系统中提取数据,并执行一系列转换,以准备将数据文件加载到另一个系统。
| 主要学习目标 | 为了突出表格转换连接器的一些简单而强大的命令,这些命令可用于满足常见的转换需求。 |
| 先决条件 | 配置 HTTP、 文件实用程序和 表格转换 连接器连接 |
| 支持链模板 | CLP | 表格变换 |
步骤 1:创建链
- 添加新链
- 命名链: CLP | 表格变换
- 创建链式变量
- 名称: cv-TT-SampleData
- 值: https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/sample.txt
- 拯救链条
步骤 2:从源系统检索数据
使用 HTTP 连接器来演示如何从 Workiva 没有连接器的数据源中检索数据。
- 从 HTTP 连接器向起始节点添加 GET 命令
- 使用以下方式配置命令:
步骤 3:更新数据文件中的标题
更新文件中的标题,使其与转换完成后要将数据文件加载到的系统的字段名称相匹配。Map Headers 命令允许我们根据索引更新字段名称,从而使该命令在将来字段名称更改时更加灵活。
- 从 表格转换连接器 向链中添加 [] 映射标题 命令
- 将起始节点(HTTP - 获取源系统数据)连接到 映射标头 命令
- 编辑命令:
- 命令名称: 映射标头
- 单击 输入文件 参数。变量选择窗格在左侧打开。在 “命令 ”部分,展开 “获取源系统数据 ”命令,然后选择 “响应 ”输出。
- 将输出文件参数留空
- 勾选此框以 预览结果。
- 保留方括号 为 逗号 ,因为源系统数据文件是以逗号分隔的。
- 在 输入标头 参数中,输入数字零 (0) 到七 (7),因为该文件有八个字段,列表从零开始计数。输入每个数字后,请务必按回车键!
- 选中方框 使用索引。这告诉命令,输入标题是基于文件中的位置而不是实际的列名。
- 在输出标题中,指定要创建的新字段的名称。顺序很重要,因为列表中的第一个条目将替换源系统文件中第一个字段的标题名称,依此类推,其余条目依次替换。输入以下标题,并在每个标题后按 Enter 键:
- 产品
- 市场
- 月份
- 应用场景
- 销售
- 碳氢化合物
- 开支
- 营业收入
- 保存命令
步骤 4:将数据列移动到行
接下来,更新数据文件,将多列数据转置为行,从而创建单列数据。这种操作称为逆枢轴变换。反向透视操作将数据对齐到下游系统预期的格式,即包含所有数据的单列。
- 从 表格变换连接器向链中添加一个 Unpivot 命令
- 将 Map Headers 命令连接到 Unpivot 命令
- 编辑命令
- 命令名称: 取消透视 - 将度量值移动到行
- 选择 映射标头输出 以匹配 输入文件 参数
- 地图标头输出仍然是逗号分隔符,因此我们将 分隔符 保留为 逗号
- 在 聚合 参数中,选择 求和。选择“求和”时,由透视表创建的任何在所有列中都相同的结果行都会将数据值聚合到单个数据点。
- 在 新列标签 参数中,输入 度量。这是将要创建的新列的标题,该列将填充来自要取消透视的列的标题值。
- 在 数据列标签 参数中,输入 金额
- 数据标题、 起始透视列名称、 结束透视列名称、 起始透视列索引和 结束透视列索引 字段用于执行透视操作。并非所有参数都需要指定。
- 如果使用 数据标头 参数,则其余参数应留空。数据标题参数允许指定列的名称。此参数适用于非并发/非并行字段。
- 起始/结束列名 参数允许指定(并发范围)第一列和最后一列的名称。如果使用这些参数,则 数据标题 参数以及 起始/结束列索引 必须留空。如果 结束列名 留空,则将对 开始列名之后(包括该列名)的所有字段执行逆透视操作。
- 起始/结束列索引 参数允许指定(并发范围)第一列和最后一列的位置。如果使用这些参数,则 数据标题 参数以及 起始/结束列名称 必须留空。如果 结束列索引 留空,则将对 开始列索引之后(包括该列)的所有字段执行反透视操作。本练习中我们将使用这些参数。
- 在 起始透视列索引中,输入 4。这告诉命令从第五列开始进行透视,因为索引是从零开始的。
- 将 结束透视列 索引留空。
- 选中“预览结果”选项
- 保存命令
步骤五:更新方案
接下来,更改场景名称。这展示了一个简单的、一次性的转换,非常适合使用 Integration Studio 进行转换。数据准备功能可以显著简化更广泛或更复杂的重命名转换。
- 从 表格转换连接 器向链中添加 查找和 替换命令
- 将 取消透视 命令连接到 查找和替换 命令
- 编辑命令:
- 命令名称: 查找并替换 - Budget 为 Plan
- 在 “输入文件 ”参数中,选择 “透视结果”或“来自逆透视命令的输出 ”。
- 请将 输出文件 参数留空
- 勾选此框以 预览结果。
- 未透视的文件仍然是逗号分隔的,因此请将 分隔符 指定为 逗号
- 我们将找到文本“预算”,并将其替换为文本“计划”。在 查找模式 参数中,输入 预算。
- 在 “匹配模式值 ”参数中,选择 “精确”。
- “精确”是指我们要查找“查找模式”参数中指定的整个文本。要搜索子字符串或通配符,我们需要使用正则表达式(regex)模式类型。
- 在 替换值 参数中,输入 计划。所有出现的“预算”字样都将替换为“计划”。
- “仅替换匹配项 ”参数不适用于精确匹配,可以不选中,因为它是默认值。
- 不要勾选 “不区分大小写 ”选项。这样一来,查找和替换操作就会区分大小写,因此 Budget 将被替换为 Plan ,但 budget 不会被替换。
- “场景”列中,“查找模式(预算)”位于第四列。在 列 参数中,输入数字 3 (3),因为该参数是从零开始的。
- 保存命令
步骤 6:仅保留纽约计划数据
接下来,使用智能筛选命令仅保留纽约的计划。此智能筛选器允许我们根据数据指定条件,以保留或删除数据集中的某些行。
- 从 “表格转换连接器 ”向链中添加 “智能筛选行 ”命令
- 将 “智能筛选行 ”命令连接到 “查找和替换 ”命令
- 编辑命令:
- 命令名称: 智能筛选行 - 仅限纽约套餐
- 在“输入文件”参数中,从“查找和替换”命令中选择“ 查找和替换 输出 ”。
- 请将 输出文件 参数留空
- 指定逗号 作为分隔符
- 在 筛选器 部分,可以进行 文本、 数字和 日期 筛选。可以指定多个筛选条件。如果对不同类型的数据(文本、数字、日期)应用筛选器,则需要相应地指定左上角的运算符。如果要在给定类型(例如,文本)中应用多个条件,则需要指定该筛选类型的运算符。
- 在本练习中,我们将应用基于文本的过滤器,以便全局运算符可以是 And 或 Or。
- 如有必要,请将通用运算符设置为 AND
- 点击 文本 过滤器上的“添加”按钮
- 在 列名 参数中,输入 场景
- 不要勾选“不区分大小写”。
- 从 “条件 ”下拉菜单中选择 “等于”。
- 在 “比较文本 ”参数中,输入 “实际值”。
- 请勿勾选 “非 ”和 “修剪 ”复选框。
- 此筛选器将用于删除“场景”字段值为 或“实际”的任何记录。
- 再次单击“文本筛选器”部分的“添加”按钮
- 将文本过滤器运算符设置为 OR
- 选择“或”组合以筛选出“实际”和“纽约”这两个选项。
- 在第二个条件中,将 市场 指定为 列名
- 将 条件 设置为 等于
- 将 比较文本 指定为 纽约
- 最后,选中 “非 ”选项
- 将文本过滤器运算符设置为 OR
- 保持“预览结果”选项选中状态
- 如有必要,请将通用运算符设置为 AND
- 在本练习中,我们将应用基于文本的过滤器,以便全局运算符可以是 And 或 Or。
- 反向选项允许智能筛选器保留(选中)或删除(取消选中)所有符合筛选条件的行。在这个练习中,我们要删除所有“场景”等于“实际”或“市场”不等于“纽约”的行。为此, 我们取消 选中 “反向 ”选项。
- 保存命令
步骤 7:添加年份列
最后,在数据集中添加一列,用于表示数据的年份。
- 从表格转换连接器向链中添加“插入列”命令
- 将“插入列”命令连接到“智能筛选行”命令
- 编辑命令并按如下方式配置:
| 姓名 | 插入列 - 计划年度 |
| 输入文件 | 智能过滤器行输出 |
| 输出文件 | <leave blank> |
| 预览结果 | 已核取 |
| 德利米特 | 逗号 |
| 标题文本 | 年 |
| 数据值 | 2022 |
| 插入索引 | 3 |
- 保存命令
步骤 8:测试练习
现在链式流程已完成,请测试结果。
- 发布 链
- 点击“执行”,然后选择 “运行链”。
- 链式操作完成后,单击“插入列 - 计划年度”节点
- 在“输出”选项卡上,确认已输出 385条记录 。
- 点击“日志”选项卡,并根据下图确认数据。
输出选项卡
日志选项卡
要了解有关使用 Chains 进行数据转换的更多信息,请查看 连接学习路径 - 转换简介!