目錄
引言
概述
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操作中,并不需要我們太多幹預,是以這章内容了解即可。
batch_job_instance表
當作業第一次執行時,會根據作業名,辨別參數生成一個唯一JobInstance對象,batch_job_instance表會記錄一條資訊代表這個作業執行個體。
字段 | 描述 |
---|---|
JOB_INSTANCE_ID | 作業執行個體主鍵 |
VERSION | 樂觀鎖控制的版本号 |
JOB_NAME | 作業名稱 |
JOB_KEY | 作業名與辨別性參數的哈希值,能唯一辨別一個job執行個體 |
batch_job_execution表
每次啟動作業時,都會建立一個JobExecution對象,代表一次作業執行,該對象記錄存放于batch_job_execution 表。
字段 | 描述 |
---|---|
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對象資料。
字段 | 描述 |
---|---|
JOB_EXECUTION_ID | job執行對象主鍵 |
SHORT_CONTEXT | ExecutionContext系列化後字元串縮減版 |
SERIALIZED_CONTEXT | ExecutionContext系列化後字元串 |
batch_job_execution_params表
作業啟動時使用辨別性參數儲存的位置:batch_job_execution_params, 一個參數一個記錄
字段 | 描述 |
---|---|
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表中
字段 | 描述 |
---|---|
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
字段 | 描述 |
---|---|
STEP_EXECUTION_ID | 步驟執行對象id |
SHORT_CONTEXT | ExecutionContext系列化後字元串縮減版 |
SERIALIZED_CONTEXT | ExecutionContext系列化後字元串 |
H2記憶體資料庫
作業的運作指的是對作業的控制,包括作業啟動,作業停止,作業異常處理,作業重新開機處理等。
到這,本篇就結束了,欲知後事如何,請聽下回分解~
轉視訊版
看文字不過瘾可以切換視訊版:Spring Batch高效批處理架構實戰