天天看點

Spring Batch 批處理資料表

目錄

引言

概述

batch_job_instance表

batch_job_execution表

batch_job_execution_context表

batch_job_execution_params表

btch_step_execution表

batch_step_execution_context表

H2記憶體資料庫

轉視訊版

引言

接着上篇:Spring Batch 步驟對象-傳回狀态-ExitStatus,了解傳回狀态ExitStatus狀态類後,接下來一起學習一下Spring Batch 批處理核心的資料表

概述

學習階段,Spring Batch資料存儲可以采用2種方式,1:H2記憶體資料庫 2:關系型資料庫。選擇1這個好說,基本上不需要我們做過多幹預,選擇2也一樣,但是我們可以借助資料庫的可視化工具來檢視資料表,幫助我們更好的了解springbatch執行流程或原理。

當我們選擇資料庫方式存儲批處理資料,Spring Batch 在啟動時會自動建立9張表,分别存儲: JobExecution、JobContext、JobParameters、JobInstance、JobExecution id序列、Job id序列、StepExecution、StepContext/ChunkContext、StepExecution id序列 等對象。Spring Batch 提供 JobRepository 元件來實作這些表的CRUD操作,并且這些操作基本上封裝在步驟,塊,作業api操作中,并不需要我們太多幹預,是以這章内容了解即可。

Spring Batch 批處理資料表

batch_job_instance表

 當作業第一次執行時,會根據作業名,辨別參數生成一個唯一JobInstance對象,batch_job_instance表會記錄一條資訊代表這個作業執行個體。

Spring Batch 批處理資料表
字段 描述
JOB_INSTANCE_ID 作業執行個體主鍵
VERSION 樂觀鎖控制的版本号
JOB_NAME 作業名稱
JOB_KEY 作業名與辨別性參數的哈希值,能唯一辨別一個job執行個體

batch_job_execution表

每次啟動作業時,都會建立一個JobExecution對象,代表一次作業執行,該對象記錄存放于batch_job_execution 表。

Spring Batch 批處理資料表
字段 描述
JOB_EXECUTION_ID job執行對象主鍵
VERSION 樂觀鎖控制的版本号
JOB_INSTANCE_ID JobInstanceId(歸屬于哪個JobInstance)
CREATE_TIME 記錄建立時間
START_TIME 作業執行開始時間
END_TIME 作業執行結束時間
STATUS 作業執行的批處理狀态
EXIT_CODE 作業執行的退出碼
EXIT_MESSAGE 作業執行的退出資訊
LAST_UPDATED 最後一次更新記錄的時間

batch_job_execution_context表

batch_job_execution_context用于儲存JobContext對應的ExecutionContext對象資料。

Spring Batch 批處理資料表
字段 描述
JOB_EXECUTION_ID job執行對象主鍵
SHORT_CONTEXT ExecutionContext系列化後字元串縮減版
SERIALIZED_CONTEXT ExecutionContext系列化後字元串

batch_job_execution_params表

作業啟動時使用辨別性參數儲存的位置:batch_job_execution_params, 一個參數一個記錄

Spring Batch 批處理資料表
字段 描述
JOB_EXECUTION_ID job執行對象主鍵
TYPE_CODE 标記參數類型
KEY_NAME 參數名
STRING_VALUE 當參數類型為String時有值
DATE_VALUE 當參數類型為Date時有值
LONG_VAL 當參數類型為LONG時有值
DOUBLE_VAL 當參數類型為DOUBLE時有值
IDENTIFYING 用于标記該參數是否為辨別性參數

btch_step_execution表

作業啟動,執行步驟,每個步驟執行資訊儲存在tch_step_execution表中

Spring Batch 批處理資料表
字段 描述
STEP_EXECUTION_ID 步驟執行對象id
VERSION 樂觀鎖控制版本号
STEP_NAME 步驟名稱
JOB_EXECUTION_ID 作業執行對象id
START_TIME 步驟執行的開始時間
END_TIME 步驟執行的結束時間
STATUS 步驟批處理狀态
COMMIT_COUNT 在步驟執行中送出的事務次數
READ_COUNT 讀入的條目數量
FILTER_COUNT 由于ItemProcessor傳回null而過濾掉的條目數
WRITE_COUNT 寫入條目數量
READ_SKIP_COUNT 由于ItemReader中抛出異常而跳過的條目數量
PROCESS_SKIP_COUNT 由于ItemProcessor中抛出異常而跳過的條目數量
WRITE_SKIP_COUNT 由于ItemWriter中抛出異常而跳過的條目數量
ROLLBACK_COUNT 在步驟執行中被復原的事務數量
EXIT_CODE 步驟的退出碼
EXT_MESSAGE 步驟執行傳回的資訊
LAST_UPDATE 最後一次更新記錄時間

batch_step_execution_context表

StepContext對象對應的ExecutionContext 儲存的資料表:batch_step_execution_context

Spring Batch 批處理資料表
字段 描述
STEP_EXECUTION_ID 步驟執行對象id
SHORT_CONTEXT ExecutionContext系列化後字元串縮減版
SERIALIZED_CONTEXT ExecutionContext系列化後字元串

H2記憶體資料庫

 作業的運作指的是對作業的控制,包括作業啟動,作業停止,作業異常處理,作業重新開機處理等。

到這,本篇就結束了,欲知後事如何,請聽下回分解~

轉視訊版

看文字不過瘾可以切換視訊版:Spring Batch高效批處理架構實戰