<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    wuxiren123

    集團(tuán)公司(嵌入ETL工具)財(cái)務(wù)報(bào)表系統(tǒng)解決方案

    集團(tuán)公司(嵌入ETL工具)財(cái)務(wù)報(bào)表系統(tǒng)解決方案

                                           

    一、項(xiàng)目背景:

    某集團(tuán)公司是一家擁有100多家子公司的大型集團(tuán)公司,旗下子公司涉及各行各業(yè),包括:金礦、銅礦、房產(chǎn)、化纖等。由于子公司在業(yè)務(wù)上的差異,子公司的財(cái)務(wù)報(bào)表也存在很多不同之處。因此,各個(gè)子公司需要根據(jù)自己的情況,制作符合自己個(gè)性化需求的報(bào)表模版,然后再部署到集團(tuán)服務(wù)器進(jìn)行統(tǒng)一管理。

    集團(tuán)使用的是SAP,所有子公司正是因這個(gè)系統(tǒng)而產(chǎn)生大量數(shù)據(jù)且這些數(shù)據(jù)保存在一起。此外,各子公司也有一些自己的系統(tǒng),所以各自也會(huì)產(chǎn)生一些數(shù)據(jù)。

    出于數(shù)據(jù)安全等因素的考慮,各個(gè)子公司的數(shù)據(jù)統(tǒng)一集中在集團(tuán)總部的數(shù)據(jù)庫(kù)。子公司的報(bào)表開(kāi)發(fā)人員使用FineReport連接到總部數(shù)據(jù)庫(kù)時(shí),只能看到自己權(quán)限內(nèi)的數(shù)據(jù)

    二、項(xiàng)目建設(shè)目標(biāo):

    定期的將總數(shù)據(jù)源中數(shù)據(jù)導(dǎo)入到各子公司內(nèi)的數(shù)據(jù)庫(kù)表中,此時(shí)各子公司在開(kāi)發(fā)報(bào)表時(shí)就只需連自己的數(shù)據(jù)庫(kù)表即可,這樣就實(shí)現(xiàn)了數(shù)據(jù)權(quán)限的控制,同時(shí)也較好的將各子公司的數(shù)據(jù)放在各子公司的數(shù)據(jù)庫(kù)表內(nèi)。

     

    三、項(xiàng)目建設(shè)方案:

    1. 所用工具Kettle簡(jiǎn)介

    Kettle是一款國(guó)外開(kāi)源的ETL工具,純java編寫(xiě),可以在Window、Linux、Unix上運(yùn)行,綠色無(wú)需安裝,數(shù)據(jù)抽取高效穩(wěn)定。

    ETL即數(shù)據(jù)抽取、轉(zhuǎn)換、裝載的過(guò)程。它是構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)的重要環(huán)節(jié)。數(shù)據(jù)倉(cāng)庫(kù)是面向主題的、集成的、穩(wěn)定的且隨時(shí)間不斷變化的數(shù)據(jù)集合用以支持經(jīng)營(yíng)管理中的決策制定過(guò)程。Kettle 的中文名稱叫水壺,含義就是希望把各種數(shù)據(jù)放到一個(gè)壺里,然后以一種指定的格式流出。

    Kettle這個(gè)ETL工具集,它允許你管理來(lái)自不同數(shù)據(jù)庫(kù)的數(shù)據(jù),通過(guò)提供一個(gè)圖形化的用戶環(huán)境來(lái)描述你想做什么,而不是你想怎么做。

    Kettle中有兩種腳本文件,transformation和job,transformation完成針對(duì)數(shù)據(jù)的基礎(chǔ)轉(zhuǎn)換,job則完成整個(gè)工作流的控制。 

      作為Pentaho的一個(gè)重要組成部分,現(xiàn)在在國(guó)內(nèi)項(xiàng)目應(yīng)用上逐漸增多。FineReport報(bào)表軟件可以實(shí)現(xiàn)和Kettle工具的完美集成應(yīng)用。

    2. Kettle工具的優(yōu)勢(shì):

    (1)kettle開(kāi)源、高效

    (2)kettle 非常強(qiáng)大而且易于使用的設(shè)計(jì)界面 

    (3)有非常強(qiáng)大而且眾多的使用群體,應(yīng)用廣泛 

    (4)可用java進(jìn)行集成開(kāi)發(fā): 

    提供了基于JAVA的腳步編寫(xiě)功能,可以靈活地自定義ETL過(guò)程,使自行定制、批量處理等成為可能,這才是一個(gè)程序員需要做的工作,而不僅是象使用Word一樣操作kettle用戶界面。

    3. Kettle工具工作原理:

    (1)Kettle的四大模塊:



      

    Spoon 是一個(gè)圖形用戶界面,它允許你運(yùn)行轉(zhuǎn)換或者任務(wù),其中轉(zhuǎn)換是用Pan工具來(lái)運(yùn)行,任務(wù)是用Kitchen來(lái)運(yùn)行。Pan是一個(gè)數(shù)據(jù)轉(zhuǎn)換引擎,它可以執(zhí)行很多功能,例如:從不同的數(shù)據(jù)源讀取、操作和寫(xiě)入數(shù)據(jù)。Kitchen 是一個(gè)可以運(yùn)行利用XML 或數(shù)據(jù)資源庫(kù)描述的任務(wù)。通常任務(wù)是在規(guī)定的時(shí)間間隔內(nèi)用批處理的模式自動(dòng)運(yùn)行。

    以下是一個(gè)簡(jiǎn)單的ETL過(guò)程:



      

    (2)原理總結(jié):

    Kettle實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)換,主要是通過(guò)JDBC驅(qū)動(dòng),建立連接,加載數(shù)據(jù),轉(zhuǎn)化數(shù)據(jù)并儲(chǔ)存數(shù)據(jù)。

    4. 利用kettle實(shí)現(xiàn)定時(shí)導(dǎo)出數(shù)據(jù)方案

         實(shí)現(xiàn)定時(shí)導(dǎo)出數(shù)據(jù),主要實(shí)現(xiàn)二個(gè)關(guān)建點(diǎn):

         1.定時(shí)功能

         2.從源數(shù)據(jù)庫(kù)中提取數(shù)據(jù)插入目標(biāo)數(shù)據(jù)庫(kù)

          利用 kettle工具可以輕松實(shí)現(xiàn)以上二點(diǎn)。

          1.定時(shí)功能:

            Kettle是成熟專業(yè)的ETL工具,實(shí)現(xiàn)定時(shí)功能只需對(duì)作業(yè)進(jìn)行相應(yīng)的設(shè)置即可,如下所示,表示每天的12點(diǎn)整執(zhí)行同步任務(wù)。



      

      

           2.從源數(shù)據(jù)庫(kù)中提取數(shù)據(jù)插入目標(biāo)數(shù)據(jù)庫(kù)

          Kettle只需簡(jiǎn)單配置即可從數(shù)據(jù)庫(kù)中取出數(shù)據(jù),如下圖所示。

        

     

       其中${company}為公司變量名稱,存入目標(biāo)數(shù)據(jù)庫(kù)也類似,只需要簡(jiǎn)單配置即可

    詳細(xì)使用配置見(jiàn)下面的實(shí)例。

    5. Kettle工具的定時(shí)數(shù)據(jù)提取應(yīng)用實(shí)例:

    (1)實(shí)例功能:

    定期對(duì)各個(gè)子公司的數(shù)據(jù)庫(kù)表進(jìn)行查詢并且通過(guò)數(shù)據(jù)抽取和比較實(shí)現(xiàn)數(shù)據(jù)插入更新。

    (2)實(shí)例分析:

    實(shí)現(xiàn)整項(xiàng)作業(yè)共需要3個(gè)文件,名稱和對(duì)應(yīng)功能如下表所示:

    文件名稱

    實(shí)現(xiàn)功能

    main.kjb

    作業(yè)文件,用來(lái)定時(shí)執(zhí)行mainTrans.ktr

    mainTrans.ktr

    用來(lái)批量執(zhí)行trans1.ktr,并提供trans1.ktr的變量

    trans1.ktr

    根據(jù)mainTrans.ktr提供的變量具體執(zhí)行導(dǎo)出的轉(zhuǎn)化

    (1)文件詳細(xì)說(shuō)明:

    mainTrans.ktr:

    在mainTrans.ktr中生成不同的數(shù)據(jù)庫(kù)連接信息和其他變量信息。

    示例中為手動(dòng)輸入數(shù)據(jù),也可以把信息保存在文本中或者數(shù)據(jù)庫(kù)中,設(shè)置對(duì)應(yīng)的輸入即可。如下所示,table為子公司數(shù)據(jù)庫(kù)中的表名,company對(duì)應(yīng)公司,后面的值為子公司數(shù)據(jù)庫(kù)的連接信息。



      

    mainTrans.ktr中有個(gè)java腳本,具體行為為獲取trans1.ktr文件,設(shè)置變量并執(zhí)行。

    上面有幾條記錄就會(huì)執(zhí)行幾次trans1.ktr。

    trans1.ktr:

    具體執(zhí)行導(dǎo)出的文件,示例中為mysql數(shù)據(jù)庫(kù),表名和字段也是特別設(shè)置的,請(qǐng)根據(jù)自己的環(huán)境進(jìn)行相應(yīng)的修改。

    表輸入:

    表輸入按照需要導(dǎo)出的總數(shù)據(jù)庫(kù)信息配置好,sql示例語(yǔ)句為:

        SELECT * FROM kettletb WHERE company='${company}'

        表示為只選出對(duì)應(yīng)子公司的數(shù)據(jù),其中${company}為傳入進(jìn)來(lái)的公司名。

    具體配置頁(yè)面如下圖:



      

    表輸出:

    這里的配置需要根據(jù)變量來(lái)設(shè)置,目標(biāo)表為${table}來(lái)獲取要導(dǎo)出的表名。其他配置如下所示,其中的值對(duì)應(yīng)mainTrans.ktr中生成的數(shù)據(jù)(其中Password為${password}):



      

    插入更新:

    示例中對(duì)數(shù)據(jù)庫(kù)表中的id和name字段進(jìn)行查詢,通過(guò)對(duì)id的比較來(lái)篩選掉原本數(shù)據(jù)庫(kù)表里就用的數(shù)據(jù),這樣的話只需要插入最新更改的數(shù)據(jù)即可,大大提高了數(shù)據(jù)轉(zhuǎn)換的效率。



      

    設(shè)置main.kjb的定時(shí)時(shí)間,運(yùn)行即可。設(shè)置頁(yè)面參考如下圖:



      

     

     

     

    售后服務(wù)體系:



      

    posted on 2016-01-05 14:17 喝水居然長(zhǎng)肉 閱讀(244) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲春黄在线观看| 精品国产_亚洲人成在线| 免费在线看v网址| 亚洲AV无码男人的天堂| 亚洲一区二区三区无码影院| 久久午夜羞羞影院免费观看| 亚洲一区精彩视频| 伊人久久综在合线亚洲91| 国产精品视频免费观看| 黄色网址免费在线| 亚洲视频在线一区| 日本免费人成黄页在线观看视频| 中文字幕不卡免费视频| 国产精品高清视亚洲精品| 亚洲精品国自产拍在线观看| 最近2019中文字幕免费大全5| 看亚洲a级一级毛片| 久久91亚洲人成电影网站| 久久久www成人免费毛片 | 成人精品综合免费视频| 精品国产无限资源免费观看| 国产亚洲av人片在线观看| 美女露100%胸无遮挡免费观看| 久久久久亚洲av无码尤物| 国产在线观看免费不卡| 4444www免费看| 一区二区三区免费精品视频| 亚洲入口无毒网址你懂的| 久久九九亚洲精品| 宅男666在线永久免费观看| 99精品免费观看| 中国一级特黄高清免费的大片中国一级黄色片 | 亚洲综合自拍成人| 亚洲国产专区一区| 我要看免费的毛片| 久草免费福利资源站| 一区二区三区免费在线视频 | 亚洲一区二区三区AV无码| 白白国产永久免费视频| 亚洲高清中文字幕免费| 黄网站免费在线观看|