原來採用a表與b表的差集進行新增同步, 考慮到有些表的新增時有個字段會在原來的基礎上遞增, 這樣只需比較a表和b表那個欄位的最大值, 就可以進行新增同步, 效能改進明顯.
資料量大的表都是有歷史資料在裡面, 就可以建立兩個檢視, 乙個對應當日資料, 乙個對於歷史資料,
這些資料有個特點, 歷史資料不變, 當日資料不斷變化.
為此在變更同步是, 只需要考慮當日資料, 不需要考慮歷史資料, 這樣大量減少比較的時間, 效能改進相當明顯.
原來一張表在變更更新時,都》 600秒, 現在全部變更更新時, 只要4.281秒
零, **自動生成
1, 生成檢視建立**
2, etl的sql**
一,處理功能
0, etl.刪除(etl_is_for_delete)
刪除目的表的最新資料, 不包括歸檔的歷史資料
1, etl.初始(etl_is_by_init)
初始化, 全部插入
2, etl.同步.新增.增量(etl_is_by_add_with_increase)
如果源表有新增的,並且新增的行有時間可以標識出來,如id,時間戳, 然後按此字段進行把源表新增的同步到目的表
3, etl.同步.新增.差集(etl_is_by_add_with_diff)
如果源表有新增的,但新增的行不能用時間標識出來, 就只能進行兩筆對比, 找出差集, 然後新增
4, etl.同步.變更.更新(etl_is_by_change_for_update)
如果源表有變更的, 採用每個字段對比的方式判斷, 如果有乙個字段變化,就整行更新
5, etl.同步.變更.刪除(etl_is_by_change_for_delete)
如果源表有變更的, 採用每個字段對比的方式判斷, 如果有乙個字段變化,就整行刪除, 後面採用etl.同步.新增.差集 插入此記錄
6, etl.同步.變更.歸檔(etl_is_by_change_for_archive)
如果源表有變更的, 採用每個字段對比的方式判斷, 如果有乙個字段變化,就將此行歸檔, 即是將此id記錄的所有行年齡+1, 後面採用etl.同步.新增.差集 插入此記錄
二, 日誌記錄
記錄etl的內容
異常處理, 雖然經過多次測試已經排除異常, 但是遇到特殊情況還是不好應付, 遇到最多的麻煩就是命名長度限制
欄位名, 檢視名, 表名等等.
三位數水仙花數的計算與改進
初學python,記錄學習路徑 水仙花數指的是其各位數字的3次方和等於該數本身。三位數的水仙花數 s for i in range 100,1000 t str i 字串就相當於乙個小型的字典型別,位置是建,內容是值 if pow eval t 0 3 pow eval t 1 3 pow eval...
特殊三位數
作 者 李家豪 完成日期 2013 年11月13日 版 本 號 v1.0 問題描述 請輸出滿足條件n a b c 的所有三位數n,其中,a b c分別是n的百 十 個位數。要求用自定義函式實現求階乘。樣例輸入 樣例輸出 145 問題分析 includeusing namespace std int ...
尋找三位數
問題描述 將1,2,9共9個數分成三組,分別組成三個三位數,且使這三個三位數構成 1 2 3的比例,試求出所有滿足條件的三個三位數。例如 三個三位數192,384,576滿足以上條件。輸入格式 無輸入輸出格式 輸出每行有三個數,為滿足題設三位數。各行為滿足要求的不同解。public class ma...