資料載入操作手冊
文章目錄
簡述:
將ods推送的資料檔案,載入到資料庫的臨時B表中,然後通過儲存過程將臨時B表中的資料同步到目標A表中。
注:臨時B表結構和目標A表表結構必須一致,同步失敗。
一、基礎資料準備
1.1.表名規約
ods同步表的表名稱、欄位名稱、欄位數量規範,雙方需要提前約定好,一旦約定好不允許修改,否則載入資料和同步資料會失敗。
1.2.設計1套臨時表和1套同構層表
臨時B表作用:將ods推送的資料檔案內容載入到資料庫的臨時表中,每次執行指令碼臨時表中的資料會清空。
注:臨時B表可以理解為緩衝區
同構層表作用:儲存或者備份推送過來的資料,資料不會也不允許更改。
同構層表目的:查閱資料問題可以直接查閱同構層表的資料,不用請求其他系統諮詢,減少時間損耗和提高資料區配的效率。
1.3.儲存過程
設計與表關係為1:1的儲存過程
儲存過程作用:將臨時B表中的資料同步到目標的A表中。
注:同步資料種類:有全量-0和增量-1
二、流程規範
2.1. 生成控制檔案(.ctl)
cd /app/jiazai/sql_loadv1.0/control/
rm -rf new.unl old.unl file/
sh ./new.sh
2.2. 拉取ods推送的資料檔案
#進入sql_loadv1.0下面
cd /app/jiazai/sql_loadv1.0/
#拉取ods推送指定日期的資料檔案
#格式:sh load.sh 年月日
案例:sh load.sh 20201027
2.3. 資料載入+資料同步
將資料檔案的資料載入到臨時B表 把臨時表到B表資料同步到目標A表
#進入拉取的某一天資料檔案的目錄
cd /app/jiazai/sql_loadv1.0/loaded/20201027/
#1.將資料檔案中的資料載入到資料庫中的臨時B表中
#2.將資料庫中的臨時B表中的資料同步到目標A表中
sh run_sqlldr.sh
注:run_sqlldr.sh這個指令碼做了2件事情
三、手動排程
如當天的排程出現問題,修正後,想手動指定跑某張表的資料
3.1. 到下載的資料檔案路徑:
例:/app/jiazai/sql_loadv1.0/loaded/20180918
3.2. 資料檔案篩選
修改/app/jiazai/sql_loadv1.0/loaded/載入的資料檔案日期/f.unl
:只保留需要載入的批次表資訊(簡言之,那個表的資料沒有載入成功,只留下對應這個表的資料檔案即可。
這是有資料的全部資料檔案)
案例:
如果:20201027這一天dbx_ljtempfee 表資料載入失敗,就留下dir.ods.dbx_ljtempfee.20201027.000.01.i
這一行,把其他資料檔案刪除。
3.3. 將要載入的表的備份表清空;
例:T01_INDV_CUST_HB
修改/app/jiazai/sql_loadv1.0/sql/truncateyw.sql
只保留TRUNCATE TABLE T01_INDV_CUST_HB;
在/app/jiazai/sql_loadv1.0/loaded/20201027
路徑下執行
sh truncateyw.sh
3.4. 資料載入指令碼執行
cd /app/jiazai/sql_loadv1.0/loaded/20201027/
sh ./run_sqlldr.sh
3.5. sql還原
將/app/jiazai/sql_loadv1.0/sql/truncateyw.sql
還原
四、輪詢定時排程
定時每天呼叫/app/jiazai/sql_loadv1.0/hxloadupgrade.sh
自動將前一天的資料載入到行協test使用者下的表中。
4.1. 設定指令碼執行頻次
編輯定時任務配置檔案:
crontab –e
4.2. 設定執行頻次
案例:每天上午10:15觸發:0 15 10 * * ? /app/jiazai/sql_loadv1.0/hxloadupgrade.sh
4.3. 定時任務檢視
crontab -l
五、日誌軌跡
第一次初始化:
待ODS將全部資料檔案推送至資料交換平臺後,手動在 /app/jiazai/sql_loadv1.0路徑下執行sh load.sh 要載入的資料資料夾名(例:sh load.sh 20201027)
生成的日誌檔案在以下兩個資料夾下:
/app/jiazai/sql_loadv1.0/hx_loadlog
/app/jiazai/sql_loadv1.0/loaded/日期(例如:20201027)/load/log
可以去資料庫中的日誌表查詢
load_log 記錄表載入入備份表的狀態
LOAD_PL_LOG記錄表從備份表到目標表正確的狀態
LOAD_PL_ERROR_LOG記錄表從備份表到目標表錯誤的狀態
例:
SELECT * FROM load_log where to_Char(load_time,'yyyymmdd') =20200330 ; --實際載入日期
SELECT * FROM LOAD_PL_LOG where to_Char(s_time,'yyyymmdd') =20200330 ;--實際載入日期
SELECT * FROM LOAD_PL_ERROR_LOG where to_Char(s_time,'yyyymmdd') =20200330 ;--實際載入日期
注意:
如果第一次初始話在凌晨3點前完成資料載入,則crontab -e
解除定時的註釋,以後每天3:00-9:00會自動載入呼叫。
如果第一次初始化不能在凌晨3點前載入完成、或日後出現9點前未將32張介面表資料檔案全部推送完成、或ODS修復資料重新推數,需運維手動呼叫進行載入完成後,再crontab -e
解除定時的註釋,以後每天3:00-9:00會自動載入呼叫
如運維手動呼叫:
/app/jiazai/sql_loadv1.0
路徑下執行sh loadyw.sh
要下載的資料資料夾名
指令碼執行完成後,去資料庫中確認以下26張表中資料是否全部被刪除
確認無誤後到
/app/jiazai/sql_loadv1.0/loaded/日期(就是所要載入的資料資料夾名例如:20201027)路徑下執行
sh run_sqlldr.sh
輪詢定時排程:
定時每天呼叫/app/jiazai/sql_loadv1.0/hxloadupgrade.sh
自動將前一天的資料載入到行協test使用者下的表中。
定時檢視:crontab -l
ODS資料檔案從資料交換平臺下載到:
/app/jiazai/sql_loadv1.0/loaded/指定日期資料夾
例:/app/jiazai/sql_loadv1.0/loaded/20201027
路徑下
裝載後的資料檔案存放在:(如果有失敗的表,路徑下會產生*.bad檔案)
例:/app/jiazai/sql_loadv1.0/loaded/20201027/load/data
路徑下
如當天的裝載有失敗的表,需檢視日誌確定原因。
檢視每張表裝載日誌:
例:/app/jiazai/sql_loadv1.0/loaded/20201027/load/log/表名.log
資料庫中的日誌表:
表名 | 作用 |
---|---|
load_z_log | 每天只生成1條記錄,記錄每天整體裝載情況 |
load_log | 記錄表載入入備份表的狀態 |
LOAD_PL_LOG | 記錄表從備份表到目標表正確的狀態 |
LOAD_PL_ERROR_LOG | 記錄表從備份表到目標表錯誤的狀態 |
相關文章
- jquery操作手冊jQuery
- DHorse操作手冊
- GIt tag 操作手冊Git
- PDB插拔操作手冊
- rman duplicate操作手冊
- kraken軟體操作手冊
- mpaas-springboot-base操作手冊Spring Boot
- 列印交易票功能操作手冊
- wps+ps 寫操作手冊
- 資料載入
- ORACLE基礎運維命令操作手冊Oracle運維
- 10.註冊和登入功能實現(3)—— 註冊資料寫入資料庫資料庫
- MySQL5.7.26 MHA叢集部署操作手冊MySql
- [原創] Frida操作手冊-Android環境準備Android
- Centos7安裝MySQL8.0 - 操作手冊CentOSMySql
- Python資料分析入門知識手冊Python
- 易優load載入資原始檔標籤-EyouCms手冊
- ListView動態載入資料View
- WPFDataGrid效能載入大資料大資料
- Docker入門-資料掛載Docker
- Pytorch資料載入與使用PyTorch
- MySQL load xml載入資料MySqlXML
- MySQL load data載入資料MySql
- Pytorch系列:(二)資料載入PyTorch
- iOS應用釋出操作手冊-應用釋出篇iOS
- MT2523資料庫手冊下載,MT2523-datasheet資料分享資料庫
- Android 使用ArrayAdapter 載入Bean資料AndroidAPTBean
- 達夢dmfldr資料快速載入
- TS_0001:同步載入資料
- InnoDB資料字典--字典表載入
- spl_autoload_register 註冊自動載入涉及的佇列資料結構你懂嗎佇列資料結構
- 全志R16 DragonBoard使用手冊資料下載Go
- tensorflow載入資料的三種方式
- 使用 useLazyAsyncData 提升資料載入體驗
- pytorch載入imagenet的floder資料集PyTorch
- Apache ShardingSphere 後設資料載入剖析Apache
- 小程式預載入資料實戰
- javaweb專案(1)連線資料庫,登入註冊JavaWeb資料庫