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

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

1、Kettle是一款國外開源的ETL工具,純java編寫,可以在Window、Linux、Unix上執行,資料抽取高效穩定。下載圖形化介面的zip包格式的,直接解壓縮使用即可。安裝部署模式這裡不說了,自己可以根據自己的需求安裝為單機模式或者叢集模式。    
Kettle的社群官網:https://community.hitachivantara.com/docs/DOC-1009855        
Kettle的下載地址:https://sourceforge.net/projects/pentaho/files/Data%20Integration/


kettle國內映象下載:http://mirror.bit.edu.cn/pentaho/Data%20Integration/
2、由於這裡只是演示瞭如何配置通過時間戳和批次號增量的匯入資料,所以具體的操作不再敘述,具體的使用自己可以根據需求來使用。

Job如下所示:

思路。
批次量將一批資料從一個數據庫匯入到另外一個數據庫,而且每批次的資料量不能重複。
這裡使用時間戳,你也可以使用批次號。原理基本一樣,都是確定每一批次的資料量。
job步驟:
    第一步。start,可以設定定時或者手動點選啟動job。
    第二步。執行轉換。
    第三步。將start_time=next_time。
    第四步。成功。        
        
1、Start,型別可以選擇不需要定時,時間間隔,天,周,月。 預設不需要定時,如果需要定時的話,首先把重複的框勾選。 然後如果選擇時間間隔的話,可以輸入以分鐘計算的間隔或者以秒計算的間隔。 如果按天,就選擇天,然後選擇每天幾天的幾分開始跑。 如果按照周,就選擇每週的每天幾點幾分開始跑job。 如果是每月的話,就選擇那一月的每天幾點幾分跑job。 2、轉換的作業項名稱,自己填自己的作業項名稱, 在轉換設定的tab然後自己填自己的轉換檔名core_table_name_down。 高階tab,設定日誌tab,位置引數tab, 命名引數tab,如果自己需要的話可以自己使用和研究。
3、作業項名稱,自己填自己的,資料庫連線,自己新建和編輯即可。 SQL指令碼,自己填上自己的sql指令碼。 這個主要是批次量匯入資料,所以使用時間戳來實現批次量匯入資料。 所以每次批次量匯入資料結束,將start_time=next_time。這樣下次 執行這個job,就是下一批的資料量了。 update 資料表名稱 set start_time=next_time where table_name='資料表名稱' and part=第幾步

相關推薦

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

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

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

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

根據時間生成分配批次

des format 時間 style mat urn RR new 當前時間 1 /** 2 * 根據當前時間生成分配批次號 3 * 4 * @return 5 */ 6 private String

Javaweb專案不用重啟載入properties檔案的方法(根據時間判斷)

不多說 先來原始碼 package com.lx.core.util; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.Pro

jqurey 將如2017-5-30轉化為時間或者時間轉化為日期的js方法

jqurey 將如2017-5-30轉化為時間戳或者時間戳轉化為日期的js方法<script> function datetime_to_unix(datetime){ var tmp_datetime = datetime.replace(/:/g,‘-‘);

hbase根據時間刪除資料

hbase shell 或者指令碼刪除資料一般都根據rowkey進行操作,因此,此處還是要先根據時間戳範圍找出rowkey,然後進行deleteall 操作,以下簡單分四步進行操作 #第一步:通過時間戳找到要刪除的資料 #第二步:構建刪除資料的shell #第三步:給delete_a

練習:將從表讀出時間除以1000(java讀時間會多出3個000)用jackson包 實現

練習:將從表讀出來的時間戳除以1000(java讀時間戳會多出3個000)jackson包 實現 entity @Entity @DynamicUpdate //自動更新日期 @Data //get/set public class OrderDetail { @Id priv

根據時間轉Date實現(Java)及實現原理分析

時間戳是指格林威治時間1970年01月01日00時00分00秒(北京時間1970年01月01日08時00分00秒)起至現在的總秒數。 本次實現跟根據Java.text.* 包中的工具類實現的,示例程式碼: import java.text.SimpleDateFormat; public

根據時間增量同步數據的解決辦法

很大的 額外 調整 esc 斷點 修改表結構 不知道 針對 頻繁 由於markdown的樣式太醜了,懶得再調整了,我另外再貼一個github的博客該文的 github鏈接 前言 最近在工作中遇到一個比較棘手的問題,客戶端從服務端同步數據的問題。 背景簡介:客戶端有N個,客戶

根據時間增量同步資料的解決辦法

由於markdown的樣式太醜了,懶得再調整了,我另外再貼一個github的部落格該文的 github連結 前言 最近在工作中遇到一個比較棘手的問題,客戶端從服務端同步資料的問題。 背景簡介:客戶端有N個,客戶端上的同步時間,各不相同。同步的時候,是一次獲取10條資料,多批次獲取。即分頁獲取。 在程式碼中

js根據時間獲取格式化日期

//格式化時間戳(毫秒) function getFormatDate(timestamp) { var newDate = new Date(timestamp); Date.prototype.fo

在傳送ajax請求時加時間或者隨機數去除js快取

在傳送ajax請求的時候,為了保證每次的都與伺服器互動,就要傳遞一個引數每次都不一樣,這裡就用了時間戳 大家在系統開發中都可能會在js中用到ajax或者dwr,因為IE的快取,使得我們在填入相同的值的時候總是使用IE快取,為了解決這個問題一般可以用一下方法: 1:在ajax或者dwr提交的url後面加時間戳

根據時間返回時間間隔

+ (NSString *)getDatePlaySeconds:(NSString *)playSeconds{ NSString *timeStr; NSTimeInterval time

Kettle裡使用時間實現變化資料捕獲(CDC)

1. 建立測試表,插入資料。use test; create table t_color ( id int unsigned not null auto_increment primary key, color varchar(10),

js根據時間換算過去間隔

function formatMsgTime (dateTimeStamp) { var minute = 60; var hour = minute * 60; var day =

【PHP】獲取每個月每天的資料根據時間

author:咔咔 wechat:fangkangfk   這是資料庫 // 獲取每日活躍人數 $activeNumber = Db::query("select FROM_UNIXTIME(time,'%Y-%m-%d')a

Mysql 根據時間按年月日分組統計(做個收藏)

  create_time時間格式         SELECT DATE_FORMAT(create_time,'%Y%u') weeks,COUNT(id) COUNT FROM role GROUP BY weeks;         SELECT DATE_FO

mysql根據時間查詢資料

比如我們要查詢每天的註冊使用者數量,這裡我們的註冊時間是時間戳的話。我們寫的sql語句就得把時間轉換為日期進行查詢。sql語句如下: 函式:FROM_UNIXTIME "select count(*) user_regnumber,FROM_UNIXTIME

SQL 根據時間分組查詢

//根據 一天中的 24 小時查詢 ,  SELECT FROM_UNIXTIME(record_time, '%H') time, day_total_Energy FROM system W

java--根據時間得到具體的時間

public static void main(String[] args) { try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss")