1. 概述
1.1 预期效果
Excel 数据表为源数据表,每天会新增数据,用户希望数据库中的某张表自动新增 Excel 里面昨天新增的数据。
1.2 实现思路
Excel 数据集作为要输入的数据,使用 Spark SQL 算子筛选出前一天的数据后,通过 DB 表输出算子输出到数据库的某张表中。
2. 示例
2.1 新建 Excel 数据集
示例数据:出入库信息.xls,为数据来源表,每天都会更新信息。
具体步骤请参见:数据源类型为Excel 文档的 2.1 节内容。
2.2 创建任务
新建一个 ETL 任务,将一个「数据转换」节点拖到设计界面。如下图所示:
2.3 设置数据输入
1)点击「数据转换」节点进入设置页面。
2)将一个「数据集输入」算子拖到数据转换的设计界面,进行设置。如下图所示:
2.4 设置 Spark SQL 算子
1)将 Spark SQL 算子拖到数据转换的设计界面,并使用线条跟它的上游「数据集输入」算子相连。
2)按照下图配置 Spark SQL 。语句为:select * from 数据集输入 where `入库日期` = date_add("${cyctime}",-1)。如下图所示:
注1:表名为上游节点的名称;语句不能直接复制,「数据集输入」需点击生成。
注2:SQL 语句含义:筛选出前一天入库的信息。
数据预览 Tab 页面如下图所示:
2.5 设置 DB 表输出
再将一个「DB表输出」算子拖到设计界面,并使用线条跟它的上游「Spark SQL」算子相连。
1)点击「DB表输出」算子对它进行设置。如下图所示:
注:示例中 xinxi 表为新建的空表。
2)点击右上角「保存」按钮。如下图所示:
2.6 设置定时更新
1)回到 ETL 任务设计界面,点击右上角「调度配置」,设置任务定时执行时间。如下图所示:
注:用户根据实际情况设置执行时间;执行时间在数据来源表更新数据之后就行。
2)点击右上角「保存」按钮。
2.7 任务结果
任务执行后,目标表数据如下图所示: