此示例通过数据库相关组件和
ExcelWriter
组件结合,将数据库查询结果封装成 Excel 文档
适用场景
◇ 定时生成数据报表
◇ 定时或较为常用的数据统计场景
实现方式
◇ 定义一个 GenerateFlowFile
入口(定时器,生成触发整个流程 Mock 数据)
◇ 通过ExecuteSQL
组件执行数据库查询操作,查询结果为数组形式,数据类型为Avro
◇ SplitAvro
组件将数据库查询的结果拆分为单条数据
◇ ExecuteWriter
组件将Avro
类型数据转换生成 Excel
◇ PutFile
组件最终输出 Exce l文档
实现步骤
GenerateFlowFile
调度页面配置流程的定时策略- CRON定时:通过 cron 表达式定义流程在指定时间点执行
- Timer driven:组件启动后运行一次,之后间隔指定的时长再运行下一次
ExecuteSQL
组件执行 SQL 语句,进行数据库查询- 数据库连接池服务:
DBCPConnectionPool
类型控制器服务,定义连接的数据库信息,JDBC
方式 - 数据库查询:定义要执行的
SQL
语句,不限于查询语句,也能执行其他类型的SQL
语句 - 注意:查询结果是`Avro`数据类型,如果需要查看或者做其他处理,需要转换成其他类型(比如`JSON`)
- 数据库连接池服务:
通过
ExcelWriter
组件,将Avro
数据直接转换为 Excel 文档- 记录读取器:
RecordReader
类型的控制服务,指定输入的数据类型 - 文件名:生成的 Excel 文档名
- 其他配置可以按需进行配置
- 记录读取器:
PutFile
将 Excel 内容输出到服务器上- 目录:文件输出到服务器上指定的目录
- 文件名:输出的文件名称,因为前面在
ExcelWriter
组件中已经配置,这里直接取变量即可