Kettle使用心得彙總系列一

来源:https://www.cnblogs.com/lsy-blogs/archive/2018/01/11/8268318.html
-Advertisement-
Play Games

Kettle使用心得彙總系列一 一、kettle實現的功能: kettle可以實現從不同數據源(excel、資料庫、文本文件等)獲取數據,然後將數據進行整合、轉換處理,可以再將數據輸出到指定的位置(excel、資料庫、文本文件)等; 通過kettle處理大量數據非常方便,如果window伺服器或者L ...


Kettle使用心得彙總系列一

一、kettle實現的功能:

kettle可以實現從不同數據源(excel、資料庫、文本文件等)獲取數據,然後將數據進行整合、轉換處理,可以再將數據輸出到指定的位置(excel、資料庫、文本文件)等;

通過kettle處理大量數據非常方便,如果window伺服器或者Linux伺服器硬體一般情況下,對於處理千萬級一下的數據都是可以的;

二、Kettle作業與轉換如何配合使用:

一個作業相當於一個主要任務項,在這個主線中可以調用其它若幹個轉換,每個轉換中可以從作業這個主線中獲取數據,然後將數據進行相應的處理操作,再將數據傳遞給作業主線,也可以在轉換中單獨獲取數據------處理數據------輸出數據;

並且如果對於需要設置變數的情況下,一般也是需要用到作業與轉換的配合使用,因為變數在當前線中設置,不能再當前線中獲取,需要到下一個線中才能夠獲取;

三、Kettle中設置編碼格式:

如果處理的數據中有中文,需要對中文設置編碼格式,一般是utf8格式,徹底的修改格式的方法就是,修改spoon.bat文件中增加如下信息:"-Dfile.encoding=UTF-8"

 

四、Kettle中調整運行性能:

Kettle預設的性能適用於普通的一般硬體,如果自己的電腦硬體比較好(記憶體比較大),可以對kettlespoon.bat中的參數進行修改,這樣可以適當的提高kettle的運行性能,主要是修改-Xms-Xmx-XX:MaxPermSize三個參數的值:

-Xms:設置JVM初始記憶體 
-Xmx:設置JVM最大可用記憶體 
-XX:MaxPermSize:設置JVM最大允許分配記憶體,按需分配;

非常註意:

1 -Xmx必須小於等於系統記憶體的1/4,要不然會報錯,其他兩個選項不大於-Xmx 
2、當系統記憶體為4G-Xmx不能大於1G,當系統記憶體為8G或更大時,java版本必須是64位的才能識別出來,此時-Xmx可以為2G或更高

自己配置的信息:window伺服器記憶體8G

-XX:MaxPermSize = -Xmx = 4096m

-Xms =  1024m

 

五、Kettle中常用的控制項:

(1)作業中常用控制項:

1、通用——START:作業開始;

2、通用——作業:指定某個作業迴圈執行;

3、通用——轉換:指定某個轉換,加入到作業中來;

4、通用——設置變數:設置變數,為了轉換或者作業中獲取變數;

5、通用——成功:作業完成操作;

(2)轉換中常用控制項:

1、輸入——Excel輸入:從excel文件中讀取數據;

2、輸入——文本文件輸入:從文本文件中讀取數據;

3、輸入——生成隨機數:用來生成指定類型的隨機數;

4、輸入——自定義數據常量:將值不變的變數存入到此處,方便管理;

5、輸入——獲取系統信息:可以獲取系統信息(日期、命令行參數);

6、輸入——表輸入:從資料庫表中讀取數據;

7、輸出——Excle輸出:註意.xls格式輸出行數有限制,一般輸出.xlsx最好;

8、輸出——插入/更新:根據指定的匹配欄位,可以檢測是插入新數據,還是修改舊數據;

9、輸出——文本文件輸出:將結果數據輸出到文本文件中去;

10、輸出——表輸出:將結果數據輸出到某個資料庫的某個表中;

11、轉換——增加常量:在原數據中將常量值增加新一列;

12、轉換——排序記錄:對原數據按照某個欄位進行排序;

13、流程——空操作:將不需要的數據放到此處,類似垃圾箱;

14、流程——過濾記錄:按照條件進行過濾,類似if-else

15、流程——Switch/Case:javaswitch/case一樣;

16、腳本——java代碼:執行java代碼;

17、腳本——javascript代碼:執行javascript代碼;

