Some Use Case for Spring Batch
代码仅用于演示效果,原理及介绍见:
Spring Batch需要有个数据库去存储执行过程中相关的元数据,运行之前请实现准备好数据库。并在每个子项目的resources/application.yml
中配置好链接、账户和密码。
数据路的建表语句见:Item概念及使用代码中持久化数据部分的说明。如果是Mysql,可参考/ddl/mysql/create.sql。
用一个简单的例子说明Spring Batch的运行方式——命令行、JobLaunch和JobOperator。
实现数据的各种读写过程。
说明
-
代码中的测试数据来自数据分析交流项目bi-process-example,是NOAA的2015年全球天气监控数据。为了便于源码存储进行了大量的删减,原始数据有百万条,如有需要使用下列方式下载:
curl -O ftp://ftp.ncdc.noaa.gov/pub/data/ghcn/daily/by_year/2015.csv.gz #数据文件 curl -O ftp://ftp.ncdc.noaa.gov/pub/data/ghcn/daily/ghcnd-stations.txt # 文件结构及类型说明
-
代码实现了读取文件、处理文件、写入文件的整个过程。处理文件的过程是只获取监控的最高温度信息(
Type=TMAX
),其他都过滤。 -
本案例的包中有多个
main
方法用于不同的场景,详细内容见文件读写及数据库读写的介绍。项目使用的是Command Runner的方式执行(运行方式的说明见Item概念及使用代码的命令行方式运行、Java内嵌运行)。