任務(wù)背景
????? 在實(shí)際應(yīng)用中傀蓉,我們所使用的各個(gè)系統(tǒng)所用使用的數(shù)據(jù)庫是相互獨(dú)立的盯漂,比如,學(xué)生的圖書管理系統(tǒng)使用的是Oracle數(shù)據(jù)庫植影,學(xué)生課程管理系統(tǒng)所使用的MySQL數(shù)據(jù)庫丰涉,假如學(xué)校領(lǐng)導(dǎo)想要知道學(xué)生在對于自己所學(xué)習(xí)的課程的借書情況拓巧,這對于一般的系統(tǒng)就很難完成,因?yàn)橥ǔR粋€(gè)系統(tǒng)只配置一種數(shù)據(jù)庫一死,這就很難滿足領(lǐng)導(dǎo)的需求肛度。因此,本次任務(wù)的目的和意義在于投慈,將存儲在不同數(shù)據(jù)庫的表根據(jù)某種關(guān)系建立連接承耿,產(chǎn)生新的數(shù)據(jù)表,滿足實(shí)際應(yīng)用的需求伪煤。例如加袋,將圖書管理系統(tǒng)存儲在Oracle數(shù)據(jù)庫的[借書表] 和 學(xué)生課程管理系統(tǒng)存儲在MySQL數(shù)據(jù)庫中的[學(xué)生課程表] ,根據(jù)學(xué)生的學(xué)號建立連接抱既,并分別在借書表和課程表選取所需的字段职烧,建立一張新的表,來滿足實(shí)際應(yīng)用需求。
知識背景
1.Oracle數(shù)據(jù)庫:是目前世界上流行的關(guān)系數(shù)據(jù)庫管理系統(tǒng)阳堕,系統(tǒng)可移植性好跋理、使用方便、功能強(qiáng)恬总,適用于各類大、中肚邢、小壹堰、微機(jī)環(huán)境。本次任務(wù)中骡湖,使用的Oracle版本:11g贱纠。
2.MySQL數(shù)據(jù)庫:是一種開放源代碼的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),大多數(shù)人都認(rèn)為在不需要事務(wù)化處理的情況下响蕴,MySQL是管理內(nèi)容最好的選擇谆焊。本次任務(wù)中,使用的MySQL版本:5.6浦夷。
3.Kettle:一款國外開源的ETL工具辖试,?中文名稱叫水壺,希望把各種數(shù)據(jù)放到一個(gè)壺里劈狐,然后以一種指定的格式流出罐孝。它允許你管理來自不同數(shù)據(jù)庫的數(shù)據(jù),通過提供一個(gè)圖形化的用戶環(huán)境來描述你想做什么肥缔,而不是你想怎么做莲兢。Kettle中有兩種腳本,transformation和job续膳,transformation完成針對數(shù)據(jù)的基礎(chǔ)轉(zhuǎn)換改艇,job則完成整個(gè)工作流的控制。本次任務(wù)中坟岔,主要使用transformation腳本谒兄,使用的Kettle版本是:7.0。
4. Carte: Kettle有多種運(yùn)行模式炮车,最簡單易用的是直接運(yùn)行Kitchen/Pan應(yīng)用程序來執(zhí)行job/transformations舵变。Kettle自帶的Carte,是一個(gè)輕量級的web服務(wù)瘦穆,允許遠(yuǎn)程請求HTTP進(jìn)行監(jiān)控纪隙、啟動、停止在Carte服務(wù)上運(yùn)行的job和trans扛或。運(yùn)行Carte的服務(wù)器在kettle術(shù)語里稱為slave server绵咱。關(guān)于Carte實(shí)踐的例子:Carte實(shí)踐1,Carte實(shí)踐2
5. SpringBoot:是由Pivotal團(tuán)隊(duì)提供的全新框架熙兔,其設(shè)計(jì)目的是用來簡化新Spring應(yīng)用的初始搭建以及開發(fā)過程悲伶。該框架使用了特定的方式來進(jìn)行配置艾恼,從而使開發(fā)人員不再需要定義樣板化的配置。其實(shí)就是簡單麸锉、快速钠绍、方便!關(guān)于SpringBoot的簡單案例:SpringBoot入門
6. DataTables:是一款jquery表格插件花沉。它是一個(gè)高度靈活的工具柳爽,可以將任何HTML表格添加高級的交互功能。學(xué)習(xí)網(wǎng)址:DataTables官網(wǎng)碱屁,Datatables中文網(wǎng)
任務(wù)分解
步驟一磷脯、建立一個(gè)虛擬的業(yè)務(wù)背景,發(fā)布幾項(xiàng)業(yè)務(wù)需求娩脾。
步驟二赵誓、根據(jù)業(yè)務(wù)背景,在Oracle和MySQL 上建立多張表柿赊。
步驟三俩功、在Kettle上,新建轉(zhuǎn)換文件(transformation)闹瞧,設(shè)計(jì)一系列步驟绑雄,這能使得分別存儲在兩個(gè)數(shù)據(jù)庫中的兩張表,根據(jù)某種關(guān)系建立連接奥邮,通過字段選擇后万牺,生成一張新表,并能在Kettle中預(yù)覽數(shù)據(jù)洽腺。然而脚粟,新生成的表不會存儲回到數(shù)據(jù)庫中。
步驟四蘸朋、使用Kettle自帶的Carte核无,開啟一個(gè)web服務(wù)器,實(shí)現(xiàn)登錄web來觸發(fā)執(zhí)行某一任務(wù)藕坯。這樣团南,通過Carte,可以在網(wǎng)頁端看到步驟三中從轉(zhuǎn)換生成的數(shù)據(jù)(Json格式)炼彪。
步驟五吐根、搭建基本的SpringBoot的基本框架,并能與Carte建立連接辐马,獲取某項(xiàng)任務(wù)執(zhí)行后的數(shù)據(jù)拷橘。
步驟六、借助DataTables,在網(wǎng)頁端顯示從Carte服務(wù)器所獲得的數(shù)據(jù)冗疮。
步驟七萄唇、最終實(shí)現(xiàn):直接在網(wǎng)頁端提交任務(wù)(即轉(zhuǎn)換文件),以DataTables的形式术幔,直觀看到執(zhí)行任務(wù)后的數(shù)據(jù)另萤。