杂乱文件太多处理不过来?这套ETL方案专治各种“不服”(选做实验1)

1 场景概述

ETL流程的起始环节在于从各类数据源中获取原始数据。数据采集工作往往面临较大的复杂度,这主要是由数据来源的多样化和异构性所决定的。

在经典的数据仓库架构下,数据通常源自企业内部的业务应用系统,比如财务管理系统或ERP平台。这些系统中的数据一般存放于关系型数据库(如MySQL、Oracle、SQL Server等)。对于此类情形,可以借助JDBC方式直接连接数据库完成数据抽取。然而,当数据源为非关系型存储,或者缺乏合适的数据库驱动程序时,抽取工作的难度将大幅上升。

还有一类常见的情况是数据的归属权或存储位置存在限制:比如数据归外部供应商或合作伙伴所有,又或者数据部署在企业防火墙外部。在这些场景下,直接连接数据库通常不具备可行性,此时通过数据文件交互则成为一种高效且实用的替代方案。

本实验将展示助睿ETL平台中集成的多种文件类型数据读取组件(CSV、Text、Excel)的具体使用方式,逐步演示如何利用这些组件高效地解析和提取不同格式文件中的数据内容。

2 实验环境

  • 平台名称:助睿在线实验平台

该平台覆盖了从数据接入、ETL加工处理、机器学习建模到可视化呈现的全流程零代码操作能力,既适用于高校课堂教学,也可满足企业级数据加工需求。

3 数据准备

以下实验所需的数据文件均可从助睿ETL平台的「公共空间」获取:

  • 第4节(CSV文件读取):使用project.csv数据文件;
  • 第5节(文本文件读取):使用足球赛事数据文件usa_201209.txt
  • 第6节(Excel文件读取):使用购房者信息数据文件custinfo.xlsx

数据文件获取步骤如下:

步骤一:登录助睿ETL平台后,进入「数据集成」模块,在「我的项目」列表中,点击目标项目右侧的「…」图标,选择「打开项目」以进入项目工作区;

步骤二:在页面右侧点击「公共空间」,切换到「数据资源」选项卡,定位到名为project.csv的文件资源,点击其右侧的「更多」按钮,选择「导出」操作;

步骤三:在弹出的「导出数据资源到项目空间」对话框中,确认待导出的文件为project.csv,指定导出目标路径(例如根目录/),随后点击「确定」完成文件导出至「文件库」;

步骤四:切换到左侧导航栏中的「文件库」选项卡,通过右键菜单执行「刷新」操作,即可查看已成功导出到项目空间的文件资源。

4 从CSV文件中读取数据

本节将借助助睿ETL构建转换工作流,完成CSV文件数据的读取与加工处理。整体流程为:首先从CSV文件中提取项目基础信息,然后根据每个项目的【start_date】(开工日期)与【end_date】(完工日期)计算项目执行周期(天数),再依据该天数划分项目的【performance】(绩效等级),最终实现项目绩效的自动化评定与数据规范化输出。

处理逻辑说明:利用「CSV文件输入」组件加载原始项目数据 → 通过「字段选择」组件过滤并保留核心业务字段 → 在「计算器」组件中创建【diff_date】字段,用于计算起止日期间的天数差值 → 最后通过「数值范围」组件,按照预设的天数区间规则自动生成【performance】字段值,完成绩效等级的判定。

详细操作如下:

步骤一:新建一个转换流程,进入项目后切换至「组件库」标签页,将「CSV文件输入」组件拖放到画布区域。

步骤二:双击「CSV文件输入」组件打开配置面板,点击"浏览文件"按钮,通过文件浏览器选取目标CSV文件。

步骤三:在文件浏览器中选中project.csv文件并确认,系统会自动解析文件路径并回填到组件配置项中。

步骤四:文件路径设置完毕后,在「CSV文件输入」组件下方的数据展示区域点击右键,选择"获取字段",组件将自动识别并解析CSV文件的字段结构。

步骤五:字段解析完成后,可通过组件自带的「预览」功能检查数据加载情况,确认字段识别与数据内容无误。

步骤六:将「字段选择」组件拖至画布,并建立从「CSV文件输入」到「字段选择」的数据连接线。

步骤七:双击「字段选择」组件打开配置面板,在默认的"选择和修改"页签中,于空白区域右键选择「获取字段」,加载上游组件传递过来的全部字段信息。

步骤八:在"选择和修改"页签中,可对字段的名称、数据类型、长度、精度等属性进行调整。本案例中无需修改字段属性,保留默认设置即可。

