亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

從遠程數(shù)據(jù)源加載數(shù)據(jù)的制作方法

文檔序號:6354745閱讀:147來源:國知局
專利名稱:從遠程數(shù)據(jù)源加載數(shù)據(jù)的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般涉及數(shù)據(jù)庫管理系統(tǒng),以及,尤其是在基于計算機的數(shù)據(jù)庫管理系統(tǒng)內(nèi),用于將駐留在一個數(shù)據(jù)源的持續(xù)數(shù)據(jù)卸載、傳送并加載到遠程數(shù)據(jù)源,而不被源或目標(biāo)的文件傳輸系統(tǒng)的物理約束所限制的機制。
背景技術(shù)
電子商務(wù)的日益普及已經(jīng)促使許多公司求助于應(yīng)用程序服務(wù)器來有效地部署和管理它們的應(yīng)用程序。非常普遍地,這些應(yīng)用程序服務(wù)器配置成與一個用于數(shù)據(jù)存儲和檢索的數(shù)據(jù)庫管理系統(tǒng)(DBMS)接口。這通常意味著新的應(yīng)用程序必須在分布式數(shù)據(jù)環(huán)境下工作。結(jié)果,應(yīng)用程序開發(fā)者往往發(fā)現(xiàn),他們對哪個DBMS產(chǎn)品將被用來支持他們的應(yīng)用程序或如何設(shè)計數(shù)據(jù)庫只有很少的或沒有控制權(quán)。在許多情況下,開發(fā)者發(fā)現(xiàn)他們的應(yīng)用程序重要的數(shù)據(jù)擴散到了由不同軟件廠商開發(fā)的多個DBMS。
通常希望從一個數(shù)據(jù)源卸載/提取/導(dǎo)出數(shù)據(jù),將它輸送到目標(biāo)端(target site),并且加載/導(dǎo)入數(shù)據(jù)到目標(biāo)端數(shù)據(jù)存儲庫,而不被在源端(source site)或目標(biāo)端的文件傳輸系統(tǒng)的物理約束所限制。也希望目標(biāo)記錄的加載可以在源記錄卸載的同時實現(xiàn)。如果數(shù)據(jù)是逐個記錄地輸送,這就可以實現(xiàn),那樣發(fā)送一個記錄和接收另一個記錄的操作在源端和目標(biāo)端同時進行。
然而,目前還沒有這種能力。數(shù)據(jù)被卸載到一個文件、整個該文件被傳送、然后數(shù)據(jù)加載到目標(biāo)端。文件中的數(shù)據(jù)傳輸通常使用文件傳輸程序(FTP)執(zhí)行。令人遺憾的是,公司使用FTP用于DBMS應(yīng)用程序可能會遇到一些障礙。通常需要關(guān)注的是,源端和目標(biāo)端文件格式可能不兼容。此外,傳送的數(shù)據(jù)量可能超過了目標(biāo)端操作系統(tǒng)文件的最大大小。而且,如果設(shè)計需求要求從屬性必須跨越多個DBMS的數(shù)據(jù)庫表中傳輸記錄數(shù)據(jù),則目前并不支持,因為目前來自多個數(shù)據(jù)源的記錄數(shù)據(jù)在傳送時不能被連接起來。此外,希望使用多種主導(dǎo)信息技術(shù)廠商支持的不同數(shù)據(jù)庫產(chǎn)品,因為它們提供了許多潛在的商業(yè)利益,比如增強的便攜性和高度的代碼重用。令人遺憾的是,當(dāng)前的DBMS廠商不支持在數(shù)據(jù)記錄被傳送時,逐個記錄地的數(shù)據(jù)傳送模式,或來自多數(shù)據(jù)源的數(shù)據(jù)連接。
因此,開發(fā)者被迫轉(zhuǎn)向更復(fù)雜(且潛在不方便)的其它可供選擇的方法來獲得對所需數(shù)據(jù)記錄的訪問。其它方法的實現(xiàn)通常代價高且耗時,這需要一個更復(fù)雜的編程技巧集來實現(xiàn)DBMS技術(shù),其執(zhí)行消耗了附加的機器資源,可能增加開發(fā)和測試的勞動力需求,并潛在地禁止了數(shù)據(jù)本身的便攜性。
當(dāng)應(yīng)用程序開發(fā)者需要構(gòu)造一個訪問和傳輸在多個數(shù)據(jù)源中出現(xiàn)的重要數(shù)據(jù)的應(yīng)用程序時,一種目前可用的解決問題的方法包括人工模擬的透明接入。在這種情況下,程序員擔(dān)負了編寫個別地連接到每個必要的數(shù)據(jù)源、讀入任何必要的數(shù)據(jù)、關(guān)聯(lián)(或連接)從多個數(shù)據(jù)源讀入的結(jié)果、執(zhí)行任何必要的數(shù)據(jù)翻譯等的軟件的責(zé)任。這實際上有大量的工作,并大大超出了許多程序員的技術(shù)水平。而且導(dǎo)致了巨大的成本。另外,還需要相當(dāng)多關(guān)于所涉及的每個數(shù)據(jù)源的應(yīng)用編程接口(API)的知識,并提供較少的進行查詢優(yōu)化的機會,這可能會抑制性能。
另一種目前可用來解決這個問題的方法需要數(shù)據(jù)的物理合并,其中來自不同數(shù)據(jù)源的數(shù)據(jù)必須拷貝到單一的數(shù)據(jù)源中,隨后程序員將傳送該數(shù)據(jù)源。然而,這增加了包括數(shù)據(jù)等待時間和額外開銷的問題。由于數(shù)據(jù)等待時間,數(shù)據(jù)的副本將從略微到嚴重地“老”于原始數(shù)據(jù)源包含的數(shù)據(jù)。采用過時的(且潛在不精確的)數(shù)據(jù)工作對許多應(yīng)用程序可能是不能接受的。增加的開銷包括軟件開銷,這是因為必須購買、安裝、配置和維護附加軟件,以根據(jù)進度表或周期性原則從一個源到另一個源拷貝數(shù)據(jù),同時還包含人力開銷。該軟件必須支持數(shù)據(jù)遷移工作或?qū)崿F(xiàn)支持很低數(shù)據(jù)等待時間的數(shù)據(jù)復(fù)制過程。
因此,有必要提供一種能夠逐個記錄地,將通常駐留在多個數(shù)據(jù)源并可能以不同的格式存儲的持續(xù)數(shù)據(jù)傳送到目標(biāo)端倉庫的方法和系統(tǒng)。這將簡化應(yīng)用程序的設(shè)計、開發(fā)和維護,并提供更可靠的、具有否則將不能訪問的功能的應(yīng)用程序。

