中文字幕一区二区人妻电影,亚洲av无码一区二区乱子伦as ,亚洲精品无码永久在线观看,亚洲成aⅴ人片久青草影院按摩,亚洲黑人巨大videos

如何從Java運(yùn)行基于PDI的ETL

發(fā)布于:2021-01-07 16:36:13

0

546

0

java PDI ETL

有多種方法可以從Java運(yùn)行基于PDI的ETL。在本教程中,Dreamix的Veselin Davidov涵蓋了三種方法。

企業(yè)級(jí)BI解決方案由多個(gè)組件組成。您擁有報(bào)告工具,ETL流程,數(shù)據(jù)庫(kù)以及通常的某種Web門(mén)戶,所有這些都應(yīng)正確集成。ETL通常是一個(gè)計(jì)劃的過(guò)程,但是我們經(jīng)常希望允許業(yè)務(wù)用戶手動(dòng)啟動(dòng)它。實(shí)現(xiàn)此目標(biāo)的最佳方法是通過(guò)我們?cè)赪eb門(mén)戶中構(gòu)建的一些簡(jiǎn)單界面–這樣,他們無(wú)需了解其底層的基礎(chǔ)結(jié)構(gòu),并且我們可以處理用戶管理,訪問(wèn)等。 Java程序中的ETL,我將介紹其中的一些優(yōu)點(diǎn)和缺點(diǎn)。

最簡(jiǎn)單的方法–運(yùn)行外部流程

那將是最簡(jiǎn)單的方法,即使它看起來(lái)并不酷,但它仍然有效,這才是最重要的。它可以像這樣簡(jiǎn)單:

{xunruicms_img_title}

您可以通過(guò)運(yùn)行到單獨(dú)的線程中進(jìn)行擴(kuò)展,使其可配置,從而使其不依賴于平臺(tái),讀取輸出等。需要在運(yùn)行的計(jì)算機(jī)上安裝PDI。該方法的主要缺點(diǎn)是ETL在JVM內(nèi)部運(yùn)行,這可能會(huì)降低Web門(mén)戶的速度。如果滿足我的要求,我不介意使用該方法-例如,業(yè)務(wù)用戶需要運(yùn)行一些小的轉(zhuǎn)換,并且不需要太多時(shí)間和資源。

更酷的方法–使用PDI庫(kù)

Pentaho提供Java庫(kù),使我們能夠?qū)⒆鳂I(yè)和轉(zhuǎn)換直接集成并執(zhí)行到我們的Java代碼中。我將通過(guò)一個(gè)簡(jiǎn)單的示例進(jìn)行說(shuō)明,該示例使用maven獲取所需的庫(kù),然后執(zhí)行一個(gè)簡(jiǎn)單的作業(yè)。

  • 首先依賴

{xunruicms_img_title}

  • 然后我們可以從代碼中使用嵌入式水壺環(huán)境:

{xunruicms_img_title}

我之所以稱其為“很酷的方法”,是因?yàn)楦鶕?jù)我在一家定制軟件開(kāi)發(fā)公司中的工作經(jīng)驗(yàn),它使我們對(duì)作業(yè)的執(zhí)行有了更多的控制權(quán)。我們可以從存儲(chǔ)庫(kù)中讀取作業(yè),設(shè)置參數(shù),讀取輸出參數(shù),監(jiān)視日志等。它基本上是我們應(yīng)用程序中的嵌入式廚房。這里的可能性是無(wú)限的-我們甚至可以使用PDI轉(zhuǎn)換來(lái)處理應(yīng)用程序中的某些業(yè)務(wù)邏輯。上一個(gè)示例的缺點(diǎn)是執(zhí)行是在JVM內(nèi)部,如果這是我們的Web門(mén)戶,那么過(guò)多的負(fù)載可能會(huì)導(dǎo)致問(wèn)題。在這里,我們不需要在運(yùn)行的計(jì)算機(jī)中預(yù)先安裝PDI,但是這些庫(kù)將打包在應(yīng)用程序中,這將使可分發(fā)的文件更大。

將前兩種方法提升到另一個(gè)水平

這些方法的好處是它們駐留在我們的Java代碼中,這當(dāng)然意味著我們可以使用該代碼做任何我們想做的事情,并以我們需要的任何方式對(duì)其進(jìn)行擴(kuò)展。這是顯而易見(jiàn)的,但是我仍然想提及它,因?yàn)檫@使我們能夠輕松地解決問(wèn)題并避免缺點(diǎn)。因此,例如,我們?cè)谶@里看到的最大缺點(diǎn)是,這些操作是在JVM中執(zhí)行的,并且可以加載Web服務(wù)器。使用我們企業(yè)應(yīng)用程序的一些更好的體系結(jié)構(gòu),我們可以輕松地將該執(zhí)行轉(zhuǎn)移到JVM的另一個(gè)實(shí)例(另一個(gè)服務(wù)器)上,甚至可以將其負(fù)載均衡到其他服務(wù)器上。一個(gè)簡(jiǎn)單的解決方案是創(chuàng)建一個(gè)單獨(dú)的Web服務(wù),該服務(wù)執(zhí)行ETL并從Web門(mén)戶中調(diào)用該ETL。另一種方法是使用消息傳遞服務(wù)并創(chuàng)建使用上述某些方法執(zhí)行Jobs的偵聽(tīng)器。

{xunruicms_img_title}

企業(yè)方式–無(wú)需編寫(xiě)代碼

PDI帶有一個(gè)稱為Carte的工具,該工具基本上為pentaho服務(wù)器提供Web服務(wù)接口,使我們可以遠(yuǎn)程執(zhí)行作業(yè)。運(yùn)行它非常簡(jiǎn)單–在data-integration / pwd文件夾中,您具有服務(wù)器的一些基本配置XML,并且有很好的文檔說(shuō)明如何根據(jù)需要進(jìn)行配置。它還需要為作業(yè)設(shè)置存儲(chǔ)庫(kù)。一旦運(yùn)行,就可以通過(guò)簡(jiǎn)單的Web界面對(duì)其進(jìn)行訪問(wèn)。

{xunruicms_img_title}

此方法允許在服務(wù)器上遠(yuǎn)程執(zhí)行,因此不會(huì)遭受前兩種方法的主要缺點(diǎn)的困擾。如果您運(yùn)行耗時(shí)數(shù)小時(shí)的復(fù)雜ETL,并且需要在不同的計(jì)算機(jī)和服務(wù)器上運(yùn)行,那么應(yīng)該采用這種方法。

結(jié)論

從Java代碼執(zhí)行PDI作業(yè)有多種方法。我只講了三個(gè),但可能還有更多。對(duì)于企業(yè)應(yīng)用程序,大多數(shù)人應(yīng)該選擇企業(yè)方式,因?yàn)樗亲罱训?,而且一旦設(shè)置就可能最容易使用。它確實(shí)使基礎(chǔ)架構(gòu)更加復(fù)雜–您需要服務(wù)器,存儲(chǔ)庫(kù),其某些高級(jí)功能甚至需要PDI企業(yè)版。在某些情況下,其他兩種方法也可以正常工作,因此請(qǐng)為您的應(yīng)用選擇最佳方案!