步骤九:接下来拖拽「计算器」组件到画布,建立从「字段选择」到「计算器」的连接。此时系统会弹出连接类型选择提示,其中"主输出步骤"对应正常数据流转链路,"错误步骤"对应异常数据处理链路。由于字段选择组件涉及字段类型或长度的转换,转换失败的数据会进入错误链路,正常数据则进入主输出链路。本案例中仅处理正常数据,因此选择「主输出步骤」。

步骤十:双击「计算器」组件进入配置页面,点击「插入」按钮新增一条计算规则。计算器组件的每条规则由"新字段"(输出字段)、“计算公式”(运算方法)以及"字段A/B/C"(输入参数)等要素构成。

步骤十一:按如下方式填写计算规则:

  • 新字段:手动输入diff_date
  • 计算:从下拉列表中选择Date A - Date B (in days)
  • 字段A:选择end_date
  • 字段B:选择start_date
  • 值类型:选择Integer

该规则的含义是:用项目结束时间减去开始时间,得到两者之间的天数差,并将结果存储在diff_date字段中。配置完成后点击「确认」。

步骤十二:拖拽「数值范围」组件至画布,建立从「计算器」到「数值范围」的连接。

步骤十三:双击「数值范围」组件打开配置面板,在「输入字段」下拉列表中选取diff_date,在「输出字段」中手动输入performance,然后按照以下业务规则配置范围区间(最小值 ≤ x < 最大值):

下界上界评价值
030excellent
30180very good
180360good
360poor

即依据项目执行天数diff_date的不同区间,自动为项目分配绩效等级并存入performance字段。配置完毕后点击「确认」。

步骤十四:拖拽「文本文件输出」组件至画布,建立从「数值范围」到「文本文件输出」的连接。

步骤十五:双击「文本文件输出」组件打开配置面板,进行输出文件的基本设置:

  • 在「文件名称」栏手动填写project_output
  • 在「扩展名」栏填写csv

即将最终处理结果写入到project_output.csv文件中。

步骤十六:切换到「内容」标签页,将「分隔符」修改为英文逗号,,表示输出文件中各字段之间以逗号进行分隔。

步骤十七:切换到「字段」标签页,在字段列表的空白区域右键选择「获取字段」,自动加载上游组件传递的全部字段,即把所有处理后的字段都写入输出文件中。

步骤十八:确认配置无误后点击「确认」保存所有设置。

步骤十九:至此,完整的转换工作流已搭建完成,整体流程视图如下:

步骤二十:点击画布左上角的「运行」按钮,在弹出的确认框中点击「启动」,开始执行整个转换流程。

运行结果展示

转换执行完成后,在文件库中会生成Project_output.csv文件,打开后可查看包含绩效等级字段的完整数据。

5 从文本文件中读取数据

本节将以足球赛事数据为例,演示如何在助睿ETL平台中实现文本格式数据的规范化读取、字段精简与结果校验,为后续的统计分析工作提供可靠的数据基础。数据中包含了比赛日期、场地、主客队伍、比分等核心字段,我们将通过以下三个关键步骤完成数据处理:

  • 数据接入:借助「CSV文件输入」组件读取文本文件数据,校验文件路径、字段解析结果及数据格式的准确性,确保源数据能被平台正确识别加载;
  • 字段精简:运用「字段选择」组件,按业务需要筛选出关键分析字段(如比赛日期、参赛队伍、比分等),剔除非必要字段以简化数据结构;
  • 结果校验:配合「空操作(什么也不做)」组件作为数据终点,该组件仅负责接收数据而不执行任何业务逻辑,其核心用途在于检验数据能否从上游组件完整无损地传递至末端,从而验证整条流程的连通性与稳定性。

通过上述操作,我们将快速构建一条完整的文本数据读取与校验流水线,为后续的赛事数据统计、比分趋势分析等应用场景打下坚实基础。

详细操作如下:

步骤一:新建转换流程,将「CSV文件输入」组件拖放至画布区域。

步骤二:双击组件进入配置面板,在「文件名」栏通过「浏览文件」选择足球赛事数据文件usa_201209.txt。随后将「列分隔符」设定为英文分号;(须与文件中实际使用的分隔符保持一致,若文件中采用中文分号则需相应调整)。同时勾选「包含列头行」复选框。该配置表示:使用「CSV文件输入」组件读取usa_201209.txt文件,按分号;拆分各列,并将文件首行数据作为字段名称。

步骤三:在组件下方的数据预览区域空白处点击右键,从弹出菜单中选择「获取字段」,系统将自动识别并加载文本文件中的字段信息。确认无误后点击「确认」保存配置。

步骤四:选中「CSV文件输入」组件后右键单击,选择「预览输出」,检查数据读取是否正常、字段解析是否准确。