發(fā)明內(nèi)容
本發(fā)明上述及其它目標(biāo),特征和優(yōu)勢,由下面參考幾幅插圖對優(yōu)選實施例的詳細描述中將變得明顯。
本發(fā)明的一個優(yōu)選實施例是在一個通過數(shù)據(jù)庫連接通信線路連接源端和目標(biāo)端的計算機系統(tǒng)網(wǎng)絡(luò)中,從遠程數(shù)據(jù)源逐個記錄地加載數(shù)據(jù)的方法。源端擁有至少一個數(shù)據(jù)源和一個具有訪問DBMS的多數(shù)據(jù)庫訪問的軟件服務(wù)器。目標(biāo)端通過一組結(jié)構(gòu)化查詢語言(SQL)語句或其等價物請求從源端加載數(shù)據(jù)。根據(jù)多數(shù)據(jù)庫訪問通信協(xié)議,數(shù)據(jù)通過數(shù)據(jù)庫連接通信線路逐個記錄地輸送,其中源端卸載記錄的同時目標(biāo)端加載記錄。數(shù)據(jù)加載也可以以流水線(pipeline)的方式執(zhí)行,以多個并行流將數(shù)據(jù)記錄加載到多個分區(qū)中,所述多個并行流由多個數(shù)據(jù)源分區(qū)指針(cursor)所指向。具有對DBMS的多數(shù)據(jù)庫訪問的軟件服務(wù)器,優(yōu)選使用分布式關(guān)系數(shù)據(jù)庫體系(DRDA),并且數(shù)據(jù)庫連接通信線路優(yōu)選使用TCP/IP協(xié)議。
本發(fā)明的另一個優(yōu)選實施例是實現(xiàn)本發(fā)明上述方法實施例的設(shè)備。
而本發(fā)明的另一個優(yōu)選實施例是明確配置了計算機可執(zhí)行的指令程序來執(zhí)行本發(fā)明上述方法實施例的方法步驟的計算機可讀的程序存儲設(shè)備。


