<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)航:
     
    主站蜘蛛池模板: 永久免费观看的毛片的网站| 国产精品爱啪在线线免费观看| 精品亚洲综合久久中文字幕| 亚洲日韩在线中文字幕综合 | 亚洲人成人网站色www| 四虎影视久久久免费| 国产aa免费视频| 美女被爆羞羞网站免费| 啊v在线免费观看| 成人午夜免费视频| 亚洲综合亚洲综合网成人| 一区视频免费观看| 国产成人亚洲精品狼色在线| 好男人资源在线WWW免费| 怡红院亚洲怡红院首页| 国产成人AV片无码免费| 国产午夜影视大全免费观看| 亚洲国产成人久久一区二区三区| 日本免费网站观看| 免费无码专区毛片高潮喷水| 久久久久一级精品亚洲国产成人综合AV区| 一区二区三区免费视频网站| 国产成人A人亚洲精品无码| 99视频免费播放| 亚洲AV日韩综合一区尤物| 四虎在线播放免费永久视频| 一级毛片**免费看试看20分钟 | 美女黄频a美女大全免费皮| 亚洲福利精品电影在线观看| 十八禁视频在线观看免费无码无遮挡骂过 | 久久精品国产亚洲夜色AV网站| 久久永久免费人妻精品下载| 亚洲日韩国产精品乱-久| 亚洲国产精品尤物yw在线| 日本在线免费播放| 亚洲精品无码高潮喷水A片软| 亚洲人成电影在线播放| 99视频有精品视频免费观看| 亚洲国产成人精品无码区花野真一 | 一二三四在线播放免费观看中文版视频| 最新国产AV无码专区亚洲|