# XWJ 交接文件
###### tags: `HH`
- XWJ排程
## 1. xwj-kernel-engine-plugin
http://10.57.232.171:8888/rca/xwj-kernel-engine-plugin
- 用途說明: 將test_r表轉換成kernel engine可以處理的格式
- 排程啟動頻率: 1分鐘/1次,同時只有會一個job處理
- Input & Output:
- Input minio:
`/minio/rca-ftp/Cartridge-Nesta/Data/Bobcat_D_XWJ`
- Output minio:
`/minio/rca-ftp/Cartridge-Nesta/Data/TEST_DETAIL`
## 2. xwj-kernel-engine
http://10.57.232.171:8888/rca/xwj-kernel-engine
- 用途說明: 將test_detail單向測試結果表、work_order工單數據、config_component關鍵物料寫入Cockroach DB,並取得工站與測站資料更新到MySQL,給前端使用
- 排程啟動頻率: 1分鐘/1次,同時只有會一個job處理
- Input & Output:
- Input minio
1. test_detil 測試細項單:
`/minio/rca-ftp/Cartridge-Nesta/Data/TEST_DETAIL`
2. wo 工單 (目前是empty)
3. 2.wo 工單 in minio(目前是empty)
- Input Cockroach:
1. part_master(id,scantime,wo,floor),主要是為了要拉樓層(floor)和工單(wo)
2. part_detail(id,scantime,line),主要是為了要拉線別(line)
- Output Cockroach:
1. 單向測試結果表: test_detail
2. 工單數據: work_order(目前是empty)
3. 關鍵物料: config_component(目前是empty)
- Output MySQL:
1. 測試項目的上下界: product_item_spec
2. 工站對應名稱: product_station
3. 關鍵物料: config_component
## 3. xwj-kernel-engine-bigtable
http://10.57.232.171:8888/rca/xwj-kernel-engine-bigtable
- 用途說明: 依據資料集設定MySQL三張表(data_set_setting、data_set_station_item、data_set_part),讀取Cockroach db,將test_detail單向測試結果表、work_order工單數據、config_component關鍵物料join後,寫入MySQL DB
- 排程啟動頻率: 整點,1小時/1次,同時只有會一個job處理,下次排程啟動時間,是上一個排程執行完的下一個整點。
- Input & Output:
- Input Cockroach:
1. test_detail
2. work_order(目前是empty)
3. config_component(目前是empty)
4. part_detail(目前是empty)
- Input MySQL:
1. 資料表設定: data_set_setting(UI寫的設定 by product,去看起迄時間內 哪些去要去更新data_set,先刪除再重新create建立)
2. data_set_part(目前是empty)
3. data_set_station_item(by 產品 不同工站 不同測項)
- Output MySQL:
1. 資料集大表資料(pk:data_set_id,product,sn,value_rank): data_set_bigtable@${data_set_id}
ex:data_set_bigtable@1
2. 更新資料表設定: data_set_setting(排程執行的時間)
3. 更新資料集每個欄位的資料型態: data_set_bigtable_columns
columne -> item
-> station
-> componment
-> fixed
4. minio file: {data_base_path}/DATATSET/id
5. data_set_bigtable_execute_time:額外做的table,主要用來記錄每一個資料集大表建立所需要的時間
- 主要做三件事情:
(1) 建立資料集大表, 每一個dataset是一張table,例如tableA(data_set_A) , tableB(data_set_B) , tableC(data_set_C)
(2) 產生file(上面提到的資料集大表,不過這裡會把欄位給展開) in minio
(3) 去更新table(data_set_bigdata_columns)中的資料型別欄位
假設在mysql data_set_setting這個table裡面有一個新的設定data_set_A,假設選了A產品底下的A工站,A1~A3的測項,整點的時候bigtable的程式就會去建立data_seet_A的table。
更新資料型別欄位就是針對“測試項”的值

資料集大表 data_set_bigtable@${data_set_id}:
station_info(工站@欄位名稱)、item_info(測項@欄位名稱)、componet_info(關鍵物料@欄位名稱)
各自info對應config-dataset的key(config.dataset.station_info_col、item_info_col、component_info_col)

- K8S Dashboard:
1. Production (https://10.57.232.61:31963/#!/pod?namespace=rca-cartridge-nesta)
2. FII (https://10.134.224.192:31294/#!/cronjob?namespace=rca-cartridge-nesta)
- Daily Task
1. 記錄FII資料集的執行時間:
- MySQL Table: data_set_bigtable_execute_time
`SELECT id, product, data_set_id, data_set_item_columns, sn_count, start_time, end_time, spend_time FROM rca-cartridge-nesta.data_set_bigtable_execute_time;`
- 更新石墨數據(1天/1次):
https://shimo.im/sheets/SeHonkQtyiAse59J/dqRDi
2. 每天確認XWJ 3個排程正常運作(只有Cartridge一個BU)
- TPE: rca-cartridge-nesta
- FII: rca-cartridge-nesta
- 查詢追資料進度:
- Cockroach table:test_detail, 執行SQL:
`select product, max(test_starttime) as latest from test_detail group by product order by latest desc;`
- XWJ KE重補資料
1. TPE重補資料:
`mv /opt/minio-data/rca-ftp/Cartridge-Nesta/Data/TEST_DETAIL_Failed/201910/01/*/*.txt /opt/minio-data/rca-ftp/Cartridge-Nesta/Data/TEST_DETAIL/2019/08/28/10/00/00`
2. FII重補資料:
`mv /minio/rca-ftp/Cartridge-Nesta/Data/TEST_DETAIL_Failed/201909/27/*/*.txt /minio/rca-ftp/Cartridge-Nesta/Data/TEST_DETAIL/2019/10/05/16/08/42`