亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        客運(yùn)站數(shù)據(jù)遷移方法的研究

        2010-08-06 09:37:24程世民
        鐵路計(jì)算機(jī)應(yīng)用 2010年11期
        關(guān)鍵詞:客票武昌二次開發(fā)

        程世民

        ( 武漢大學(xué)經(jīng)濟(jì)與管理學(xué)院, 武漢430072 )

        鐵路客票系統(tǒng)已經(jīng)在全國鐵路聯(lián)網(wǎng)運(yùn)行了多年,圍繞客票系統(tǒng)這根主線,客運(yùn)站有時會針對客票營銷、經(jīng)營管理等方面進(jìn)行二次開發(fā),或者需要利用客票系統(tǒng)的一些基礎(chǔ)數(shù)據(jù)。為此,不同類型的數(shù)據(jù)庫之間的數(shù)據(jù)轉(zhuǎn)換就顯得尤其重要。鐵路客票系統(tǒng)后臺均采用Sybase Sqlserver數(shù)據(jù)庫,而基層客運(yùn)站使用的最多的是Microsoft SqlServer數(shù)據(jù)庫,為了快速地進(jìn)行兩庫之間的數(shù)據(jù)遷移而又不損失數(shù)據(jù)精度,武漢鐵路局武昌車站根據(jù)實(shí)際工作需要,研究出了一種利用前端開發(fā)工具(PowerBuilder)進(jìn)行數(shù)據(jù)有效遷移的方法。

        1 數(shù)據(jù)轉(zhuǎn)換概述

        數(shù)據(jù)轉(zhuǎn)換就是從一個數(shù)據(jù)存儲體導(dǎo)入或?qū)С鰯?shù)據(jù)到另一個數(shù)據(jù)存儲體中。對于SQL Server來說,轉(zhuǎn)換數(shù)據(jù)意味著將源數(shù)據(jù)存儲體中的數(shù)據(jù)輸入到SQL Server,或是從SQL Server輸出數(shù)據(jù)到目標(biāo)數(shù)據(jù)存儲體中。在這兩個過程中,可以對數(shù)據(jù)進(jìn)行變換,使其滿足簡單或復(fù)雜的輸入數(shù)據(jù)到目標(biāo)數(shù)據(jù)存儲體中之前所必須解決的問題。

        數(shù)據(jù)轉(zhuǎn)換執(zhí)行以下任務(wù):

        (1)向數(shù)據(jù)庫中加入數(shù)據(jù):輸入數(shù)據(jù)到數(shù)據(jù)庫中。

        (2)存檔:加載數(shù)據(jù)庫備份,一種特殊的數(shù)據(jù)輸出形式(數(shù)據(jù)庫和日志被拷貝)。

        (3)遷移數(shù)據(jù):改變數(shù)據(jù)表示,重構(gòu)數(shù)據(jù)。

        2 Microsoft SQL Server提供的用于數(shù)據(jù)轉(zhuǎn)換的方法

        以下的SQL Server工具、語句和實(shí)用程序提供數(shù)據(jù)轉(zhuǎn)換功能:

        (1)Transact-SQL語句INSERT和SELECT INTO。

        (2)用于數(shù)據(jù)存檔的工具和語句。

        (3)數(shù)據(jù)轉(zhuǎn)換服務(wù)(DTS)。

        (4)成批復(fù)制程序(Bcp)和BULK INSERT語句。

        INSERT語句用來向表中插入一行或多行。SELECT INTO語句用來創(chuàng)建新表并插入由查詢選定的行。以上兩個語句都有嚴(yán)格限制功能,只能用來插入(復(fù)制)少量的行。DTS的目的是在不同的數(shù)據(jù)存儲體之間進(jìn)行數(shù)據(jù)的輸出、輸入和轉(zhuǎn)換。這一工具支持同種和異種的數(shù)據(jù)存儲體,它包含數(shù)個組件,是進(jìn)行該類數(shù)據(jù)轉(zhuǎn)換的首選。Bcp(成批復(fù)制程序)是一個非常有用的實(shí)用程序,它可以從/向一個數(shù)據(jù)文件中復(fù)制SQL Server數(shù)據(jù)。因此,Bcp經(jīng)常被用來從一個關(guān)系數(shù)據(jù)庫管理系統(tǒng)(DBMS)向SQL Server數(shù)據(jù)庫中轉(zhuǎn)換大量的數(shù)據(jù)。

        3 Sybase SQL Server提供用于數(shù)據(jù)轉(zhuǎn)換方法

        武昌車站的系統(tǒng)配置為:HP UNIX,Sybase SQL Server12.0。提供的工具有:

        (1)Transact-SQL語句INSERT和SELECT INTO。

        (2)Isql實(shí)用程序。

        (3)Bcp實(shí)用程序。

        (4)安裝復(fù)制服務(wù)器。

        IsQL是Sybase SQL Server提供的一個非常實(shí)用的應(yīng)用程序,在與數(shù)據(jù)庫交互時非常方便,利用其-i和-o選項(xiàng),可以利用提前生成好的批處理.sql文件進(jìn)行批量傳輸數(shù)據(jù)。Sybase的復(fù)制服務(wù)器解決方法主要是為高速的、基于事務(wù)的復(fù)制設(shè)計(jì)的,用于監(jiān)視數(shù)據(jù)庫的事務(wù)日志,一旦一個事務(wù)日志被標(biāo)記,它就被提交給數(shù)據(jù)庫,利用該方法需要較高的專業(yè)知識,配置也較為困難。

        4 數(shù)據(jù)遷移實(shí)例

        在實(shí)際工作中,若單獨(dú)使用上述DBMS提供的數(shù)據(jù)轉(zhuǎn)換工具會有許多局限,而且要實(shí)現(xiàn)自動編程很困難,尤其是在異構(gòu)數(shù)據(jù)庫間實(shí)現(xiàn)自動復(fù)制數(shù)據(jù)很困難?,F(xiàn)以武昌車站為例介紹數(shù)據(jù)遷移的實(shí)例。武昌車站要根據(jù)客票系統(tǒng)中的售票銷售存根二次開發(fā)進(jìn)行月度售票員業(yè)績獎金掛鉤考核,根據(jù)車站制定的銷售策略(如不同季節(jié)的長短途銷售張數(shù),本局和外局銷售客票收入等)按收入萬元單價或銷售張數(shù)千張單價由系統(tǒng)自動計(jì)算完成。獎金考核系統(tǒng)需從客票系統(tǒng)Sybase SQL Server中遷移數(shù)據(jù)(基礎(chǔ)車次、??空颈砑霸露仁燮贝娓恚┑搅硪粋€Microsoft SQL Server系統(tǒng)中(車站根據(jù)售票存根進(jìn)行二次開發(fā)以便對每名售票員月度業(yè)績進(jìn)行考核和獎金掛鉤),應(yīng)用開發(fā)用到了客戶端數(shù)據(jù)庫開發(fā)工具PowerBuilder6.5,利用該工具提供的Data Pipe Object(數(shù)據(jù)管道對象)進(jìn)行編程、實(shí)現(xiàn)。

        4.1 任務(wù)

        從A系統(tǒng)(基于UNIX的Sybase SQL Server客票系統(tǒng))向B系統(tǒng)(基于Windows2000的Microsoft SQL Server的武昌車站信息服務(wù)系統(tǒng))復(fù)制A系統(tǒng)的實(shí)時應(yīng)用數(shù)據(jù)庫表(共700多張)。

        4.2 實(shí)現(xiàn)方法

        利用客戶端開發(fā)開具PowerBuilder提供的數(shù)據(jù)管道對象(Data PipeLine)在兩個數(shù)據(jù)源間建立連接、按規(guī)則建立管道對象和復(fù)制策略、設(shè)定相關(guān)參數(shù)屬性,形成最終應(yīng)用,進(jìn)行數(shù)據(jù)復(fù)制。經(jīng)測試,復(fù)制效率可達(dá)到:2 000行/s,比其它方法的效率高出很多。

        4.3 實(shí)現(xiàn)步驟

        (1)創(chuàng)建數(shù)據(jù)管道,統(tǒng)一用p_表名命名,以便以后用循環(huán)處理。創(chuàng)建時在MAX_ERROR處選擇NO_LIMIT,COMMIT ROWS選擇1000,并選中EXTEND ATTIBUTES,最重要的是若為第1次使用此應(yīng)用,可以在TABLE和Key處選用默認(rèn)值,在OPTIONS處選中Create-Add Table,這樣的話就可以在B系統(tǒng)中完全創(chuàng)建同A系統(tǒng)中的表(連帶擴(kuò)展屬性)。

        (2)在PowerBuilder的數(shù)據(jù)庫畫板中創(chuàng)建兩個數(shù)據(jù)源con_sourceA和con_sourceB,用以連接A系統(tǒng)和B系統(tǒng)。

        (3)創(chuàng)建DataPipe對象:p_pipe,設(shè)置3個文本屬性值:st_read,st_write,st_error,用以記載數(shù)據(jù)傳輸過程中讀、寫和出錯的行數(shù),實(shí)例化該對象:p_pipe i_p_pipe。

        (4)在PB中創(chuàng)建主界面,如圖1。需循環(huán)處理的表名數(shù)據(jù)窗口、出錯顯示的數(shù)據(jù)窗口、開始按鈕、退出按鈕和提示文本框等。

        圖1 PB中創(chuàng)建的主界面

        現(xiàn)將開始按鈕的主要部分腳本代碼列出如下:

        //實(shí)例化變量

        iPipe = create pipe_obj

        //初始化

        ……

        //連接源數(shù)據(jù)庫SQLCA

        //連接目的數(shù)據(jù)庫SQLCB

        iPipeReturn = iPipe.Start(SQLCA,SQLCB,dw_error)

        IF iPipeReturn <> 1 THEN

        GOTO Label_Error

        END IF

        ……

        //正常復(fù)制完表后,進(jìn)行一些善后處理(斷開數(shù)據(jù)庫、變量復(fù)位等)

        st_1.TEXT = "復(fù)制表:"+sTable-Name+"完成!"

        (5)編譯形成最終應(yīng)用。

        4.4 本應(yīng)用的優(yōu)點(diǎn)

        (1)可方便地在不同的DBMS之間復(fù)制數(shù)據(jù)且不改變源DBMS中的表的各項(xiàng)屬性。

        (2) 可靈活地添加需復(fù)制的表,可靈活地選擇復(fù)制方式(Create<創(chuàng)建方式>或Refresh:Delete/Insert<刷新方式>)。

        (3) 靈活地容錯及設(shè)置事務(wù)的功能。

        4.5 本應(yīng)用的擴(kuò)展

        在實(shí)際工作中還遇到若B系統(tǒng)與A系統(tǒng)除了DBMS不同外,且IP不在同一個網(wǎng)段該怎么樣實(shí)現(xiàn)DBMS之間的數(shù)據(jù)轉(zhuǎn)換呢?比如:

        A:客票應(yīng)用主系統(tǒng)→Unix,Sybase

        B:武昌車站客運(yùn)服務(wù)信息系統(tǒng)→Win2000,Sqlserver

        C:武昌車站網(wǎng)站系統(tǒng)→Win2000,Sqlserver(與A、B不同網(wǎng)段)

        若需從A→C遷移數(shù)據(jù),此時可以:

        (1) 建立應(yīng)用,先用B做中間代理,先對B復(fù)制數(shù)據(jù)。

        (2) 利用前面提到的快速復(fù)制工具Bcp,在B中將數(shù)據(jù)形成本地硬盤文件。

        (3) 用ftp將B中的本地硬盤文件數(shù)據(jù)打包上傳至C系統(tǒng)。

        (4) 對包展開。

        (5) 再次利用Bcp將展開后的硬盤文件復(fù)制到C系統(tǒng)中的DBMS中,此時Bcp的命令行參數(shù)要用in。

        5 結(jié)束語

        客運(yùn)站還有許多方面需要用到數(shù)據(jù)遷移,隨著客票系統(tǒng)自身的發(fā)展和完善,圍繞客票系統(tǒng)的二次開發(fā)應(yīng)用也會越來越豐富。

        數(shù)據(jù)遷移還涉及到數(shù)據(jù)格式、數(shù)據(jù)存儲、數(shù)據(jù)精度等多個方面,在上述方法的基礎(chǔ)上如何將本系統(tǒng)繼續(xù)擴(kuò)展至XML、WebService等還需要做進(jìn)一步地研究和細(xì)化。

        [1] 中華人民共和國鐵道部.鐵路旅客運(yùn)輸規(guī)程[S] . 北京:中國鐵道出版社,2007.

        [2] 孫玫肖. 售票應(yīng)用中的常見問題及解決方法[J] . 鐵路計(jì)算機(jī)應(yīng)用,2002,11(7).

        猜你喜歡
        客票武昌二次開發(fā)
        淺談哈爾濱局集團(tuán)公司客票電子化通道強(qiáng)化與流量監(jiān)測
        武昌理工學(xué)院室內(nèi)設(shè)計(jì)作品選登
        王亞南與武昌中華大學(xué)
        淺談基于Revit平臺的二次開發(fā)
        甘肅科技(2020年20期)2020-04-13 00:30:02
        中國鐵路客票在跨境客運(yùn)中的互通方案
        淺談Mastercam后處理器的二次開發(fā)
        模具制造(2019年3期)2019-06-06 02:11:02
        夜登武昌封建亭(外二首)
        岷峨詩稿(2019年4期)2019-04-20 09:02:10
        西門子Easy Screen對倒棱機(jī)床界面二次開發(fā)
        童迷黑白秀
        童話世界(2017年34期)2017-12-04 09:09:48
        航空公司客票直銷的現(xiàn)狀與分析
        中國市場(2016年45期)2016-05-17 05:15:40
        97精品一区二区视频在线观看| 日本免费a一区二区三区| 熟女免费视频一区二区| 国产精品天干天干| 1000部夫妻午夜免费| 婷婷激情六月| 亚洲精品国产熟女久久久| 97se色综合一区二区二区| 无码人妻精品一区二区三区下载| 国产欧美日韩综合一区二区三区| 久久本道久久综合一人| 亚洲av精二区三区日韩| 国产亚洲精品aaaa片小说| 亚洲AV无码秘 蜜桃1区| 白白色青青草视频免费观看| а天堂中文地址在线| 免费国产裸体美女视频全黄| 97在线视频免费| 情头一男一女高冷男女| 久久精品中文字幕| 男人边吻奶边挵进去视频| 九九久久精品大片| 九七青青草视频在线观看| 欧美人牲交| 日韩手机在线免费视频| 青青自拍视频成人免费观看| 中国国产不卡视频在线观看| 亚洲aⅴ在线无码播放毛片一线天| 国产成人免费一区二区三区| 国产日本精品一区二区| 少妇高潮太爽了在线视频| 夜爽8888视频在线观看| 亚洲中文字幕不卡无码| 亚洲国产丝袜久久久精品一区二区| 我把护士日出水了视频90分钟| 精品五月天| 中文字幕日本五十路熟女| 吃奶摸下高潮60分钟免费视频| 内射交换多p国产| 国产人成在线免费视频| 国产精品毛片无遮挡高清|