任務背景
????? 在實際應用中,我們所使用的各個系統(tǒng)所用使用的數(shù)據(jù)庫是相互獨立的,比如,學生的圖書管理系統(tǒng)使用的是Oracle數(shù)據(jù)庫,學生課程管理系統(tǒng)所使用的MySQL數(shù)據(jù)庫,假如學校領導想要知道學生在對于自己所學習的課程的借書情況,這對于一般的系統(tǒng)就很難完成,因為通常一個系統(tǒng)只配置一種數(shù)據(jù)庫,這就很難滿足領導的需求。因此,本次任務的目的和意義在于,將存儲在不同數(shù)據(jù)庫的表根據(jù)某種關系建立連接,產(chǎn)生新的數(shù)據(jù)表,滿足實際應用的需求。例如,將圖書管理系統(tǒng)存儲在Oracle數(shù)據(jù)庫的[借書表] 和 學生課程管理系統(tǒng)存儲在MySQL數(shù)據(jù)庫中的[學生課程表] ,根據(jù)學生的學號建立連接,并分別在借書表和課程表選取所需的字段,建立一張新的表,來滿足實際應用需求。
知識背景
1.Oracle數(shù)據(jù)庫:是目前世界上流行的關系數(shù)據(jù)庫管理系統(tǒng),系統(tǒng)可移植性好、使用方便、功能強,適用于各類大、中、小、微機環(huán)境。本次任務中,使用的Oracle版本:11g。
2.MySQL數(shù)據(jù)庫:是一種開放源代碼的關系型數(shù)據(jù)庫管理系統(tǒng),大多數(shù)人都認為在不需要事務化處理的情況下,MySQL是管理內(nèi)容最好的選擇。本次任務中,使用的MySQL版本:5.6。
3.Kettle:一款國外開源的ETL工具,?中文名稱叫水壺,希望把各種數(shù)據(jù)放到一個壺里,然后以一種指定的格式流出。它允許你管理來自不同數(shù)據(jù)庫的數(shù)據(jù),通過提供一個圖形化的用戶環(huán)境來描述你想做什么,而不是你想怎么做。Kettle中有兩種腳本,transformation和job,transformation完成針對數(shù)據(jù)的基礎轉換,job則完成整個工作流的控制。本次任務中,主要使用transformation腳本,使用的Kettle版本是:7.0。
4. Carte: Kettle有多種運行模式,最簡單易用的是直接運行Kitchen/Pan應用程序來執(zhí)行job/transformations。Kettle自帶的Carte,是一個輕量級的web服務,允許遠程請求HTTP進行監(jiān)控、啟動、停止在Carte服務上運行的job和trans。運行Carte的服務器在kettle術語里稱為slave server。關于Carte實踐的例子:Carte實踐1,Carte實踐2
5. SpringBoot:是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進行配置,從而使開發(fā)人員不再需要定義樣板化的配置。其實就是簡單、快速、方便!關于SpringBoot的簡單案例:SpringBoot入門
6. DataTables:是一款jquery表格插件。它是一個高度靈活的工具,可以將任何HTML表格添加高級的交互功能。學習網(wǎng)址:DataTables官網(wǎng),Datatables中文網(wǎng)
任務分解
步驟一、建立一個虛擬的業(yè)務背景,發(fā)布幾項業(yè)務需求。
步驟二、根據(jù)業(yè)務背景,在Oracle和MySQL 上建立多張表。
步驟三、在Kettle上,新建轉換文件(transformation),設計一系列步驟,這能使得分別存儲在兩個數(shù)據(jù)庫中的兩張表,根據(jù)某種關系建立連接,通過字段選擇后,生成一張新表,并能在Kettle中預覽數(shù)據(jù)。然而,新生成的表不會存儲回到數(shù)據(jù)庫中。
步驟四、使用Kettle自帶的Carte,開啟一個web服務器,實現(xiàn)登錄web來觸發(fā)執(zhí)行某一任務。這樣,通過Carte,可以在網(wǎng)頁端看到步驟三中從轉換生成的數(shù)據(jù)(Json格式)。
步驟五、搭建基本的SpringBoot的基本框架,并能與Carte建立連接,獲取某項任務執(zhí)行后的數(shù)據(jù)。
步驟六、借助DataTables,在網(wǎng)頁端顯示從Carte服務器所獲得的數(shù)據(jù)。
步驟七、最終實現(xiàn):直接在網(wǎng)頁端提交任務(即轉換文件),以DataTables的形式,直觀看到執(zhí)行任務后的數(shù)據(jù)。