18、腳本——執行SQL腳本:執行sql

19、連接——記錄集連接:類似於sqlleft join/right join/inner join,但是使用前的數據必須要經過排序;

20、作業——從結果獲取記錄:從作業中獲取數據;

21、作業——複製記錄到結果:將轉換中的結果數據放到作業中去;

22、作業——獲取變數:從作業中獲取變數;

23、作業——設置變數:設置變數,從而讓作業中能夠獲取變數;

六、Kettlejavascript腳本執行:

javascript腳本中可以直接定義變數,可以直接從上一個控制項中獲取值,獲取值的方法直接寫前一個控制項中某列的列明就好,定義的變數在後續的控制項中都可以直接獲取:

 

七、Kettle中常用的功能代碼:

1、javascript生成uuid的代碼:

var uuid = replace(java.util.UUID.randomUUID(),"_","");

2、Javascript截取前一個控制項中某個欄位的長度,獲取另外一個變數:

var choice = substr(tydm,0,4);

0:開始截取的角標;4:表示截取的長度;

八、Kettle中常見的異常處理:

1、異常類型:java.lang.stackOverFlowError

原因:棧溢出,可能是在處理的數據比較大,棧預設值不夠使用了;

解決方法:修改kettle中的啟動項spoon.bat中的信息,添加一個Xss=1024m即可解決,如果還不夠,可根據硬體來適當增加值;

 

2、中文輸出亂碼問題:

設置編碼格式,具體操作上述有步驟;


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 註LVS(Linux Virtual Server):Linux虛擬伺服器,這裡通過keepalived作為負載均衡器RS(Real Server):真實伺服器VRRP(Virtual Router Redundancy Protocol): 虛擬路由冗餘協議, 解決區域網中配置靜態網關出現單點失效 ...
  • 今天主要是資料庫,然後哎,白天做了一件蠢事,惹得一個小姐姐心情不好。。。 今天把模擬題做完了,老師自己都說出的有問題。。。。 但是現在自己很多語法也記不住,特別是存儲過程和觸發器、視圖,這些重點考察的語法。好像都有as吧 第6題始終沒有解決,我還沒完全想明白,到底是為什麼錯了。 輸出結果是這個: 自 ...
  • 連接資料庫: 輸入資料庫密碼即可登陸。 查看mysql版本信息: 查看當前時間: 實現Windows與Ubuntu虛擬機之間的文件互傳問題。 其實很簡單就是需要安裝一個VMware tools即可。 打開文件管理就有一個VM的tar包,沒有的話就需要多掛一個cd驅動器。 右鍵,設置, 我有兩個cd驅 ...
  • (scott賬戶) SELECT * FROM scott.dept;--4SELECT * FROM scott.emp;--14 /**笛卡爾積內連接(等值連接)外連接(非等值連接)自連接*/ --笛卡爾積--當查詢數據時沒有使用連接條件,會查出所有關聯數據--4*14=56SELECT * F ...
  • 今天新部署Cloudera Manager Hadoop(CDH)集群 發現祖國江山一片紅,所有服務都報時鐘偏差 1、查看各伺服器,時鐘是否正確 發現並無問題 2、查看CDH主機配置————主機時鐘偏差閾值 尼瑪,這個預設值警告是2s,嚴重是10s,仔細查看界面後面的描述如下: 這是主機運行狀況測試 ...
  • .Net MongoDB LBS地理位置定位 開發過程,實現商家按距離排序 前言: 在使用美團點外賣,看電影,找好吃的時候,經常會註意到軟體有一個按距離排序,找離我最近的商家,心中有一些疑問,.Net+Sql Server是如何做到這一需求的?發現使用關係型資料庫Sql Server實現這一需求是有 ...
  • 一 前言 以往公司開發的地理信息系統數據都是存儲在oracle中,然而在地圖數據的分析和計算中一直存在不小的問題,所以今次我們嘗試使用PostgreSQL+PostGIS來解決這一問題。 本篇筆記的目的就是記錄在研究這一開發路徑期間的“學習的內容”、“遇到的問題和解決過程”以及“簡單的實踐內容”以備 ...
  • --scott用戶不能使用,使用system登錄--修改用戶scott賬戶解鎖ALTER USER SCOTT ACCOUNT UNLOCK;--重新設置密碼identified被識別的alter user scott identified by tiger; --選擇 所有欄位 scott用戶部門 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...