1. 程式人生 > >將根據時間戳增量資料方案修改為根據批次號增量資料方案 使用kettle來根據時間戳或者批次號來批量匯入資料,達到增量的效果。

將根據時間戳增量資料方案修改為根據批次號增量資料方案 使用kettle來根據時間戳或者批次號來批量匯入資料,達到增量的效果。

1、之前寫過根據時間戳來增量資料,時間戳增量資料存在一定的缺點,就是如果開啟自動的話,以後如果因為某個外在因素出錯了,那麼這個開始時間和結束時間不好控制,那麼就可能造成一些其他資料量不準的情況,但是根據批次號不會出現這個問題:

使用kettle來根據時間戳或者批次號來批量匯入資料,達到增量的效果。

方案一、
1、第一步、獲取目標資料庫資料表名稱最大批次號;
select '資料表名稱' as table_name, 1 as part,'資料來源' as source,IFNULL(max(Cd_batch), CONCAT(DATE_FORMAT(now(),'%Y%m%d'),'
00001')) as next_batch from 資料對賬資料表名稱 where UPPER(TableName)='資料表名稱' 2、第二步、獲取系統資料庫資料表開始批次號; 注意:記得勾選替換SQL語句裡的變數。然後從步驟插入資料進行選中,上一步的名稱。 select ? as table_name, ? as part,? as source,start_batch, ? as next_batch from 系統對賬資料表資料名稱 where table_name='資料表名稱' and part=1 and source='資料來源' 3、第三步、獲取目標資料庫資料表對賬批次號; 注意:記得勾選替換SQL語句裡的變數。然後從步驟插入資料進行選中,上一步的名稱。執行每一行進行勾選,可以保證查詢出的多條SQL語句的值可以被執行。
select Cd_count, Cd_batch from 資料對賬資料表名稱 where '資料表名稱'=? and 1=? and '資料來源'=? and TableName='資料表名稱' and Cd_batch>? and Cd_batch<=? ORDER BY Cd_batch 4、第四步、獲取目標資料庫資料表批次資料量Cd_count; 注意:記得勾選替換SQL語句裡的變數。然後從步驟插入資料進行選中,上一步的名稱。執行每一行進行勾選,可以保證查詢出的多條SQL語句的值可以被執行。 select (count(*) - ?) as COUNTS, Cd_batch from
資料表名稱 where Cd_batch=? 5、第五步、過濾記錄,傳送true資料給步驟進行選擇正常的目標資料庫資料表表輸入,傳送false資料給步驟進行選擇中止。條件是COUNTS = 0; 6、第六步、目標資料庫資料表表輸入; 注意:記得勾選替換SQL語句裡的變數。然後從步驟插入資料進行選中,上一步的名稱。執行每一行進行勾選,可以保證查詢出的多條SQL語句的值可以被執行。 select *,'資料來源' as Cd_source,'資料表名稱' as table_name, 1 as part,'資料來源' as source, ? as COUNTS from 資料表名稱 where Cd_batch=? 7、第七步、可以將表輸出和表輸出1進行欄位獲取和對映,然後進行更新操作,將next_batch進行更新,更新的條件欄位是table_name、part、source。

方案一和方案二:

相關推薦

根據時間增量資料方案修改根據批次增量資料方案 使用kettle根據時間或者批次批量匯入資料達到增量效果

1、之前寫過根據時間戳來增量資料,時間戳增量資料存在一定的缺點,就是如果開啟自動的話,以後如果因為某個外在因素出錯了,那麼這個開始時間和結束時間不好控制,那麼就可能造成一些其他資料量不準的情況,但是根據批次號不會出現這個問題: 使用kettle來根據時間戳或者批次號來批量匯入資料,達到增量的效果。

使用kettle根據時間或者批次批量匯入資料達到增量效果

1、Kettle是一款國外開源的ETL工具,純java編寫,可以在Window、Linux、Unix上執行,資料抽取高效穩定。下載圖形化介面的zip包格式的,直接解壓縮使用即可。安裝部署模式這裡不說了,自己可以根據自己的需求安裝為單機模式或者叢集模式。    Kettle的社群官

python mysql資料庫中的int型別修改NULL 報1366錯誤解決辦法

   gt.run_sql()是用pymysql 封裝的類 distribution_sort_id type: int目的:將此欄位值全部修改為NULL g=2gt.run_sql("update goods set distribution_sort_id=%s;",(g,))修改是成功

如何上傳檔案的瀏覽按鈕修改自定義按鈕

  大致思想就是:將真的file進行隱藏,使用普通的text和button拼接成我們的檔案上傳樣式。然後設定button的onclick事件,該事件響應的是又是file的click事件,最後設定file的onchange事件,當file改變時將file的value值填充到t

批量匯入資料(Mysql)報MySQL server has gone away 問題的解決方法

問題分析 首先度娘:mysql出現ERROR : (2006, 'MySQL server has gone away') 的問題意思就是指client和MySQL server之間的連結斷開了。    造成這樣的原因一般是sql操作的時間過長,或者是傳送的資料太大(例如使用inser

Solr批量匯入資料

1、從solr 4.10.3 的dist 下 所需Jar包複製一份到 solr_home的索引庫(db1 是我自己新建的索引庫)下lib下 如果沒有就新建 2、在索引庫(db1)的核心配置檔案(solrconfig.xml)中 新增請求處理器。 <requestHand

react下批量匯入資料無法覆蓋原資料中的input值的問題(利用antd design外掛)

最近在寫一個需求,要求批量匯入資料後要把原來的列表資料全部覆蓋,包括匯入的資料與原來的列表資料重複的值。 如果匯入的資料中與原來列表的資料沒有重複的值,那就重新setState一下就好;那如果列表中有資料A,並且A的一個屬性通過input編輯過,此時再批量匯入資料包含資料A的話,那就不能覆蓋已經

C#解析Mysql的sql指令碼實現批量匯入資料

最近老大對我們做的資料匯入功能意見挺大,資料量一上來,匯入時間就很長,嚴重影響使用者體驗。因此,不得不花時間搗鼓了一下資料匯入的效能優化問題 原始程式碼: MySqlCommand command = new MySqlCommand(); command.Connection = conn

Ne4j如何使用python批量匯入資料

說到neo4j的批量匯入資料,我想你一定會想到如下幾點: import tools load file neo4j driver for python/java… 前兩種必須要資料檔案存在檔案系統才可以執行。 但是如果你的資料是以流資料的形式持續獲取的呢

Java實現Excel批量匯入資料

Excel的批量匯入是很常見的功能,這裡採用 Jxl實現,資料量或樣式要求較高可以採用 poi 框架環境:Spring + SpringMvc(註解實現) 首先匯入依賴jar包 <dependency> <groupId>ne

python實現Phoenix批量匯入資料

官網文件: Phoenix provides two methods for bulk loading data into Phoenix tables: Single-threaded client loading tool for CSV formatted data

HBase利用bulk load批量匯入資料

OneCoder只是一個初學者,記錄的只是自己的一個過程。不足之處還望指導。 看網上說匯入大量資料,用bulk load的方式效率比較高。bulk load可以將固定格式的資料檔案轉換為HFile檔案匯入,當然也可以直接匯入HFile檔案。所以

EXCEL批量匯入資料MVC

using NPOI.HSSF.UserModel; //批量匯入的頁面Action public ActionResult ExcelAppendData() { return View(); } /// /// 匯入Excel方法 /// 作者

Elasticsearch —— bulk批量匯入資料

在使用Elasticsearch的時候,一定會遇到這種場景——希望批量的匯入資料,而不是一條一條的手動匯入。那麼此時,就一定會需要bulk命令! 更多內容參考我整理的Elk教程 bulk批量匯入 批量匯入可以合併多個操作,比如index,delete,update,create等等。也可以幫助從一個索引匯

用java實現從txt文字檔案批量匯入資料至資料庫

今天同事讓我準備一個專案的測試資料,要向一個表中插入上千條記錄,並且保證每條記錄內容不同,如果用手工一條一條插入肯定是不可能,也不會有哪個SB去做這樣的事,我最開始想到了用迴圈,但要求插入的記錄內容不能相同,用迴圈實現比較麻煩,於是我想到了將記錄從文字檔案匯入至資料庫(其實

簡單三層使用DataTable向資料庫表批量匯入資料---向SqlServer一張表中匯入資料

向資料庫的一張表中新增資料,可以採用單個新增,即一條資料、一條資料的新增;也可以採用批量匯入,依次將好些條資料寫入資料庫的一張表中。文字藉助例項《新增系列資訊》講解一種向資料庫批量匯入資料的方法。 1.介面設計 觀看一下新增系列資訊部分的介面設計: 本

Elasticsearch 批量匯入資料

前言  可以非常方便地進行資料的多維分析,所以大資料分析領域也經常會見到它的身影,生產環境中絕大部分新產生的資料可以通過應用直接匯入,但是歷史或初始資料可能會需要單獨處理,這種情況下可能遇到需要匯入大量資料的情況 這裡簡單分享一下批量匯入資料的操作方法與相關基礎,還有可能

Hbase批量匯入資料支援多執行緒同時操作

/** * HBase操作工具類:快取模式多執行緒批量提交作業到hbase * * @Auther: ning.zhang * @Email: [email protected] * @CreateDate: 2018/7/30 */ public c

Sqlserver資料庫批量匯入資料

最近抽空整理了一下專案中運用到的公共方法,打算增加自己的DLL檔案的內容。突然發現sqlserver資料批量插入的一個東西。好像我的DLL檔案裡面沒有,所以就加上了。這裡說明一下:專案中所有的公共檔案都是我自己建的,公共類庫中的大部分方法都是我自己寫的,不存在什麼洩露程式碼

java實現批量匯入資料到資料庫

這裡使用的是jdbc,下面貼出主要的程式碼,connection自己實現就可以了 Connection con = null; try{ con = getConnection(); /*