現(xiàn)在參看插圖,其中例如參考數(shù)字代表了全篇相應(yīng)的部分
圖1根據(jù)本發(fā)明的優(yōu)選實施例圖解說明一個典型的計算機硬件和軟件環(huán)境的框圖;以及圖2根據(jù)本發(fā)明的優(yōu)選實施例圖解說明了LOAD命令的幾個選項的語法格式。
具體實施例方式
在下文所描述的優(yōu)選實施例中,提及伴隨的形成其一部分的參考圖,參考圖闡明特定的發(fā)明可行的實施例。其它的實施例能被利用,并且結(jié)構(gòu)和功能的變化能不脫離本發(fā)明的范圍將被理解。
本發(fā)明集中在系統(tǒng)、方法和程序存儲設(shè)備上,該設(shè)備包含計算機可執(zhí)行的指令程序來實現(xiàn)本發(fā)明的方法,該方法逐個記錄地將通常駐留在多個數(shù)據(jù)源并可能以不同的格式存儲的持續(xù)數(shù)據(jù)傳送到目標(biāo)端倉庫。來自多數(shù)據(jù)源可能以不同格式存儲的數(shù)據(jù)的傳輸,采用被稱為多數(shù)據(jù)庫軟件服務(wù)器的現(xiàn)有的常規(guī)技術(shù)來完成。因此,開發(fā)者能夠逐個記錄地傳輸數(shù)據(jù)且記錄屬性可能跨越多個數(shù)據(jù)源。而且,它們能夠在單一的事務(wù)中訪問任何或所有的這些屬性。由于本發(fā)明可以被多種主導(dǎo)信息技術(shù)廠商所支持,這提供了許多潛在的商業(yè)利益,比如增強的便攜性和高度的代碼重用,而不用給應(yīng)用程序開發(fā)者安置任何編程負擔(dān)。
本發(fā)明的優(yōu)選實施例優(yōu)選使用具有對DBMS的多數(shù)據(jù)庫訪問的軟件服務(wù)器訪問數(shù)據(jù)源,例如分布式關(guān)系數(shù)據(jù)庫體系(DRDA)軟件服務(wù)器,目標(biāo)端通過結(jié)構(gòu)化查詢語言(SQL)命令或其等價物可訪問該軟件服務(wù)器。數(shù)據(jù)優(yōu)選根據(jù)DRDA通信協(xié)議規(guī)則逐個記錄地格式化和傳送,并直接加載到目標(biāo)端。本發(fā)明優(yōu)選使用標(biāo)準(zhǔn)的SQL命令,該命令可能是復(fù)雜的SQL命令。這允許使用聯(lián)合和連接函數(shù)(union and join function)用于將來自多個數(shù)據(jù)源的數(shù)據(jù)連接起來。
由本發(fā)明的實施例,一旦一個或多個數(shù)據(jù)記錄從源端卸載,數(shù)據(jù)記錄就能夠被傳送,并且一旦一個記錄被傳送到目標(biāo)端,目標(biāo)端的數(shù)據(jù)加載就能夠開始。因此,在源端卸載記錄的同時目標(biāo)端能夠加載記錄。而且,由于所有將被傳輸?shù)臄?shù)據(jù)不必完全在傳輸之前加載到一個文件,數(shù)據(jù)量可能是無限的,且不被最大文件傳輸系統(tǒng)大小所限制。而且使用DRDA或類似的通信協(xié)議提供了一種中性的數(shù)據(jù)格式,并不關(guān)注加載和卸載端文件格式是否兼容。
本發(fā)明允許目標(biāo)端的用戶請求數(shù)據(jù)從源端傳送到目標(biāo)端。這優(yōu)選采用SQL DECLARE CURSOR FOR SELECT語句來完成,它通過指針名稱引用源端表的SELECT命令結(jié)果行。這個命令送到源端執(zhí)行。下一步,目標(biāo)端的用戶使用LOAD命令,該命令指定目標(biāo)端表格。LOAD命令使用一個在本發(fā)明中定義的新的算子INCURSOR,它使用和SELECT語句中相同的指針名稱,指示將要加載到目標(biāo)端表格中的數(shù)據(jù)位置。因此,本發(fā)明使用指針名而不是當(dāng)前用INDDN定義的文件名來分別引用每一個數(shù)據(jù)記錄,而不是引用整個文件。
圖1根據(jù)本發(fā)明的優(yōu)選實施例圖解說明一個典型的計算機硬件和軟件環(huán)境的框圖,包括目標(biāo)端100和源端102,每端有一個或多個執(zhí)行存儲在關(guān)聯(lián)的計算機存儲器(未繪出)中的指令的常規(guī)處理器(未繪出)。工作存儲器可加載通過可選的存儲驅(qū)動器或通過與網(wǎng)絡(luò)的接口接收的指令。當(dāng)本發(fā)明的優(yōu)選實施例使用在網(wǎng)絡(luò)環(huán)境中時特別有利,在目標(biāo)端100有一個控制臺終端(未繪出),且目標(biāo)端100的處理器通過數(shù)據(jù)庫連接通信線路116連網(wǎng)到源端102,所述數(shù)據(jù)庫通信線路最好是TCP/IP通信線路,根據(jù)DRDA通信協(xié)議規(guī)則在該通信線路上傳送記錄。
源端102處理器連接到一個或多個電子存儲設(shè)備106,例如存儲一個或多個關(guān)系數(shù)據(jù)庫的磁盤驅(qū)動器。存儲設(shè)備104也應(yīng)用在目標(biāo)端100。它們可能包括,例如,光盤驅(qū)動器、磁帶和/或半導(dǎo)體存儲器。每一個存儲設(shè)備允許接收程序存儲設(shè)備,例如磁介質(zhì)盤、磁帶、光盤、半導(dǎo)體存儲器和其它機器可讀的存儲設(shè)備,并允許將記錄在程序存儲設(shè)備上的程序步驟讀取并傳送到計算機存儲器。記錄的程序指令可能包括用于本發(fā)明的實施例的方法的代碼。另外的,程序步驟可以從計算機通過網(wǎng)絡(luò)接收到工作存儲器。
在目標(biāo)端100的控制臺終端的操作者使用標(biāo)準(zhǔn)的操作者終端界面(未示出),例如IMS/DB/DC,CICS,TSO,OS/2或其它類似的界面,來向目標(biāo)端100和從目標(biāo)端100發(fā)送電子信號,該信號代表了在源端用于執(zhí)行各種任務(wù)的命令,例如在存儲于電子存儲設(shè)備106上的數(shù)據(jù)庫中搜索和檢索函數(shù)或術(shù)語查詢。在當(dāng)前的發(fā)明中,這些查詢優(yōu)選符合SQL標(biāo)準(zhǔn),并調(diào)用由位于源端102的數(shù)據(jù)庫管理系統(tǒng)(DBMS)(這可能是DBMS家族108的一部分)執(zhí)行的函數(shù)。在目標(biāo)端100也存在DBMS 110。在本發(fā)明的優(yōu)選實施例中,RDBMS軟件是IBM為AS400、OS390或OS/2操作系統(tǒng)、微軟視窗操作系統(tǒng)或任何基于UNIX被DB2支持的操作系統(tǒng)提供的DB2產(chǎn)品。但是,本領(lǐng)域技術(shù)人員將認識到將本發(fā)明應(yīng)用到任何使用SQL的RDBMS軟件,并可類似的應(yīng)用到非SQL查詢。
圖1進一步圖解說明了可實現(xiàn)本發(fā)明優(yōu)選實施例的軟件環(huán)境。圖1所示的系統(tǒng)中,目標(biāo)端100進一步包括了本發(fā)明的交叉加載(crossloader)軟件114,該軟件能通過數(shù)據(jù)庫連接通信線路116和位于源端102的交叉加載軟件112通信。每一個交叉加載軟件112、114如下所示,包括一組指令用來逐個記錄地執(zhí)行本發(fā)明的數(shù)據(jù)發(fā)送。目標(biāo)端100還包括DRDA界面118且源端也包括DRDA界面120。交叉加載軟件114也和DBMS 110連接,且交叉加載軟件112連接到DBMS 108,以允許對數(shù)據(jù)庫條目的訪問。而且,目標(biāo)端100還包括數(shù)據(jù)類型轉(zhuǎn)換模塊122,需要時用來進行DRDA協(xié)議支持的數(shù)據(jù)類型轉(zhuǎn)換。源端102進而包括多數(shù)據(jù)庫軟件服務(wù)器124,例如圖1所示的連接于交叉加載軟件112和DBMS家族108之間的數(shù)據(jù)連接器(DataJoiner)模塊,用于從不同的DBMS遷移數(shù)據(jù)(例如從Oracle到DB2)。
本發(fā)明實施例的方法包括下面的步驟。首先,用戶確定要發(fā)送的數(shù)據(jù),數(shù)據(jù)可能在不同的數(shù)據(jù)源端,并以不同的格式存儲。例如,她/他可以識別駐留在DB2、Oracle、Sysbase、Informix、IMS或VSAM數(shù)據(jù)庫,SQL服務(wù)器或NCR Teradata中的DBMS家族108的表格中的某些記錄與他/她的應(yīng)用程序相關(guān)并應(yīng)當(dāng)遷移。數(shù)據(jù)源識別中所涉及的步驟的精確特性可以改變。本發(fā)明的優(yōu)選實施例通過發(fā)布SQL命令來實現(xiàn),但能夠使用許多的其它方法。
如果使用的數(shù)據(jù)來自分布式數(shù)據(jù)源,在下一步,用戶使用軟件工具從包含數(shù)據(jù)的DBMS家族108連接到數(shù)據(jù)源,并使用該軟件工具注冊這些數(shù)據(jù)對象。如圖1所示的數(shù)據(jù)連接器124,這種軟件工具具有多數(shù)據(jù)庫軟件服務(wù)器的能力,有時稱為聯(lián)合DBMS(federated DBMS),它可以訪問多數(shù)據(jù)源,其中的每一個可以駐留在不同的系統(tǒng)中,并以不同的格式存儲。本發(fā)明的優(yōu)選實施例使用IBM的DB2數(shù)據(jù)連接器多數(shù)據(jù)庫軟件服務(wù)器124,例如用于DB2 V6.1的數(shù)據(jù)連接器V2.1,來實現(xiàn)與包括Oracle DBMS、Sybase DBMS、Informix DBMS等的DBMS家族108的連接。
然后,使用軟件工具,即多數(shù)據(jù)庫軟件服務(wù)器,用戶從數(shù)據(jù)源創(chuàng)建將來自先前注冊的數(shù)據(jù)的多個多屬性合并的命令。該步驟的一個實現(xiàn)可能包括交叉加載軟件114使用一條SQL SELECT語句訪問關(guān)系DBMS表格或景象(view),該景象基于應(yīng)用程序的特定需求連接從不同的,有時是遠程的數(shù)據(jù)源(例如表格)來的數(shù)據(jù)。每一句SELECT命令適當(dāng)?shù)倪^濾數(shù)據(jù),有時進行選擇以將得到的記錄或景象限制為與一個或多個數(shù)據(jù)源(表)相關(guān)聯(lián)的行和列的子集。對SELECT語句,用戶必須聲明一個指針。這可以允許標(biāo)準(zhǔn)的數(shù)據(jù)庫連接機制連接到軟件工具,即多數(shù)據(jù)庫軟件服務(wù)器,以便逐個記錄地索引數(shù)據(jù),仿佛數(shù)據(jù)來自單一的表。
接下來,在目標(biāo)端100的交叉加載軟件114中的標(biāo)準(zhǔn)的SQL命令,例如LOAD命令,可用于建立與上述聲明的指針的連接,用于加載由上述定義的景象所代表的數(shù)據(jù)。一旦完成上面略述的步驟,程序員能以隱藏他們所需訪問數(shù)據(jù)的分布式屬性的方式獲得對數(shù)據(jù)的訪問。這推動了許多有用的商業(yè)應(yīng)用程序地有效開發(fā),因而最小化了開發(fā)和維護成本。使用本發(fā)明,用戶能夠?qū)?yīng)用程序從DB2家族的一個成員遷移到另一個成員。表可能大于服務(wù)器操作系統(tǒng)所處理的文件大小。
由于當(dāng)前發(fā)明使用標(biāo)準(zhǔn)的SQL它能夠使用三部分名稱來通過數(shù)據(jù)位置、方案名稱和表格名稱標(biāo)識源數(shù)據(jù)(如對分布式訪問所要求的那樣)。另一實施例使用CONNECT語句來連接源端102和目標(biāo)端100。本發(fā)明優(yōu)選使用動態(tài)SQL語句構(gòu)造SQL語句的實用程序塊。EXEC SQL實用程序命令用于指針聲明。一些其它的可動態(tài)執(zhí)行的SQL語句也可以在同一EXEC SQL命令中定義。
下面的語法圖說明EXEC SQL命令的格式,其中在同一程序塊中“declare cursor spec”命令后面可跟隨“non-select dynamicSQL statement”>>--EXEC--SQL---declare cursor spec----------ENDEXEC------->
‘-non-select dynamic SQL statement-’短語“declare cursor spec”作為DECLARE CURSOR語句輸入來定義指向SELECT語句結(jié)果的指針。它具有下述SQL格式>>--DECLARE--cursor-name--CURSOR--FOR--select-statement--ENDEXEC-->
短語“cursor-name”識別一個指針。“select-statement”確定SQL SELECT命令,用于從由在指針聲明的語句中聲明的指針?biāo)赶虻谋砀裰刑峁┙Y(jié)果行。
短語“non-select dynamic SQL statement”指向用于執(zhí)行在EXECUTE IMMEDIATE模式中的指定SQL語句的命令?!皀on-select dynamic SQL statement”可以是下述SQL語句中的一個°ALTER °RENAME°COMMENT ON°REVOKE°COMMIT°ROLLBACK°CREATE°SET CURRENT DEGREE°DELETE°SET CURRENT LOCALE LC_CTYPE°DROP °UPDATE°EXPLAIN °SET CURRENT OPTIMIZATION HINT
°GRANT °SET CURRENT PATH°INSERT °SET CURRENT SQLID°LABEL ON°SET CURRENT PRECI SION°LOCK TABLE °SET CURRENT RULESSQL語句執(zhí)行時,指定的語句串被解析和校驗錯誤。如果SQL語句無效,它就不會被執(zhí)行,且阻止它執(zhí)行的錯誤狀態(tài)被報告。如果SQL語句有效,但是在它執(zhí)行時發(fā)生了錯誤,該錯誤狀態(tài)被報告。如果語句完成需要花費過多的處理器時間,DB2可以停止SQL語句的執(zhí)行。當(dāng)這種情況出現(xiàn)時,發(fā)生錯誤并進行報告。無論何時錯誤發(fā)生,實用程序會終止。
一個用來聲明一個指針以從MYSOURCE示例表中選取所有的行和列的有效DECLARE CURSOR語句的例子如下所示EXEC SQLDECLARE C1 CURSOR FOR SELECT*FROM MYSOURCEENDEXECLOAD命令可以有多種選項。圖2根據(jù)本發(fā)明的優(yōu)選實施例圖解說明了LOAD命令幾個選項的語法格式。
在LOAD命令中“INCLUDE cursor-name”參數(shù)的使用是本發(fā)明的優(yōu)選實施例。LOAD命令指定同一指針指向要卸載的源端數(shù)據(jù)。因而,指針必定已經(jīng)在“declare cursor for select”語句中聲明。在SELECT語句表中的列名稱一定要與目標(biāo)表中的列名稱相一致,以接收加載的記錄。然而,選擇列表中的“AS”子句能夠用來改變SELECT語句返回的列名稱。
下面的兩個例子說明了本發(fā)明的優(yōu)選實施例的實現(xiàn)。
例1此例聲明指針C1并把記錄從源端表格中加載到目標(biāo)端表格中,這作為聲明指針C1的SELECT語句的結(jié)果而得到。
LOAD命令被修改以接受INCURSOR參數(shù),用于逐個記錄的傳輸模式,這代替了用于常規(guī)的整個文件傳輸?shù)腎NDDN參數(shù)。
EXEC SQL
CREATE TABLE MYTARGET LIKE MYSOURCEENDEXECEXEC SQLDECLARE C1 CURSOR FOR SELECT*FROM MYSOURCEENDEXECLOAD DATAINCURSOR(C1)REPLACEINTO TABLE MYTARGET本發(fā)明也具有可以以多個并行流(即以流水線模式)執(zhí)行數(shù)據(jù)傳輸?shù)膬?yōu)選實施例。
例2本例說明并行加載數(shù)據(jù)到MYTRAGET表格的多個分區(qū)的方法,數(shù)據(jù)作為SELECT語句的結(jié)果而得到,如為每一分區(qū)指針C1-C4所聲明的那樣。執(zhí)行LOAD命令以在由分區(qū)指針C1-C4所指向的四個并行流中取數(shù)據(jù)(流水線模式),EXEC SQLDECLARE C1 CURSOR FOR SELECT*FROM MYSOURCEWHERE EMPNO<=’099999’ENDEXECEXEC SQLDECLARE C2 CURSOR FOR SELECT*FROM MYSOURCEWHERE EMPO>’099999’AND EMPNO<=’199999’ENDEXECEXEC SQLDECLARE C3 CURSOR FOR SELECT*FROM MYSOURCE
WHERE EMPO>’199999’AND EMPNO<=’299999’ENDEXECEXEC SQLDECLARE C4 CURSOR FOR SELECT*FROM MYSOURCEWHERE EMPO>’299999’AND EMPNO<=’999999’ENDEXECLOAD DATAINTO TABLE MYTARGET PART 1 REPLACE INCURSOR(1)INTO TABLE MYTARGET PART 2 REPLACE INCURSOR(2)INTO TABLE MYTARGET PART 3 REPLACE INCURSOR(3)INTO TABLE MYTARGET PART 4 REPLACE INCURSOR(4)本發(fā)明優(yōu)選通過DRDA處理分布式數(shù)據(jù)庫之間的交互作用,當(dāng)程序員需要訪問存儲在DBMS家族108的多個DBMS中的數(shù)據(jù)時,這可以簡化開發(fā)任務(wù)。DRDA提供公用的SQL API,位置透明以及(在某些情況)功能性補償。此外,可以執(zhí)行多數(shù)據(jù)庫連接和聯(lián)合,而不用手動連接每一個數(shù)據(jù)源,從每一個數(shù)據(jù)源檢索必要的數(shù)據(jù),在一些應(yīng)用程序管理的數(shù)據(jù)結(jié)構(gòu)中臨時存儲這些數(shù)據(jù),并編碼必要的邏輯來處理與連接或聯(lián)合操作相關(guān)聯(lián)的數(shù)據(jù)集成。這些工作通過多數(shù)據(jù)庫軟件服務(wù)器自動處理,它提供物理上可能分布并存儲于不同的DBMS的數(shù)據(jù)的單端映像(single-site image)。
本發(fā)明的優(yōu)選實施例消除了從不同數(shù)據(jù)源來的數(shù)據(jù)的物理合并的需要,因此避免了所涉及的軟件和勞動力開銷,也避免了由于數(shù)據(jù)等待時間所引入的邏輯曝露問題。它們也減輕了程序員編寫用于分別連接到每一個所需的數(shù)據(jù)源,讀入任何所需數(shù)據(jù),使從不同數(shù)據(jù)源讀入的結(jié)果相關(guān)(或連接),執(zhí)行任何所需數(shù)據(jù)翻譯的軟件等的負擔(dān)。這是完全超過了許多程序員技術(shù)水平的實質(zhì)性工作量,并會導(dǎo)致大量的成本。此外,程序員不必擁有不同數(shù)據(jù)源間的差別的詳細知識。
本發(fā)明優(yōu)選根據(jù)RDRA協(xié)議使用數(shù)據(jù)格式,并通過TCP/IP數(shù)據(jù)庫連接通信線路應(yīng)用千兆以太網(wǎng)傳送數(shù)據(jù)。它可以用來從本地或遠程目標(biāo)端表格加載數(shù)據(jù)。由于本發(fā)明的高速度、穩(wěn)定性、高效性和靈活性,它尤其對來自主機計算機(源端)倉庫(CC或可視倉庫)的大量數(shù)據(jù)的常規(guī)自動更新(下載)有用。它也能夠用于除了DB2的其它DBMS,例如DL/I或VSAM。本發(fā)明可以用于不同操作系統(tǒng),例如OS/390,UNIX,Windows,OS/2等,支持的DBMS。它支持實用程序中的DDL和DML執(zhí)行,例如CREATE/DROP表,GRANTs INSERT/UPDATE/DELETE,等,而無需使用DSNTIAD。
本發(fā)明的優(yōu)選實施例可以支持由數(shù)據(jù)轉(zhuǎn)換模塊122執(zhí)行的幾種數(shù)據(jù)類型轉(zhuǎn)換,例如數(shù)字的,ASCII/EBCIDIC/Unicode、代碼頁等,以及取數(shù)據(jù)塊,且沒有文件大小的限制或行和域的開銷。這些簡化了應(yīng)用程序的設(shè)計、開發(fā)和維護,并提供了更可靠的、具有當(dāng)前不能實現(xiàn)的功能的應(yīng)用程序。
本發(fā)明優(yōu)選實施例的上述描述為了描述和圖解說明而提出。它不意指詳盡的或限制本發(fā)明公開的精確形式。根據(jù)上述的教導(dǎo)有可能有許多修改和變化。這意指本發(fā)明的范圍不被詳細描述所限制而是被關(guān)于本發(fā)明隨附的權(quán)利要求所限制。
權(quán)利要求
1.在通過數(shù)據(jù)庫連接通信線路連接源端和目標(biāo)端的計算機系統(tǒng)網(wǎng)絡(luò)中逐個記錄地從遠程數(shù)據(jù)源加載數(shù)據(jù)的方法,該方法包括下列步驟(a)連接源端到至少一個數(shù)據(jù)源和一個具有對DBMS的多數(shù)據(jù)庫訪問的軟件服務(wù)器;(b)在目標(biāo)端通過一組結(jié)構(gòu)化查詢語言(SQL)語句或其等價物請求從源端加載數(shù)據(jù);并(c)根據(jù)多數(shù)據(jù)庫訪問通信協(xié)議,通過數(shù)據(jù)庫連接通信線路逐個記錄地輸送數(shù)據(jù),其中在源端卸載記錄的同時目標(biāo)端加載記錄。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于一旦一個或多個數(shù)據(jù)記錄從源端卸載,數(shù)據(jù)記錄就通過數(shù)據(jù)庫連接通信線路被傳送,并且一旦一個記錄被傳送到目標(biāo)端,目標(biāo)端的數(shù)據(jù)加載便開始。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于數(shù)據(jù)加載以流水線的方式執(zhí)行,以多個并行流將數(shù)據(jù)記錄加載到多個分區(qū)中,所述多個并行流被多個數(shù)據(jù)源分區(qū)指針?biāo)赶颉?br> 4.根據(jù)權(quán)利要求1所述的方法,其特征在于該組SQL語句包括在EXECUTE IMMEDIATE模式中所執(zhí)行的動態(tài)可執(zhí)行SQL語句。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于該組SQL語句包括一個SQL DECLARE CURSOR FOR SELECT語句,用于定義分別索引從服務(wù)器端卸載的每個SELECT語句結(jié)果記錄的指針,以及一個LOAD命令和一個具有相同的指針名稱、用于指向目標(biāo)端接收記錄的INCURSOR運算符。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于服務(wù)器端具有對多個數(shù)據(jù)源的訪問,它們是物理上分布的并且不同的DBMS,駐留于不同的硬件系統(tǒng)且可能以不同格式存儲數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于服務(wù)器端從多數(shù)據(jù)源加載數(shù)據(jù),進而包括用于采用一種裝置合并來自多個數(shù)據(jù)源的數(shù)據(jù)的步驟。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于數(shù)據(jù)庫連接通信線路使用TCP/IP協(xié)議,且具有對DBMS的多數(shù)據(jù)庫訪問的軟件服務(wù)器包括一個分布式關(guān)系數(shù)據(jù)庫體系(DRDA)。
9.用于逐個記錄地從遠程數(shù)據(jù)源加載數(shù)據(jù)的系統(tǒng),包括連接到至少一個數(shù)據(jù)源并具有帶有對DBMS的多數(shù)據(jù)庫訪問的軟件服務(wù)器的源端;通過一組結(jié)構(gòu)化查詢語言(SQL)語句或其等價物請求從源端加載數(shù)據(jù)的目標(biāo)端;以及根據(jù)多數(shù)據(jù)庫訪問通信協(xié)議,逐個記錄地輸送數(shù)據(jù)的數(shù)據(jù)庫連接通信線路,其中在源端卸載記錄的同時目標(biāo)端加載記錄。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于一旦一個或多個數(shù)據(jù)記錄從源端卸載,數(shù)據(jù)記錄就通過數(shù)據(jù)庫連接通信線路被傳送,并且一旦一個記錄被傳送到目標(biāo)端,目標(biāo)端的數(shù)據(jù)加載便開始。
11.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于數(shù)據(jù)加載以流水線的方式執(zhí)行,以多個并行流將數(shù)據(jù)記錄加載到多個分區(qū)中,所述多個并行流被多個數(shù)據(jù)源分區(qū)指針?biāo)赶颉?br> 12.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于該組SQL語句包括在EXECUTE IMMEDIATE模式中所執(zhí)行的動態(tài)可執(zhí)行SQL語句程序。
13.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于該組SQL語句包括一個SQL DECLARE CURSOR FOR SELECT語句,用于定義分別索引從服務(wù)器端卸載的每個SELECT語句結(jié)果記錄的指針,以及一個LOAD命令和一個具有相同的指針名稱、用于指向目標(biāo)端接收記錄的INCURSOR運算符。
14.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于服務(wù)器端具有對多個數(shù)據(jù)源的訪問,它們是物理上分布的且不同的DBMS,駐留于不同的硬件系統(tǒng)且可能以不同格式存儲數(shù)據(jù)。
15.根據(jù)權(quán)利要求14所述的系統(tǒng),其特征在于服務(wù)器端從多數(shù)據(jù)源加載數(shù)據(jù),進而包括用于合并來自多個數(shù)據(jù)源的數(shù)據(jù)的裝置。
16.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于數(shù)據(jù)庫連接通信線路使用TCP/IP協(xié)議,且具有對DBMS的多數(shù)據(jù)庫訪問的軟件服務(wù)器包括一個分布式關(guān)系數(shù)據(jù)庫體系(DRDA)。
17.確切包含計算機可執(zhí)行指令程序的計算機可讀的程序存儲設(shè)備,實現(xiàn)在通過數(shù)據(jù)庫連接通信線路連接源端和目標(biāo)端的計算機系統(tǒng)網(wǎng)絡(luò)中逐個記錄地從遠程數(shù)據(jù)源加載數(shù)據(jù)的方法;該方法包括下列步驟(a)連接源端到至少一個數(shù)據(jù)源和具有對DBMS的多數(shù)據(jù)庫訪問的軟件服務(wù)器;(b)在目標(biāo)端通過一組結(jié)構(gòu)化查詢語言(SQL)語句或其等價物請求從源端加載數(shù)據(jù);且(c)根據(jù)多數(shù)據(jù)庫訪問通信協(xié)議,通過數(shù)據(jù)庫連接通信線路逐個記錄地傳送數(shù)據(jù),其中源端卸載記錄的同時目標(biāo)端加載記錄。
18.根據(jù)權(quán)利要求17所述的方法,其特征在于一旦一個或多個數(shù)據(jù)記錄從源端卸載,數(shù)據(jù)記錄就能夠通過數(shù)據(jù)庫連接通信線路被傳送,并且一旦一個記錄被傳送到目標(biāo)端,目標(biāo)端的數(shù)據(jù)加載就能夠開始。
19.根據(jù)權(quán)利要求17所述的方法,其特征在于數(shù)據(jù)加載以流水線的方式執(zhí)行,以多個并行流將數(shù)據(jù)記錄加載到多個分區(qū)中,所述多個并行流被多個數(shù)據(jù)源分區(qū)指針?biāo)赶颉?br> 20.根據(jù)權(quán)利要求17所述的方法,其特征在于該組SQL語句包括在EXECUTE IMMEDIATE模式執(zhí)行的動態(tài)可執(zhí)行SQL語句程序。
21.根據(jù)權(quán)利要求17所述的方法,其特征在于該組SQL語句包括一個SQL DECLARE CURSOR FOR SELECT語句,用于定義分別索引從服務(wù)器端卸載的每一個SELECT語句結(jié)果記錄的指針,以及一個LOAD命令和一個具有相同指針名稱、用于指向目標(biāo)端接收記錄的INCURSOR運算符。
22.根據(jù)權(quán)利要求17所述的方法,其特征在于服務(wù)器端具有對多個數(shù)據(jù)源的訪問,它們是物理上分布的且不同的DBMS,駐留于不同的硬件系統(tǒng)且可能以不同格式存儲數(shù)據(jù)。
23.根據(jù)權(quán)利要求22所述的方法,其特征在于服務(wù)器端從多數(shù)據(jù)源加載數(shù)據(jù),進而包括用于采用一種裝置合并來自多個數(shù)據(jù)源的數(shù)據(jù)的步驟。
24.根據(jù)權(quán)利要求17所述的方法,其特征在于數(shù)據(jù)庫連接通信線路使用TCP/IP協(xié)議,且具有對DBMS的多數(shù)據(jù)庫訪問的軟件服務(wù)器包括一個分布式關(guān)系數(shù)據(jù)庫體系(DRDA)。
全文摘要
本發(fā)明提出了一種在通過數(shù)據(jù)庫連接通信線路連接源端和目標(biāo)端的計算機系統(tǒng)網(wǎng)絡(luò)中逐個記錄地從遠程數(shù)據(jù)源加載數(shù)據(jù)的方法、設(shè)備和產(chǎn)品。源端擁有至少一個數(shù)據(jù)源和一個具有對庫管理系統(tǒng)(DBMS)的多數(shù)據(jù)庫訪問的分布式關(guān)系數(shù)據(jù)庫體系(DRDA)軟件服務(wù)器。目標(biāo)端通過一組結(jié)構(gòu)化查詢語言(SQL)語句請求從源端DRDA加載數(shù)據(jù)。根據(jù)DRDA通信協(xié)議,數(shù)據(jù)通過數(shù)據(jù)庫連接通信線路逐個記錄地輸送,其中,在源端卸載記錄的同時目標(biāo)端加載記錄。數(shù)據(jù)加載也可以以流水線的方式實現(xiàn),以多個并行的流將數(shù)據(jù)記錄加載到多個分區(qū)內(nèi),所述多個并行流被多個數(shù)據(jù)源分區(qū)指針?biāo)赶颉?br> 文檔編號G06F17/30GK1541363SQ02805708
公開日2004年10月27日 申請日期2002年2月25日 優(yōu)先權(quán)日2001年2月28日
發(fā)明者伊麗莎白·B.·哈邁, 伊麗莎白 B. 哈邁, T. 霍, 邁克爾·T.·霍, C. 克里溫, 詹姆斯·C.·克里溫, D. 里奇, 馬克·D.·里奇, S. 萊特斯頓, 薩姆·S.·萊特斯頓, A. 麥克皮爾森, 約翰·A.·麥克皮爾森, A. 陸迪, 詹姆斯·A.·陸迪 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1