mysql内存表持久化_SpringBatch数据持久化到数据库还是内存?

1.batch jobRepository在配置作业仓库时候有2个类型

如果引用

org.springframework.batch.core.repository.support.MapJobRepositoryFactoryBean

则使用机器内存管理springbatch信息,容易内存溢出。

推荐使用

org.springframework.batch.core.repository.support.JobRepositoryFactoryBean

但是需要手动建库,用于存储springbatch基础信息

2.怎么手动建库(我这是mysql)

解压SpringBatch的core包,会有很多sql文件,找到对应数据库类型的,比如我 这里是

schema-mysql.sql,直接在数据库中建表。

注意:建表时候可能会遇到sql报错:Unknown storage engine ‘InnoDB‘,这是数据库使用的引擎不一样导致的。可以把这个sql文件中的ENGINE=’InnoDB’改为ENGINE=MyISAM; 全部替换后再次支持即可

3.怎么配置jobRepository

4.怎么改为使用内存管理batch的信息

5.到这里,表生成了,数据存进去了,哪各个表存的是什么数据呢?

Table 1、BATCH_JOB_INSTANCE(作业实例表,存放JOB的实例信息)

字段名称

字段 类型

字段说明

JOB_INSTANCE_ID

bigint

主键 ,作业实例编号,根据BATCH_JOB_SEQ自动生成

VERSION

bigint

版本号

JOB_NAME

varchar

作业名称 即在配置文件定义的JobId字段内容

JOB_KEY

varchar

作业标识,根据作业参数序列化生成的标识,需要注意通过JOB_NAME+JOB_KEY

能够唯一区分一个作业实例

注意:JOB_KEY——如果同一个Job,则JOB_KEY一定不能相同,籍作业参数不能相同,如果不是同一个Job,JOB_KEY可以相同,也就是作业参数可以相同

Table 2、BATCH_JOB_EXECUTION_PARAMS(作业参数表,用于存放每个JOB执行的时候的参数信息,即对于的JOB实例)

字段名称

字段类型

字段说明

JOB_EXECUTION_ID

bigint

外键ID,作业执行器ID编号,一个作业实例可能又会多行参数记录

TYPE_CD

varchar

参数的类型,总共有四种 String、Date、Double、Long

KEY_NAME

varchar

参数的名字

STRING_VAL

varchar

参数如果是String,就存放String类型的参数值

DATE_VAL

datetime

参数如果是Date,就存放Date类型的参数值

LONG_VAL

bigint

参数如果是Long,就存放Long类型的参数值

DOUBLE_VAL

double

参数如果是Double,就存放Double类型的参数值

IDENTIFYING

char

用于标识作业参数是否标识作业实例

Table 3、BATCH_JOB_EXECUTION(作业执行器表,存放当前作业的执行信息,创建时间、执行时间、执行结束时间、执行状态、执行Job实例等信息)

字段名称

字段类型

字段说明

JOB_EXECUTION_ID

bigint

主键

VERSION

bigint

版本号

JOB_INSTANCE_ID

bigint

作业实例ID

CREATE_TIME

datetime

作业执行器创建时间

START_TIME

datetime

作业执行器开始执行时间

END_TIME

datetime

作业执行器结束时间

STATUS

varchar

作业执行器执行的状态:COMPLETED、FAILED、STARTING、UNKNOW等

EXIT_CODE

varchar

作业执行器退出代码 如:UNKNOW、EXECUTING、COMPLETED等

EXIT_MESSAGE

varchar

作业执行器退出信息,通常存放异常信息

LAST_UPDATED

datetime

本条记录上次更新时间

JOB_CONFIGURATION_LOCATION

varchar

作业配置文件的位置

运用BATCH_JOB_INSTANCE和BATCH_JOB_EXECUTION两张表联合查询Job信息

SELECT   bi.JOB_NAME,bi.JOB_KEY,be.CREATE_TIME,be.START_TIME,be.END_TIME,be.`STATUS`

FROM

batch_job_instance bi

LEFT JOIN batch_job_execution be ON bi.JOB_INSTANCE_ID = be.JOB_INSTANCE_ID

where bi.JOB_NAME=’billJob’

Table 4、BATCH_JOB_EXECUTION_ Table 1、(作业执行上下文表,存放上下文信息)

字段名称

字段类型

字段说明

JOB_EXECUTION_ID

bigint

外键ID,作业执行器编号

SHORT_CONTEXT

varchar

作业执行器上下文字符串格式

SERIALIZED_CONTEXT

text

序列化的作业执行上下文

Table 5、BATCH_JOB_EXECUTION_SEQ表(用于BATCH_JOB_EXECUTION和BATCH_JOB_EXECUTION_CONTEXT提供主键生成)

Table 6、BATCH_JOB_SEQ表(用于BATCH_JOB_INSTNCE 和BATCH_JOB_EXECUTION_PARAMS提供主键生成)

Table 7、BATCH_STEP_EXECUTION(作业步执行器,存放每个Step执行器的信息:开始时间、执行完成时间、读/写次数等)

字段名称

字段类型

字段说明

STEP_EXECUTION_ID

bigint

主键

VERSION

bigint

版本

STEP_NAME

varchar

作业步的名称

JOB_EXECUTION_ID

bigint

作业执行器ID

START_TIME

datetime

作业步执行器执行开始时间

END_TIME

datetime

作业步执行器执行结束时间

STATUS

varchar

作业步执行器执行状态

COMPLETED, STARTING, STARTED, STOPPING, STOPPED, FAILED, ABANDONED, UNKNOWN

存在于org.springframework.batch.core.BatchStatus

COMMIT_COUNT

bigint

事务提交次数

READ_COUNT

bigint

读数据次数

FILTER_COUNT

bigint

过滤掉的数据次数

WRITE_COUNT

bigint

写数据次数

READ_SKIP_COUNT

bigint

读数据跳过的次数

WRITE_SKIP_COUNT

bigint

写数据跳过的次数

PROCESS_SKIP_COUNT

bigint

处理数据跳过的次数

ROLLBACK_COUNT

bigint

事务回滚的次数

EXIT_CODE

varchar

作业步执行器退出编码,状态码存在于org.springframework.batch.core.ExitStauts

EXIT_MESSAGE

varchar

作业步执行器退出描述,一般是异常信息

LAST_UPDATED

datetime

本条记录上次更新时间

Table 8、BATCH_STEP_EXECUTION_CONTEXT(作业步执行器上下文,存放作业步执行的上下文信息)

字段名称

字段类型

字段说明

STEP_EXECUTION_ID

bigint

作业步执行器ID

SHORT_CONTEXT

varchar

作业步执行器上下文字符串格式

SERIALIZED_CONTEXT

text

序列化作业步执行器上下文

Table 9、BATCH_STEP_EXECUTION_SEQ(用于BATCH_STEP_EXECUTION和BATCH_STEP_EXECUTION_CONTEXT提供主键)

整理不易,转载请带上本文链接,谢谢、

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值