標籤:字型 1.0 運用 資料庫的備份 介面 今天 oracle 自己的 oracl
前言
現在的資料庫種類越來越多,Database Backup的格式也越來越複雜,所以資料格式化一直是一個老生常談的問題。據庫備份檔案格式那麼多,既有SQL的,也有BAK的,還有TXT的等。資料庫種類也有很多,MySQL,Oracle,SQL server等,怎麼對這些資料庫進行管理?昨天泄露access格式的資料庫,今天泄露了excel格式的資料庫,明天又泄露了SQL格式的資料庫。要格式化那麼多種類的資料庫,壓力山大啊!搭建個本地的資料庫怎麼那麼複雜?
這裡就要說到kettle。首先得說說Pentaho這個企業。Pentaho主要致力於大資料的分析,整理和管理,並且這家公司開發出來的工具是開源的!沒錯,就是開源的。任何人都可以查看這個項目的原始碼,並且對其變更和研究。這家公司開發了很多管理工具或者架構,最為出名的就是kettle了。Kettle是一款國外開源的ETL工具,純java編寫,可以在Window、Linux、Unix上運行,資料幫浦高效穩定。ELT的全稱為Extraction, Transformation Loading,其中文解釋為提取,轉換和載入。Kettle這個工具裡面有SPOON,PAN,CHEF,Encr和KITCHEN這麼五個基本組建。
SPOON 允許你通過圖形介面來設計ETL轉換過程(Transformation)。
PAN 允許你批量運行由Spoon設計的ETL轉換 (例如使用一個時間調度器)。Pan是一個後台執行的程式,沒有圖形介面。
CHEF 允許你建立任務(Job)。 任務通過允許每個轉換,任務,指令碼等等,更有利於自動化更新資料倉儲的複雜工作。任務通過允許每個轉換,任務,指令碼等等。任務將會被檢查,看看是否正確地運行了。
KITCHEN 允許你大量使用由Chef設計的任務 (例如使用一個時間調度器)。KITCHEN也是一個後台啟動並執行程式。
Encr 此指令碼是用來加密串連資料庫密碼與叢集時使用的密碼
今天我們主要講的是SPOON,這裡會做一個基礎的講解,以便達到拋磚引玉的作用。
1.基本安裝
由於Kettle是由JAVA代碼所編寫的,所以大家要運行Kettle首先是下載安裝JDK並且設定好環境變數。Kettle的是“傳送門”。
下載完成後,你會得到一個RAR壓縮包,請對壓縮包進行解壓。
解壓完成後在檔案更目錄內,你可以看到幾個bat檔案和sh檔案,這裡就是kettle工具的開啟的方式。
這裡做個常識普及。
windows系統的使用者請用bat檔案開啟kettle
linux系統的使用者請用sh檔案開啟kettle
這裡主要說的是kettle spoon的一個基本講解。運行spoon.bat或者spoon.sh後等待幾秒鐘就可以看到kettle spoon的基本介面了。
2.基本建模新增作業
在開始對資料管理之前,我們需要建立一個作業。點擊檔案,建立中的作業選項,產生出一個作業。
在核心對象這裡,我們可以看到kettle spoon中非常主要的幾個準系統和模組。
資料輸入
資料庫的備份格式有很多,有bak,sql,txt,csv等等。這裡需要對這些檔案有一個基本的管理,這裡就扯到了資料庫輸入模組,我們得先把自己的輸入模組建立好。下面這張圖是kettle spoon上幾個輸入的基本模組。
這裡對輸入模組做個基本的操作教程,我們先來看看對Database Backup檔案怎麼進行輸入的。滑鼠左鍵單擊一個模組拖動到作業方框內就可以對這個模組進行編輯。
假設我要對一個txt格式的泄露資料庫進行入庫,那麼首先應該查看的是欄位的分隔字元和限定符。
然後拖動一個文字檔輸入模組到作業內。
雙擊這個模組對其進行設定。
然後點擊瀏覽,選擇要匯入的資料庫檔案,然後點擊增加。
通過已經知道了資料庫欄位的分隔字元,在內容處填寫好分隔字元。這裡除了分隔字元的設定還可以設定文本顯示格式,限定符等等。
然後就是擷取table表格。在這個設定內,你還可以對table表的表名進行編輯。
在設定完成後,我們需要預覽一下整個table表,查看自己的設定是否正確。
當然,這裡只是一個非常簡單的txt無加密備份的資料庫,KettleSpoon還提供Accesss,SQL,CSV等資料輸入格式,甚至還提供資料庫對資料庫輸入。比如你要把oracle資料庫中的資料輸入到mysql的資料庫中,你可能需要先把資料備份下來,整理好後在匯入到mysql資料庫中。但是在kettle spoon中,你可以直接在資料流中進行傳輸,直接省去了中間的這一步。在表輸入模組中可以使用這個功能。
資料加工
通過上面的步驟,已經成功的把資料輸入進來,但是我們還需要對資料進行整理。比如增加序列,增加欄位,資料加密等。這裡再繼續舉個例子。因為本機資料庫有海量的資料,所以就需要做資料索引。索引資料有個很關鍵的地方就是ID,每一條資料需要不同的ID進行索引,而且ID的值還不能是普通的int類型,必須是bigint類型。這裡需要對海量的資料進行一個規範的整理和加工。
假設我的資料庫中已經有199條資料了,我需要對新的每條資料重新做一個ID序列,ID起始值為200,每條資料之間的ID值增加兩個數字。雖然感覺很複雜,但是kettle spoon卻可以很輕易的解決這個問題。
從轉換處拖出一個增加序列模組到作業內,然後滑鼠左鍵單擊文字檔輸入模組,並且按住shift鍵不放,同時往任意方向上拖動滑鼠,這個時候你會看到一條線。把它連結到增加序列模組。
雙擊增加序列模組進入到設定介面,在值的名稱那裡設定欄位名稱為newid。因為ID的起始值是200,所以起始值設定成200。因為每條資料之間的ID增加兩個數字,所以增長根據這裡設定成2。最後點擊確定。
這樣一個增加序列的設定就完成了。當然這個例子只是一個非常簡單的功能,裡面有很多資料處理的功能等著大家一一嘗試。
資料輸出
資料輸入也有了,加工步驟也有了,那麼該對資料進行輸出了。在資料輸出的時候可能大家會對其有一些要求,比如我不想要某些欄位,或者我想設定資料的格式等。這裡kettle都可以協助到你。Kettle甚至提供了多種資料輸出的模組,大家可以查其輸出菜單。
這裡還是繼續舉一下剛才的例子。假設新的資料我只要剛才的新產生的ID,Usename和password欄位,其它的我都不要,並且資料要輸出到excel表格內,而且資料的字型是Arial,大小是10。
那麼我們可以先建立一個excel輸出模組,然後該模組需要與之前的增加序列模組進行串連。
隨後雙擊excel模組進行設定。在瀏覽那裡選擇excel的儲存路徑。
然後在格式這裡設定excel的字型格式等。
然後在欄位這裡先選擇擷取欄位,然後刪除不想要的欄位,並且對欄位進行排序。
然後點擊左上方的開始即可開始對資料的輸出
是整理後的資料。可以看到資料的ID從200開始,並且每條資料增加兩個數字。同時欄位要求和字型格式要求都已經達到。因為我自己的excel的設定問題,所有的數字後面都會有兩個小資料點,這個不影響。
總結
實際上剛才展示的只是一個非常基礎的kettle資料建模,還有更加複雜的,我給大家展示一下
多備份資料庫輸入到單一excel檔案內
多資料線上同步並且加密到異地伺服器內
單一檔案增加常量和序列並且同時同步到多個資料庫內
Kettle非常的強大,而這篇文章所說到的只是kettle spoon,還有pen,chef等。這篇文章主要是做一個拋磚引玉的作用,讓大家能夠瞭解並且初步使用kettle這個工具。kettle不只是可以做到基本的資料入庫和整理,你甚至還可以寫自己的資料管理模組,指令碼,並且運用在kittle內,比如資料匹配模組,資料分發模組等。
資料庫資料格式化之Kettle Spoon