步骤五:依次将「字段选择」组件和「空操作(什么也不做)」组件拖至画布,按照「CSV文件输入」→「字段选择」→「空操作(什么也不做)」的顺序建立组件间连接,在弹出的连接类型选择窗口中均选择「主输出步骤」,完成整条转换链路的搭建。

步骤六:双击「字段选择」组件打开配置面板,切换至「移除」标签页。先在空白区域「获取字段」加载所有字段,再通过「删除选中行」操作移除不需要的字段,最终仅保留待移除的Venue字段。点击「确认」完成配置。此时该组件将在数据流转过程中剔除Venue字段,不再向下游传递。

步骤七:点击画布左上角的「运行」按钮,在弹出的确认窗口中点击「启动」,执行完整的转换流程。

步骤八:选中「空操作(什么也不做)」组件,右键选择「预览」,查看经字段筛选后的最终数据输出,确认Venue字段已被成功移除且其余数据传递完整。

6 从Excel文件中读取数据

近年来房地产市场发展迅速,房价起伏显著,购房已成为大多数人一生中最重要的投资决策之一,住房的选择将直接关系到未来的居住体验与生活幸福感。面对市场上品类繁多的楼盘供给,不同房源在售价、地段、面积、户型设计、周边配套等维度上存在明显差异,购房者在做出决策时,通常需要综合权衡住房价格、居住环境、物业管理水平、空间布局合理性等多方面要素,这无疑增加了购房决策的复杂度。

在围绕购房决策影响因素(如购房者年龄、性别、学历背景、月收入水平、家庭成员数量等)开展数据建模与分析之前,首先需要对原始数据执行清洗与筛选操作。本节将使用助睿ETL平台读取购房者信息数据(Excel格式文件),通过字段选择操作提取出业务分析所需的目标字段,完成数据的基础预处理工作。

详细操作如下:

步骤一:新建转换工作流,从「组件库」中将「Excel输入」组件拖放至画布。

步骤二:双击组件进入配置面板,点击「浏览」按钮,通过文件浏览器定位并选择待读取的Excel文件。

步骤三:选定文件后点击「增加」按钮,将其添加到「选中的文件」列表中,完成文件源的基本配置。该配置表示通过 Excel XLSX(Streaming)引擎来解析和读取custinfo.xlsx文件。

步骤四:切换到「内容」标签页,勾选「头部」和「非空记录」选项,在「编码」下拉列表中选择UTF-8。此配置含义为:文件首行为字段名称行,仅读取非空数据记录,文件字符编码采用UTF-8。

步骤五:切换到「工作表」标签页,点击页面底部的「获取工作表名称」按钮,组件将自动读取Excel文件并获取其中的工作簿信息。

步骤六:在弹出的工作表选择窗口中,勾选目标工作表前的复选框,点击两列之间的右向箭头按钮,将Sheet1添加至右侧已选列表中,随后点击「确定」。此设置确保组件仅读取Sheet1工作表中的数据。

步骤七:切换到「字段」标签页,在空白区域右键选择「获取来自头部的字段」,组件会读取Sheet1首行数据并将其解析为字段信息。

步骤八:字段名称、数据类型等属性信息将自动填充至字段列表中,确认无误后点击「确认」保存。

步骤九:从「组件库」中分别拖出「字段选择」和「空操作(什么也不做)」组件至画布,按照「Excel输入」→「字段选择」→「空操作(什么也不做)」的顺序建立连接,在弹出的连接类型提示中均选择「主输出步骤」。

步骤十:双击「字段选择」组件进入配置面板,在「选择和修改」标签页中右键选择「获取字段」,加载上游「Excel输入」组件的全部字段;然后仅保留业务分析所需的educationemployment两个目标字段,删除其余字段后点击「确认」完成配置。

步骤十一:点击画布左上角的「运行」按钮,在弹出框中点击「启动」执行转换流程。

步骤十二:选中「空操作(什么也不做)」组件,右键选择「预览输出」,查看经Excel数据读取与字段筛选后的最终输出结果,确认目标字段提取正确、数据流转完整。

总结

通过本次实验,我们在助睿ETL平台上依次完成了CSV、文本、Excel三种主流文件格式的解析读取、字段筛选处理以及全链路数据校验,实现了数据抽取与转换环节的端到端闭环。这一系列操作帮助我们初步建立了ETL核心基础技能的认知框架,理解了数据预处理的关键逻辑,为后续开展数据分析、业务建模等进阶应用场景构筑了坚实可靠的数据底座——这些也正是数据处理领域不可或缺的入门基本功。