專利名稱:外部元數(shù)據(jù)處理的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及信息技術(shù)領(lǐng)域,尤其涉及關(guān)于數(shù)據(jù)流的元數(shù)據(jù)的創(chuàng)建和更新,以元數(shù)據(jù)的使用以允許確認(rèn)數(shù)據(jù)流。
背景技術(shù):
數(shù)據(jù)的大集合可以用復(fù)雜的方式來(lái)使用。例如,數(shù)據(jù)集合,如文件、數(shù)據(jù)庫(kù)和其它數(shù)據(jù)存儲(chǔ)手段可以被打開、查詢或用作長(zhǎng)活動(dòng)串的一部分,其中對(duì)數(shù)據(jù)出現(xiàn)不同的變換活動(dòng),并然后儲(chǔ)存所得的數(shù)據(jù)。
例如,圖1所示是具有兩個(gè)數(shù)據(jù)輸入和兩個(gè)數(shù)據(jù)輸出的數(shù)據(jù)流。如圖1所示,文件A和數(shù)據(jù)庫(kù)表A都被打開。如圖1所示,從文件A 1000讀取數(shù)據(jù),并且從數(shù)據(jù)庫(kù)表A 1010讀取數(shù)據(jù)。在這兩個(gè)數(shù)據(jù)集上執(zhí)行并操作1020。檢查并操作的結(jié)果,以確定(框1030),對(duì)數(shù)據(jù)的并集中的每一記錄,儲(chǔ)存在相關(guān)聯(lián)的年齡字段中的值是否小于50。對(duì)于其中相關(guān)聯(lián)的年齡字段小于50的記錄,將這些記錄按性別聚集(1040),并儲(chǔ)存在數(shù)據(jù)庫(kù)表B中(1050)。對(duì)于其中相關(guān)聯(lián)的年齡字段小于50的記錄,將這些記錄儲(chǔ)存在文件B中(1060)。
為允許使用數(shù)據(jù)的大的、復(fù)雜的集合,開發(fā)了ETL(提取變換加載)工具。這些工具提供了使用數(shù)據(jù)集合執(zhí)行操作的自動(dòng)化方法。ETL工具自動(dòng)化了提取數(shù)據(jù)的任務(wù)-從數(shù)據(jù)源取出數(shù)據(jù);變換數(shù)據(jù)的任務(wù)-使用提取的數(shù)據(jù);以及加載數(shù)據(jù)的任務(wù)-儲(chǔ)存變換的結(jié)果以供以后使用。例如,行動(dòng)中所示的行動(dòng)由ETL工具執(zhí)行。
為允許對(duì)這一ETL功能的簡(jiǎn)易使用并擴(kuò)展可用的功能,開發(fā)了允許使用文件或其它數(shù)據(jù)集合的過(guò)程的可視設(shè)計(jì)的設(shè)計(jì)工具。一種這樣的設(shè)計(jì)工具被稱為數(shù)據(jù)變換服務(wù)(DTS),它可從微軟公司獲得。DTS允許用戶可視地設(shè)計(jì)過(guò)程,可通過(guò)這些過(guò)程使用文件、數(shù)據(jù)庫(kù)或其它數(shù)據(jù)集合中的數(shù)據(jù)。由DTS設(shè)計(jì)的過(guò)程中的操作可包括但不限于通過(guò)標(biāo)準(zhǔn)ETL工具可得的那些操作。例如,DTS設(shè)計(jì)的數(shù)據(jù)流可允許用戶指定某些文件被刪除、獲取其它文件(例如,通過(guò)文件傳輸協(xié)議(FTP)從指定的源獲取)、以及然后在如此獲得的每一文件上執(zhí)行特定的ETL過(guò)程。
由ETL工具或諸如DTS等設(shè)計(jì)工具設(shè)計(jì)的數(shù)據(jù)庫(kù)在其使用前被設(shè)計(jì)。這可導(dǎo)致當(dāng)使用數(shù)據(jù)流時(shí)的岐義。例如,一數(shù)據(jù)流被設(shè)計(jì)成打開數(shù)據(jù)源,并對(duì)數(shù)據(jù)源中的每一記錄讀取特定列A和列C中的信息。然而,在運(yùn)行時(shí),在打開數(shù)據(jù)源之后,數(shù)據(jù)源可能對(duì)每一記錄包含列A、列B、列C和列D中的信息。
數(shù)據(jù)流的設(shè)計(jì)者可能知道列B將包括在數(shù)據(jù)源中。如果是,則可作出不從列B讀取信息的設(shè)計(jì)選擇,以最小化如此完成的時(shí)間和其它計(jì)算成本。,由此,在運(yùn)行時(shí)詢問(wèn)用戶列B是否應(yīng)當(dāng)被包括在內(nèi)會(huì)導(dǎo)致不必要的混淆和延遲。
然而,數(shù)據(jù)流的設(shè)計(jì)者可能不知道列D被包括在數(shù)據(jù)源中,并且數(shù)據(jù)流的用戶將發(fā)現(xiàn)列D以包括在數(shù)據(jù)流中是有用的。由此,在運(yùn)行時(shí)詢問(wèn)用戶列D是否應(yīng)當(dāng)包括將是有用的。
然而,沒(méi)有方法在數(shù)據(jù)被有意地不包括在數(shù)據(jù)源中的情況,以及數(shù)據(jù)源改變的情況之間進(jìn)行區(qū)分。由此,要么在運(yùn)行時(shí)向用戶發(fā)出不必要的問(wèn)題,要么丟失有用的數(shù)據(jù)。
另外,可以對(duì)數(shù)據(jù)集合作出改變。例如,列A的類型可以已從所期望的改變。這可以與在數(shù)據(jù)流中為列A所設(shè)計(jì)的操作兼容或不兼容。數(shù)據(jù)類型的某些改變可允許操作成功地繼續(xù)進(jìn)行,但帶有不期望的結(jié)果。然而,沒(méi)有方法來(lái)說(shuō)出改變是預(yù)期的還是非預(yù)期的。再一次,要么向用戶咨詢數(shù)據(jù)類型的不兼容性,即使是在改變?yōu)轭A(yù)期的情況下,要么不向用戶咨詢,這允許問(wèn)題繼續(xù)發(fā)展。
由此,需要一種克服本領(lǐng)域中這些缺陷的系統(tǒng)和方法。本發(fā)明著眼于上述需求并用此處所闡明的附加優(yōu)點(diǎn)解決了這些需求。
發(fā)明內(nèi)容
本發(fā)明允許儲(chǔ)存關(guān)于外部數(shù)據(jù)文件(或數(shù)據(jù)集合)的外部元數(shù)據(jù),以供數(shù)據(jù)流使用。由于這一信息的存儲(chǔ),稍后可檢查數(shù)據(jù)集合的內(nèi)容并使用外部元數(shù)據(jù),以確定對(duì)數(shù)據(jù)集合是否發(fā)生了任何改變,以及如果是則可采取什么行動(dòng)。檢查描述數(shù)據(jù)流的數(shù)據(jù)流信息以及在數(shù)據(jù)流中使用的關(guān)于數(shù)據(jù)集合的所儲(chǔ)存的外部元數(shù)據(jù),以確定信息是否一致。如果不是,則可向用戶咨詢,或可發(fā)生自動(dòng)的手段(如類型轉(zhuǎn)換)。
當(dāng)數(shù)據(jù)集合不可用時(shí),仍可使用外部元數(shù)據(jù),以確定數(shù)據(jù)流是否與外部元數(shù)據(jù)中反映的數(shù)據(jù)集合兼容??筛淖償?shù)據(jù)流以確保兼容性。
外部元數(shù)據(jù)的重新同步可更新外部元數(shù)據(jù),以確保得自外部元數(shù)據(jù)存儲(chǔ)的連續(xù)益處。
本發(fā)明的其它特征將在下文描述。
當(dāng)結(jié)合附圖閱讀時(shí),可以更好地理解以上概述以及以下較佳實(shí)施例的詳細(xì)描述。為說(shuō)明本發(fā)明的目的,附圖中示出了本發(fā)明的示例性構(gòu)造;然而,本發(fā)明不限于所解釋的特定方法和手段。附圖中圖1是數(shù)據(jù)流的圖示;圖2是其中可實(shí)現(xiàn)本發(fā)明的各方面的示例性計(jì)算環(huán)境的框圖;圖3是依照本發(fā)明的一個(gè)實(shí)施例,使用至少一個(gè)外部數(shù)據(jù)文件準(zhǔn)備關(guān)于數(shù)據(jù)流的數(shù)據(jù)流信息的方法的流程圖;以及圖4是依照本發(fā)明的一個(gè)實(shí)施例評(píng)估數(shù)據(jù)流模型的方法的流程圖。
具體實(shí)施例方式
示例性計(jì)算環(huán)境圖2示出了可在其中實(shí)現(xiàn)本發(fā)明的各方面的示例性計(jì)算環(huán)境。計(jì)算系統(tǒng)環(huán)境100僅為合適的計(jì)算環(huán)境的一個(gè)示例,并非暗示對(duì)本發(fā)明的使用范圍或功能的任何局限。也不應(yīng)將計(jì)算環(huán)境100解釋為對(duì)示例性操作環(huán)境100中示出的任一組件或其組合具有任何依賴或需求。
本發(fā)明可以使用眾多其它通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或配置來(lái)操作。適合使用本發(fā)明的眾所周知的計(jì)算系統(tǒng)、環(huán)境和/或配置包括但不限于個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持式或膝上設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)者電子設(shè)備、網(wǎng)絡(luò)PC、小型機(jī)、大型機(jī)、嵌入式系統(tǒng)、包括任一上述系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境等等。
本發(fā)明可以在諸如由計(jì)算機(jī)執(zhí)行的程序模塊等計(jì)算機(jī)可執(zhí)行指令的一般上下文環(huán)境中描述。一般而言,程序模塊包括例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等,執(zhí)行特定的任務(wù)或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型。本發(fā)明也可以在分布式計(jì)算環(huán)境中實(shí)踐,其中,任務(wù)由通過(guò)通信網(wǎng)絡(luò)或其它數(shù)據(jù)傳輸介質(zhì)連接的遠(yuǎn)程處理設(shè)備來(lái)執(zhí)行。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)器存儲(chǔ)設(shè)備的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。
參考圖2,用于實(shí)現(xiàn)本發(fā)明的示例性系統(tǒng)包括計(jì)算機(jī)110形式的通用計(jì)算裝置。計(jì)算機(jī)110的組件可包括但不限于,處理單元120、系統(tǒng)存儲(chǔ)器130以及將包括系統(tǒng)存儲(chǔ)器的各類系統(tǒng)組件耦合至處理單元120的系統(tǒng)總線121。處理單元120可表示諸如多線程處理器上支持的多個(gè)邏輯處理單元。系統(tǒng)總線121可以是若干種總線結(jié)構(gòu)類型的任一種,包括存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線以及使用各類總線體系結(jié)構(gòu)的局部總線。作為示例而非局限,這類體系結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線、微通道體系結(jié)構(gòu)(MCA)總線、增強(qiáng)型ISA(EISA)總線、視頻電子技術(shù)標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局部總線以及外圍部件互連(PCI)總線(也稱為Mezzanine總線)。系統(tǒng)總線121也可被實(shí)現(xiàn)為點(diǎn)對(duì)點(diǎn)鏈接、交換光纖等其它通信設(shè)備。
計(jì)算機(jī)110通常包括各種計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是可由計(jì)算機(jī)110訪問(wèn)的任一可用介質(zhì),包括易失性和非易失性介質(zhì)、可移動(dòng)和不可移動(dòng)介質(zhì)。作為示例而非局限,計(jì)算機(jī)可讀介質(zhì)包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括以用于儲(chǔ)存諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的任一方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性,可移動(dòng)和不可移動(dòng)介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于,RAM、ROM、EEPROM、閃存或其它存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其它光盤存儲(chǔ)、磁盒、磁帶、磁盤存儲(chǔ)或其它磁存儲(chǔ)設(shè)備、或可以用來(lái)儲(chǔ)存所期望的信息并可由計(jì)算機(jī)110訪問(wèn)的任一其它介質(zhì)。通信介質(zhì)通常在諸如載波或其它傳輸機(jī)制的已調(diào)制數(shù)據(jù)信號(hào)中包含計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并包括任一信息傳送介質(zhì)。術(shù)語(yǔ)“已調(diào)制數(shù)據(jù)信號(hào)”指以對(duì)信號(hào)中的信息進(jìn)行編碼的方式設(shè)置或改變其一個(gè)或多個(gè)特征的信號(hào)。作為示例而非局限,通信介質(zhì)包括有線介質(zhì),如有線網(wǎng)絡(luò)或直接連線連接,以及無(wú)線介質(zhì),如聲學(xué)、RF、紅外和其它無(wú)線介質(zhì)。上述任一的組合也應(yīng)當(dāng)包括在計(jì)算機(jī)可讀介質(zhì)的范圍之內(nèi)。
系統(tǒng)存儲(chǔ)器130包括以易失性和/或非易失性存儲(chǔ)器形式的計(jì)算機(jī)存儲(chǔ)介質(zhì),如只讀存儲(chǔ)器(ROM)131和隨機(jī)存取存儲(chǔ)器(RAM)132?;据斎?輸出系統(tǒng)133(BIOS)包括如在啟動(dòng)時(shí)幫助在計(jì)算機(jī)110內(nèi)的元件之間傳輸信息的基本例程,通常儲(chǔ)存在ROM 131中。RAM 132通常包含處理單元120立即可訪問(wèn)或者當(dāng)前正在操作的數(shù)據(jù)和/或程序模塊。作為示例而非局限,圖1示出了操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù)137。
計(jì)算機(jī)110也可包括其它可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)。僅作示例,圖2示出了對(duì)不可移動(dòng)、非易失性磁介質(zhì)進(jìn)行讀寫的硬盤驅(qū)動(dòng)器141、對(duì)可移動(dòng)、非易失性磁盤152進(jìn)行讀寫的磁盤驅(qū)動(dòng)器151以及對(duì)可移動(dòng)、非易失性光盤156,如CD ROM或其它光介質(zhì)進(jìn)行讀寫的光盤驅(qū)動(dòng)器155??梢栽谑纠圆僮鳝h(huán)境中使用的其它可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于,磁帶盒、閃存卡、數(shù)字多功能盤、數(shù)字視頻帶、固態(tài)RAM、固態(tài)ROM等等。硬盤驅(qū)動(dòng)器141通常通過(guò)不可移動(dòng)存儲(chǔ)器接口,如接口140連接到系統(tǒng)總線121,磁盤驅(qū)動(dòng)器151和光盤驅(qū)動(dòng)器155通常通過(guò)可移動(dòng)存儲(chǔ)器接口,如接口150連接到系統(tǒng)總線121。
上文討論并在圖2示出的驅(qū)動(dòng)器及其關(guān)聯(lián)的計(jì)算機(jī)存儲(chǔ)介質(zhì)為計(jì)算機(jī)110提供了計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲(chǔ)。例如,在圖2中,示出硬盤驅(qū)動(dòng)器141儲(chǔ)存操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù)147。注意,這些組件可以與操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù)137相同,也可以與它們不同。這里對(duì)操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù)147給予不同的標(biāo)號(hào)來(lái)說(shuō)明至少它們是不同的副本。用戶可以通過(guò)輸入設(shè)備,如鍵盤162和定點(diǎn)設(shè)備161(通常指鼠標(biāo)、跟蹤球或觸摸板)向計(jì)算機(jī)110輸入命令和信息。其它輸入設(shè)備(未示出)可包括麥克風(fēng)、操縱桿、游戲墊、圓盤式衛(wèi)星天線、掃描儀等等。這些和其它輸入設(shè)備通常通過(guò)耦合至系統(tǒng)總線的用戶輸入接口160連接至處理單元120,但是也可以通過(guò)其它接口和總線結(jié)構(gòu)連接,如并行端口、游戲端口或通用串行總線(USB)。監(jiān)視器191或其它類型的顯示設(shè)備也通過(guò)接口,如視頻接口190連接至系統(tǒng)總線121。除監(jiān)視器之外,計(jì)算機(jī)也可包括其它外圍輸出設(shè)備,如揚(yáng)聲器197和打印機(jī)196,它們通過(guò)輸出外圍接口195連接。
計(jì)算機(jī)110可以在使用到一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī),如遠(yuǎn)程計(jì)算機(jī)180的邏輯連接的網(wǎng)絡(luò)化環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)180可以是個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其它公用網(wǎng)絡(luò)節(jié)點(diǎn),并通常包括許多或所有相對(duì)于計(jì)算機(jī)110所描述的元件,盡管在圖2中僅示出了存儲(chǔ)器存儲(chǔ)設(shè)備181。圖2描述的邏輯連接包括局域網(wǎng)(LAN)171和廣域網(wǎng)(WAN)173,但也可包括其它網(wǎng)絡(luò)。這類網(wǎng)絡(luò)環(huán)境常見于辦公室、企業(yè)范圍計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)以及因特網(wǎng)。
當(dāng)在LAN網(wǎng)絡(luò)環(huán)境中使用時(shí),計(jì)算機(jī)110通過(guò)網(wǎng)絡(luò)接口或適配器170連接至LAN 171。當(dāng)在WAN網(wǎng)絡(luò)環(huán)境中使用時(shí),計(jì)算機(jī)110可包括調(diào)制解調(diào)器172或用于通過(guò)WAN 173,如因特網(wǎng)建立通信的其它裝置。調(diào)制解調(diào)器172可以是內(nèi)置或外置的,通過(guò)用戶輸入接口160或其它適當(dāng)?shù)臋C(jī)制連接至系統(tǒng)總線121。在網(wǎng)絡(luò)化環(huán)境中,相對(duì)于計(jì)算機(jī)110所描述的程序模塊或其部分可儲(chǔ)存在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。作為示例而非局限,圖2示出遠(yuǎn)程應(yīng)用程序185駐留在存儲(chǔ)器設(shè)備181上??梢岳斫?,示出的網(wǎng)絡(luò)連接是示例性的,也可以使用在計(jì)算機(jī)之間建立通信鏈路的其它裝置。
外部元數(shù)據(jù)處理系統(tǒng)當(dāng)創(chuàng)建數(shù)據(jù)流時(shí),為數(shù)據(jù)流標(biāo)識(shí)輸入和輸出數(shù)據(jù)集合。查詢數(shù)據(jù)流的這些輸入和輸出數(shù)據(jù)集合,并且檢索外部元數(shù)據(jù)(關(guān)于用于數(shù)據(jù)流的外部數(shù)據(jù)源的元數(shù)據(jù))并對(duì)每一數(shù)據(jù)集合儲(chǔ)存。數(shù)據(jù)集合的元數(shù)據(jù)描述了數(shù)據(jù)集合中可用的信息。
在一個(gè)實(shí)施例中,輸入或輸出數(shù)據(jù)集合包括記錄信息。對(duì)于每一記錄,儲(chǔ)存多個(gè)列。對(duì)數(shù)據(jù)集合檢索的外部元數(shù)據(jù)將對(duì)數(shù)據(jù)集合中可用的每一列儲(chǔ)存描述以下列的各種元數(shù)據(jù)數(shù)據(jù)類型儲(chǔ)存在列中的數(shù)據(jù)的類型長(zhǎng)度儲(chǔ)存在列中的數(shù)據(jù)的長(zhǎng)度精度儲(chǔ)存在列中的數(shù)據(jù)的精度代碼頁(yè)如果列的數(shù)據(jù)類型是基于字符的,則為儲(chǔ)存在列中的數(shù)據(jù)的代碼頁(yè)。代碼頁(yè)是其中向代碼頁(yè)中的每一字符分配數(shù)字值的字符的有序集合。
標(biāo)度如果數(shù)據(jù)本質(zhì)上是數(shù)字的,則為儲(chǔ)存在列中的數(shù)據(jù)的標(biāo)度。標(biāo)度是數(shù)據(jù)的小數(shù)點(diǎn)右邊的數(shù)字位數(shù)。
在其它實(shí)施例中,也可儲(chǔ)存描述可用列的元數(shù)據(jù)的其它變化。
該外部元數(shù)據(jù)最初在設(shè)置或配置數(shù)據(jù)流時(shí)儲(chǔ)存。外部元數(shù)據(jù)的第一版本描述了當(dāng)設(shè)計(jì)數(shù)據(jù)流時(shí)存在的數(shù)據(jù)集合。然后可在運(yùn)行時(shí)對(duì)數(shù)據(jù)流使用外部元數(shù)據(jù),以確定是否對(duì)數(shù)據(jù)流發(fā)生了改變。如下文所描述的,可通過(guò)重新同步來(lái)更新外部元數(shù)據(jù)。
確認(rèn)和重新同步當(dāng)要使用數(shù)據(jù)流時(shí),可使用外部元數(shù)據(jù)來(lái)確認(rèn)數(shù)據(jù)流對(duì)當(dāng)前時(shí)刻存在的數(shù)據(jù)集合的使用。以此方式,可檢測(cè)到對(duì)數(shù)據(jù)集合的任何相關(guān)改變。另外,可使用確認(rèn)信息來(lái)確定如何可解決所檢測(cè)到的任何改變。
圖3是依照本發(fā)明的一個(gè)實(shí)施例,使用至少一個(gè)外部數(shù)據(jù)文件準(zhǔn)備關(guān)于數(shù)據(jù)流的數(shù)據(jù)流信息的方法的流程圖。如圖3所示,在步驟300,儲(chǔ)存數(shù)據(jù)流模型。該數(shù)據(jù)流模塊包括描述數(shù)據(jù)流以及描述數(shù)據(jù)流中來(lái)自多個(gè)外部數(shù)據(jù)文件(數(shù)據(jù)集合)的每一個(gè)的至少一個(gè)列的使用的信息。在步驟310,儲(chǔ)存元數(shù)據(jù)。儲(chǔ)存的外部元數(shù)據(jù)描述了外部數(shù)據(jù)文件/數(shù)據(jù)集合中存在的列。然后,在步驟320,使用儲(chǔ)存的元數(shù)據(jù)來(lái)確定數(shù)據(jù)流的模型和外部數(shù)據(jù)文件是否一致。這被稱為確認(rèn)。
確認(rèn)可以是連接或斷開的。連接的確認(rèn)在數(shù)據(jù)集合可用(連接)時(shí)發(fā)生,并可被查詢以確定關(guān)于數(shù)據(jù)集合的內(nèi)容的信息,并將其與儲(chǔ)存的外部元數(shù)據(jù)比較。連接的確認(rèn)確定了當(dāng)前數(shù)據(jù)集合的每一個(gè)的相關(guān)狀態(tài)是否在外部元數(shù)據(jù)中令人滿意地表示,或者是否由于數(shù)據(jù)集合中的某一改變或破壞而存在問(wèn)題。在一個(gè)實(shí)施例中,確定每一數(shù)據(jù)集合的確認(rèn)狀態(tài)。如果任一數(shù)據(jù)集合被分配了指示存在問(wèn)題的確認(rèn)狀態(tài),則向用戶查詢,以確定應(yīng)當(dāng)采取什么行動(dòng)。另外,連接的確認(rèn)也將每一數(shù)據(jù)集合的相關(guān)狀態(tài)與數(shù)據(jù)流所需的信息進(jìn)行比較。再一次,這一狀態(tài)信息用于檢測(cè)數(shù)據(jù)集合中在數(shù)據(jù)流運(yùn)行時(shí)導(dǎo)致問(wèn)題的改變。
斷開的確認(rèn)將外部元數(shù)據(jù)與數(shù)據(jù)流所需的信息進(jìn)行比較,而不參考數(shù)據(jù)集合中的任何改變。用戶可例如在數(shù)據(jù)集合不可用時(shí)選擇執(zhí)行斷開的確認(rèn)。由此,例如,當(dāng)從向用戶提供對(duì)數(shù)據(jù)集合的訪問(wèn)的網(wǎng)絡(luò)斷開時(shí),缺少到數(shù)據(jù)集合的當(dāng)前連接的用戶仍可執(zhí)行斷開的確認(rèn)。這一確認(rèn)將允許用戶標(biāo)識(shí)對(duì)數(shù)據(jù)流的潛在的有問(wèn)題的改變,而無(wú)需到數(shù)據(jù)集合的連接。
重新同步改變數(shù)據(jù)流,以維持其與當(dāng)前數(shù)據(jù)集合(在聯(lián)機(jī)的重新同步的情況下)或與當(dāng)前儲(chǔ)存的外部元數(shù)據(jù)(斷開的重新同步)的兼容性。作出修補(bǔ),它最小化了對(duì)數(shù)據(jù)流中剩余對(duì)象的改變,并最小化了必要的用戶交互。
連接的確認(rèn)和重新同步如所討論的,當(dāng)發(fā)生連接的確認(rèn)時(shí),再一次查詢數(shù)據(jù)集合,以確定對(duì)于該數(shù)據(jù)連接外部元數(shù)據(jù)是什么。對(duì)該數(shù)據(jù)集合的儲(chǔ)存的外部元數(shù)據(jù)作出比較。如果存在差異,則它們都因此被檢測(cè)。
如表1中所示,在確認(rèn)時(shí)可出現(xiàn)若干情形
表1連接的確認(rèn)-在將數(shù)據(jù)集合與儲(chǔ)存的外部元數(shù)據(jù)比較的確認(rèn)時(shí)的可能情形在第一情形中,列存在于數(shù)據(jù)集合中,但不存在于儲(chǔ)存的外部元數(shù)據(jù)中。由此,推論是,當(dāng)創(chuàng)建外部元數(shù)據(jù)時(shí)的確存在的列已從數(shù)據(jù)集合中刪除。在第二情形中,在收集儲(chǔ)存的外部元數(shù)據(jù)時(shí)不存在的列現(xiàn)在存在于數(shù)據(jù)集合中,由此,推論是,列被添加到數(shù)據(jù)集合。在第三和第四情形中,列存在于數(shù)據(jù)集合中,也存在于儲(chǔ)存的外部元數(shù)據(jù)中。在第三情形中,在儲(chǔ)存的外部元數(shù)據(jù)中收集的類型信息與數(shù)據(jù)集合中的類型信息一致。由此,沒(méi)有檢測(cè)到外部元數(shù)據(jù)中對(duì)列的改變。然而,在第四情形中,列具有數(shù)據(jù)集合中改變的數(shù)據(jù)類型。在這一情形中,在一個(gè)實(shí)施例中,將向用戶通知該不一致性。在一個(gè)實(shí)施例中,可給予用戶修補(bǔ)儲(chǔ)存的外部元數(shù)據(jù)中的數(shù)據(jù)類型的機(jī)會(huì)。
另外,在一個(gè)實(shí)施例中,也參考由數(shù)據(jù)流對(duì)數(shù)據(jù)集合實(shí)際使用的列來(lái)執(zhí)行確認(rèn)。可出現(xiàn)的情形在表2中示出
表2連接的確認(rèn)-在將數(shù)據(jù)集合與數(shù)據(jù)流信息比較的確認(rèn)時(shí)的可能情形由此,如可在表2的第一情形中看到的,當(dāng)列存在于數(shù)據(jù)流中而不存在于數(shù)據(jù)集合中時(shí),出現(xiàn)確認(rèn)問(wèn)題。數(shù)據(jù)流中使用的列不存在于數(shù)據(jù)集合中。在這一情形中,在一個(gè)實(shí)施例中,請(qǐng)求用戶輸入以解決確認(rèn)問(wèn)題。
在第二和第三情形中,未遇到任何確認(rèn)問(wèn)題。數(shù)據(jù)集合中的列未在數(shù)據(jù)流中被引用,或者數(shù)據(jù)集合中的列在數(shù)據(jù)流中被引用,且所有的類型信息都對(duì)應(yīng)。在這些情形中,未遇到確認(rèn)問(wèn)題?;蛘吡胁辉跀?shù)據(jù)流中使用,或列被使用且類型信息如所期望的。
在第四情形中,列存在于數(shù)據(jù)集合中,并在數(shù)據(jù)流中被引用,然而,類型信息改變。在這一情況下,在一個(gè)實(shí)施例中,作出解決不一致性的嘗試。如果類型兼容,使得存在可解決任何類型不一致性的轉(zhuǎn)換,則可使用該轉(zhuǎn)化,并因此解決了不一致性。如果類型兼容,但是情況可以由數(shù)據(jù)流以某一其它方式(例如,通過(guò)數(shù)據(jù)流中實(shí)現(xiàn)的方法)來(lái)修補(bǔ),則該不一致性也是可解決的。然而,如果類型不兼容,且情況不能被修補(bǔ),則由于不兼容性確認(rèn)不能完成。在一個(gè)實(shí)施例中,提示用戶解決該不兼容性。
作為確認(rèn)的結(jié)果,可返回確認(rèn)狀態(tài)。例如,在一個(gè)實(shí)施例中,確認(rèn)狀態(tài)ISVALID反映了確認(rèn)沒(méi)有問(wèn)題。確認(rèn)狀態(tài)ISBROKEN指示存在問(wèn)題,但是該問(wèn)題可由用戶或通過(guò)數(shù)據(jù)流中的方法來(lái)解決。例如,如上所述,可解決類型不一致性的類型不一致性轉(zhuǎn)換可以是可用的。確認(rèn)狀態(tài)NEEDSNEWMETADATA指示應(yīng)當(dāng)執(zhí)行重新同步(下文描述)。確認(rèn)狀態(tài)ISCORRUPT指示不能被簡(jiǎn)單地解決的問(wèn)題。
當(dāng)數(shù)據(jù)集合改變時(shí),儲(chǔ)存的元數(shù)據(jù)反映了在先前的時(shí)刻數(shù)據(jù)集合的狀態(tài)。重新同步將儲(chǔ)存的外部元數(shù)據(jù)與數(shù)據(jù)集合信息(連接的重新同步)或數(shù)據(jù)流信息(斷開的重新同步)重新同步。
對(duì)于連接的重新同步,改變儲(chǔ)存的外部元數(shù)據(jù)以與找到的數(shù)據(jù)集合信息協(xié)調(diào)。在一個(gè)實(shí)施例中,當(dāng)發(fā)現(xiàn)數(shù)據(jù)集合中存在儲(chǔ)存的外部元數(shù)據(jù)中未找到的列時(shí),將關(guān)于該列的信息添加到儲(chǔ)存的外部元數(shù)據(jù)中。當(dāng)列存在于儲(chǔ)存的外部元數(shù)據(jù)和數(shù)據(jù)集合中,但是類型信息已改變,則用來(lái)自數(shù)據(jù)集合的新類型信息更新儲(chǔ)存的外部元數(shù)據(jù)。
類似地,在連接的重新同步中,更新數(shù)據(jù)流以反映數(shù)據(jù)集合信息的改變。當(dāng)數(shù)據(jù)流中引用的列在數(shù)據(jù)集合中不再可用時(shí),從數(shù)據(jù)流中刪除該列。另外,如上文參考確認(rèn)所討論的,當(dāng)對(duì)于在儲(chǔ)存的外部元數(shù)據(jù)中找到信息的列改變了類型時(shí),可以有解決差異的方法,并且重新同步中的差異可被解決(如果可能的話)。在一個(gè)實(shí)施例中,可以調(diào)用數(shù)據(jù)流的所展示的方法,以解決不一致性,并且數(shù)據(jù)流被改變。在另一實(shí)施例中,向用戶作出解決不一致性的請(qǐng)求。
斷開的確認(rèn)和重新同步如所討論的,當(dāng)發(fā)生斷開的確認(rèn)時(shí),不查詢數(shù)據(jù)集合。將儲(chǔ)存的外部元數(shù)據(jù)與數(shù)據(jù)流比較,以確保它們兼容。可能的情形在表3中示出
表3連接的確認(rèn)-在將儲(chǔ)存的外部元數(shù)據(jù)與數(shù)據(jù)流信息進(jìn)行比較的確認(rèn)時(shí)的可能情形由此,如可以在表3的第一情形中見到的,當(dāng)列存在于數(shù)據(jù)流中但不存在于儲(chǔ)存的外部元數(shù)據(jù)中,出現(xiàn)確認(rèn)問(wèn)題。數(shù)據(jù)流中使用的列不被儲(chǔ)存的外部元數(shù)據(jù)指示為存在于數(shù)據(jù)集合中。在這一情形中,在一個(gè)實(shí)施例中,請(qǐng)求用戶輸入,以解決確認(rèn)問(wèn)題。
在第二和第三情形中,未遇到確認(rèn)問(wèn)題。被指示為存在于儲(chǔ)存的外部元數(shù)據(jù)中的列不在數(shù)據(jù)流中被引用,或者被指示為存在于儲(chǔ)存的外部元數(shù)據(jù)中的列在數(shù)據(jù)流中被引用,且所有的類型信息都對(duì)應(yīng)。在這些情形中,未遇到確認(rèn)問(wèn)題?;蛘吡胁辉跀?shù)據(jù)流中使用,或者使用了列且類型信息是所期望的。
在第四情形中,列存在于儲(chǔ)存的外部元數(shù)據(jù)中且在數(shù)據(jù)流中被引用,然而類型信息已改變。在這一情況下,在一個(gè)實(shí)施例中,作出解決不一致性的嘗試。如果類型兼容,使得存在可解決任何類型不一致性的轉(zhuǎn)換,則使用該轉(zhuǎn)換,并因此解決不一致性。如果類型不兼容,但情況可由數(shù)據(jù)流以某一其它方式(例如,通過(guò)數(shù)據(jù)流組件的接口)來(lái)修補(bǔ),則該不一致性也是可解決的。然而,如果類型不兼容,且情況不能被修補(bǔ),則由于不兼容性確認(rèn)不能完成。在一個(gè)實(shí)施例中,提示用戶解決不兼容性。
圖4是依照本發(fā)明的一個(gè)實(shí)施例評(píng)估數(shù)據(jù)流模型的流程圖。在步驟400,檢索描述外部數(shù)據(jù)文件的元數(shù)據(jù)。在步驟410,使用該數(shù)據(jù)來(lái)確定數(shù)據(jù)流模型和元數(shù)據(jù)是否一致。
當(dāng)執(zhí)行斷開的重新同步而非斷開的確認(rèn)時(shí),改變數(shù)據(jù)流以與儲(chǔ)存的外部元數(shù)據(jù)中反映的數(shù)據(jù)集合的理解協(xié)調(diào)。由此,在一個(gè)實(shí)施例中,如果列存在于數(shù)據(jù)流中而不存在于儲(chǔ)存的外部元數(shù)據(jù)中,則刪除數(shù)據(jù)流中的列以反映對(duì)該列在數(shù)據(jù)集合中不可用的理解,如由儲(chǔ)存的外部元數(shù)據(jù)中的列的缺乏所指示的。另外,如果數(shù)據(jù)流和儲(chǔ)存的外部元數(shù)據(jù)包含列的不同類型信息,則解決差異(如果可能的話)。在一個(gè)實(shí)施例中,可調(diào)用數(shù)據(jù)流的所展示的方法來(lái)解決不一致性,并且改變數(shù)據(jù)流。在另一實(shí)施例中,向用戶作出解決不一致性的請(qǐng)求。
結(jié)論注意,上述示例僅為了解釋的目的而提供,并且決不被解釋為限制本發(fā)明。盡管參考各種實(shí)施例描述了本發(fā)明,可以理解,此處所使用的詞語(yǔ)是描述和說(shuō)明的詞語(yǔ),而非限制的詞語(yǔ)。此外,盡管參考特定的裝置、材料和實(shí)施例描述了本發(fā)明,然而本發(fā)明并不打算限于此處所解釋的細(xì)節(jié);相反,本發(fā)明延及如在所附權(quán)利要求書范圍內(nèi)的所有功能上等效的結(jié)構(gòu)、方法和使用。從本說(shuō)明書的教導(dǎo)中獲益的本領(lǐng)域的技術(shù)人員可以在不脫離本發(fā)明的各方面的范圍和精神的情況下對(duì)其實(shí)現(xiàn)各種修改并可作出改變。
權(quán)利要求
1.一種使用至少一個(gè)外部數(shù)據(jù)文件準(zhǔn)備關(guān)于數(shù)據(jù)流的數(shù)據(jù)流信息的方法,每一所述外部數(shù)據(jù)文件包括信息列,所述方法包括儲(chǔ)存一數(shù)據(jù)流模型,所述數(shù)據(jù)流模型包括對(duì)所述至少一個(gè)外部數(shù)據(jù)文件的每一個(gè)描述來(lái)自所述外部數(shù)據(jù)文件的至少一個(gè)列的使用的使用數(shù)據(jù);儲(chǔ)存比較描述所述至少一個(gè)外部數(shù)據(jù)文件的每一個(gè)的至少一個(gè)列的數(shù)據(jù)的元數(shù)據(jù);以及使用所述儲(chǔ)存的元數(shù)據(jù)來(lái)確定所述數(shù)據(jù)流模型是否與所述外部數(shù)據(jù)文件相一致。
2.如權(quán)利要求1所述的方法,其特征在于,描述至少一個(gè)列的所述數(shù)據(jù)包括涉及所述至少一個(gè)列的類型數(shù)據(jù)。
3.如權(quán)利要求1所述的方法,其特征在于,使用所述儲(chǔ)存的元數(shù)據(jù)來(lái)確定所述數(shù)據(jù)流模型是否與所述外部數(shù)據(jù)文件相一致包括對(duì)于每一外部數(shù)據(jù)文件,驗(yàn)證所述儲(chǔ)存的元數(shù)據(jù)與所述外部數(shù)據(jù)文件的當(dāng)前狀態(tài)相一致。
4.如權(quán)利要求3所述的方法,其特征在于,驗(yàn)證所述儲(chǔ)存的元數(shù)據(jù)與所述外部數(shù)據(jù)文件的當(dāng)前狀態(tài)相一致包括確定所述儲(chǔ)存的元數(shù)據(jù)中描述的每一列是否存在于所述外部數(shù)據(jù)文件中;以及確定所述外部數(shù)據(jù)文件中的每一列是否在所述儲(chǔ)存的元數(shù)據(jù)中描述。
5.如權(quán)利要求4所述的方法,其特征在于,描述至少一個(gè)列的所述數(shù)據(jù)包括描述儲(chǔ)存在列中的數(shù)據(jù)的類型的類型數(shù)據(jù),并且其中,驗(yàn)證所述儲(chǔ)存的元數(shù)據(jù)與所述外部數(shù)據(jù)文件的當(dāng)前狀態(tài)相一致還包括確定所述儲(chǔ)存的元數(shù)據(jù)中描述的每一列的所述類型數(shù)據(jù)是否與所述外部數(shù)據(jù)文件中的所述列的類型數(shù)據(jù)相一致。
6.如權(quán)利要求3所述的方法,其特征在于,使用所述儲(chǔ)存的元數(shù)據(jù)來(lái)確定所述數(shù)據(jù)流模型和所述外部數(shù)據(jù)文件是否相一致還包括提供一指示所述儲(chǔ)存的元數(shù)據(jù)是否與所述外部數(shù)據(jù)文件的所述當(dāng)前狀態(tài)相一致的確認(rèn)狀態(tài)。
7.如權(quán)利要求3所述的方法,其特征在于,使用所述儲(chǔ)存的元數(shù)據(jù)來(lái)確定所述數(shù)據(jù)流模型與所述外部數(shù)據(jù)文件是否相一致還包括如果所述儲(chǔ)存的元數(shù)據(jù)與所述外部數(shù)據(jù)文件的所述當(dāng)前狀態(tài)不一致,則解決所述不一致性。
8.如權(quán)利要求7所述的方法,其特征在于,所述不一致性的所述解決包括向用戶查詢以解決所述不一致性。
9.如權(quán)利要求7所述的方法,其特征在于,所述不一致性的所述解決包括使用所述數(shù)據(jù)流的接口來(lái)解決所述不一致性。
10.如權(quán)利要求1所述的方法,其特征在于,還包括重新同步所述儲(chǔ)存的元數(shù)據(jù)以包括反映每一所述外部數(shù)據(jù)文件中儲(chǔ)存的當(dāng)前數(shù)據(jù)的數(shù)據(jù)。
11.如權(quán)利要求1所述的方法,其特征在于,還包括通過(guò)確定給定每一所述外部數(shù)據(jù)文件的當(dāng)前狀態(tài),所述使用數(shù)據(jù)中描述的所述外部數(shù)據(jù)文件的至少一個(gè)列的每一所述使用是否可能,來(lái)確定所述數(shù)據(jù)流模型與所述外部數(shù)據(jù)文件是否相一致。
12.如權(quán)利要求11所述的方法,其特征在于,通過(guò)確定給定每一所述外部數(shù)據(jù)文件的當(dāng)前狀態(tài),所述使用數(shù)據(jù)中描述的所述外部數(shù)據(jù)文件的至少一個(gè)列的每一所述使用是否可能,來(lái)確定所述數(shù)據(jù)流模型與所述外部數(shù)據(jù)文件是否相一致包括提供一指示所述數(shù)據(jù)流模型是否與所述外部數(shù)據(jù)文件的所述當(dāng)前狀態(tài)相一致的確認(rèn)狀態(tài)。
13.如權(quán)利要求11所述的方法,其特征在于,通過(guò)確定給定每一所述外部數(shù)據(jù)文件的當(dāng)前狀態(tài),所述使用數(shù)據(jù)中描述的所述外部數(shù)據(jù)集文件的至少一個(gè)列的每一所述使用是否可能,來(lái)確定所述數(shù)據(jù)流模型與所述外部數(shù)據(jù)文件是否相一致包括如果所述儲(chǔ)存的元數(shù)據(jù)與所述外部數(shù)據(jù)文件的所述當(dāng)前狀態(tài)不一致,則解決所述不一致性。
14.如權(quán)利要求13所述的方法,其特征在于,所述不一致性的所述解決包括查詢用戶以解決所述不一致性。
15.如權(quán)利要求13所述的方法,其特征在于,所述不一致性的所述解決包括使用所述數(shù)據(jù)流的接口來(lái)解決所述不一致性。
16.如權(quán)利要求11所述的方法,還包括重新同步所述數(shù)據(jù)流以反映所述外部數(shù)據(jù)文件的所述當(dāng)前狀態(tài)。
17.如權(quán)利要求1所述的方法,其特征在于,所述使用所述儲(chǔ)存的元數(shù)據(jù)來(lái)確定所述數(shù)據(jù)流模型是否與所述外部數(shù)據(jù)文件相一致包括驗(yàn)證所述儲(chǔ)存的元數(shù)據(jù)與所述數(shù)據(jù)流相一致。
18.如權(quán)利要求17所述的方法,其特征在于,所述驗(yàn)證所述儲(chǔ)存的元數(shù)據(jù)與所述數(shù)據(jù)流相一致包括確定所述使用數(shù)據(jù)中描述的所述外部數(shù)據(jù)文件的至少一個(gè)列的每一所述使用是否與所述儲(chǔ)存的元數(shù)據(jù)相一致。
19.如權(quán)利要求18所述的方法,其特征在于,還包括如果所述使用數(shù)據(jù)中描述的所述外部數(shù)據(jù)文件的至少一個(gè)列的每一所述使用與所述儲(chǔ)存的元數(shù)據(jù)不一致,則解決所述不一致性。
20.攜帶用于執(zhí)行權(quán)利要求1所述的方法的計(jì)算機(jī)可執(zhí)行指令的操作系統(tǒng)、其上儲(chǔ)存多個(gè)計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)、協(xié)處理設(shè)備、計(jì)算設(shè)備以及已調(diào)制數(shù)據(jù)信號(hào)的至少一個(gè)。
21.一種評(píng)估數(shù)據(jù)流模型的方法,所述數(shù)據(jù)流模型包括關(guān)于數(shù)據(jù)流的信息,所述信息包括對(duì)至少一個(gè)外部數(shù)據(jù)文件描述來(lái)自所述外部數(shù)據(jù)文件的至少一個(gè)列的使用的使用數(shù)據(jù),所述方法包括檢索包括描述所述至少一個(gè)外部數(shù)據(jù)文件的每一個(gè)的至少一個(gè)列的數(shù)據(jù)的元數(shù)據(jù);以及使用所述元數(shù)據(jù)來(lái)確定所述數(shù)據(jù)流模型與所述元數(shù)據(jù)是否相一致。
22.如權(quán)利要求21所述的方法,其特征在于,使用所述儲(chǔ)存的元數(shù)據(jù)來(lái)確定所述數(shù)據(jù)流模型與所述元數(shù)據(jù)是否相一致包括提供一指示所述儲(chǔ)存的元數(shù)據(jù)是否與所述元數(shù)據(jù)相一致的確認(rèn)狀態(tài)。
23.如權(quán)利要求21所述的方法,其特征在于,使用所述元數(shù)據(jù)來(lái)確定所述數(shù)據(jù)流模型與所述元數(shù)據(jù)是否相一致還包括如果所述儲(chǔ)存的元數(shù)據(jù)與所述外部數(shù)據(jù)文件的所述當(dāng)前狀態(tài)不一致,則解決所述不一致性。
24.如權(quán)利要求23所述的方法,其特征在于,所述不一致性的所述解決包括查詢所述用戶以解決所述不一致性。
25.如權(quán)利要求23所述的方法,其特征在于,所述不一致性的所述解決包括使用所述數(shù)據(jù)流的接口來(lái)解決所述不一致性。
26.如權(quán)利要求21所述的方法,其特征在于,還包括重新同步所述儲(chǔ)存的元數(shù)據(jù)以包括反映儲(chǔ)存在每一所述外部數(shù)據(jù)文件中的當(dāng)前數(shù)據(jù)的數(shù)據(jù)。
27.一種用于使用至少一個(gè)外部數(shù)據(jù)文件準(zhǔn)備關(guān)于數(shù)據(jù)流的數(shù)據(jù)流信息的數(shù)據(jù)流建模系統(tǒng),每一所述外部數(shù)據(jù)文件包括信息列,所述數(shù)據(jù)流建模系統(tǒng)包括儲(chǔ)存數(shù)據(jù)流模型的數(shù)據(jù)流模型存儲(chǔ),所述數(shù)據(jù)流模型包括對(duì)所述至少一個(gè)外部數(shù)據(jù)文件的每一個(gè)描述來(lái)自所述外部數(shù)據(jù)文件的至少一個(gè)列的使用的使用數(shù)據(jù);儲(chǔ)存元數(shù)據(jù)的元數(shù)據(jù)存儲(chǔ),包括描述所述至少一個(gè)外部數(shù)據(jù)文件的每一個(gè)的至少一個(gè)列的數(shù)據(jù);以及一致性核查器,它使用所述儲(chǔ)存的元數(shù)據(jù)來(lái)確定所述數(shù)據(jù)流模型與所述外部數(shù)據(jù)文件是否相一致。
28.如權(quán)利要求27所述的數(shù)據(jù)流建模系統(tǒng),其特征在于,描述至少一個(gè)列的所述數(shù)據(jù)包括涉及所述至少一個(gè)列的類型數(shù)據(jù)。
29.如權(quán)利要求27所述的數(shù)據(jù)流建模系統(tǒng),其特征在于,所述一致性核查器對(duì)每一外部數(shù)據(jù)文件驗(yàn)證所述儲(chǔ)存的元數(shù)據(jù)是否與所述外部數(shù)據(jù)文件的當(dāng)前狀態(tài)相一致。
30.如權(quán)利要求29所述的數(shù)據(jù)流建模系統(tǒng),其特征在于,所述一致性核查器包括確認(rèn)狀態(tài)確定器,用于提供一指示所述儲(chǔ)存的元數(shù)據(jù)是否與所述外部數(shù)據(jù)文件的所述當(dāng)前狀態(tài)相一致的確認(rèn)狀態(tài)。
31.如權(quán)利要求27所述的數(shù)據(jù)流建模系統(tǒng),其特征在于,還包括元數(shù)據(jù)重新同步器,它修改所述儲(chǔ)存的元數(shù)據(jù)以包括反映儲(chǔ)存在每一所述外部數(shù)據(jù)文件中的當(dāng)前數(shù)據(jù)的數(shù)據(jù)。
32.如權(quán)利要求27所述的數(shù)據(jù)流建模系統(tǒng),其特征在于,所述一致性核查器包括一致性驗(yàn)證器,用于驗(yàn)證所述儲(chǔ)存的元數(shù)據(jù)與所述數(shù)據(jù)流相一致。
33.如權(quán)利要求32所述的數(shù)據(jù)流建模系統(tǒng),其特征在于,所述一致性驗(yàn)證器確定所述使用數(shù)據(jù)中描述的所述外部數(shù)據(jù)文件的至少一個(gè)列的每一所述使用是否與所述儲(chǔ)存的元數(shù)據(jù)相一致。
34.如權(quán)利要求32所述的數(shù)據(jù)流建模系統(tǒng),其特征在于,還包括解決器,用于如果所述使用數(shù)據(jù)中描述的所述外部數(shù)據(jù)文件的至少一個(gè)列的每一所述使用與所述儲(chǔ)存的元數(shù)據(jù)不一致,則解決所述不一致性。
35.一種用于評(píng)估數(shù)據(jù)流模型的數(shù)據(jù)流建模系統(tǒng),所述數(shù)據(jù)流模型包括關(guān)于數(shù)據(jù)流的信息,所述信息包括對(duì)至少一個(gè)外部數(shù)據(jù)文件的每一個(gè)描述來(lái)自所述外部數(shù)據(jù)文件的至少一個(gè)列的使用的使用數(shù)據(jù),所述數(shù)據(jù)流建模系統(tǒng)包括儲(chǔ)存元數(shù)據(jù)的元數(shù)據(jù)存儲(chǔ),包括描述所述至少一個(gè)外部數(shù)據(jù)文件的每一個(gè)的至少一個(gè)列的數(shù)據(jù);以及一致性核查器,它使用所述元數(shù)據(jù)來(lái)確定所述數(shù)據(jù)流模型與所述元數(shù)據(jù)是否相一致。
36.如權(quán)利要求35所述的數(shù)據(jù)流建模系統(tǒng),其特征在于,所述一致性核查器包括確認(rèn)狀態(tài)指示器,它指示所述儲(chǔ)存的元數(shù)據(jù)是否與所述元數(shù)據(jù)相一致。
37.如權(quán)利要求34所述的數(shù)據(jù)流建模系統(tǒng),其特征在于,還包括不一致性解決器,用于如果所述儲(chǔ)存的元數(shù)據(jù)與所述外部數(shù)據(jù)文件的所述當(dāng)前狀態(tài)不一致,則解決所述不一致性。
38.如權(quán)利要求35所述的數(shù)據(jù)流建模系統(tǒng),其特征在于,還包括重新同步器,用于重新同步所述儲(chǔ)存的元數(shù)據(jù)以包括反映儲(chǔ)存在每一所述外部數(shù)據(jù)文件中的當(dāng)前數(shù)據(jù)的數(shù)據(jù)。
全文摘要
數(shù)據(jù)流的操作通過(guò)提供數(shù)據(jù)流與它所工作的外部數(shù)據(jù)文件的一致性的確認(rèn)來(lái)改進(jìn),即使在面對(duì)那些外部數(shù)據(jù)文件的改變的情況下。儲(chǔ)存關(guān)于外部數(shù)據(jù)文件的元數(shù)據(jù)。由于外部數(shù)據(jù)文件可能改變,因此當(dāng)確定外部數(shù)據(jù)文件是否仍與數(shù)據(jù)流兼容時(shí)使用該元數(shù)據(jù)。在執(zhí)行這一確認(rèn)時(shí),元數(shù)據(jù)跟蹤外部數(shù)據(jù)文件中出現(xiàn)了什么改變,并允許更靈活地向用戶呈現(xiàn)選項(xiàng)或自動(dòng)修補(bǔ)數(shù)據(jù)流以與外部數(shù)據(jù)文件的改變相對(duì)應(yīng)。當(dāng)外部數(shù)據(jù)文件不可用時(shí),可使用儲(chǔ)存的元數(shù)據(jù)來(lái)將數(shù)據(jù)流確認(rèn)至關(guān)于外部數(shù)據(jù)文件的最后信息??蓪⑼獠吭獢?shù)據(jù)與數(shù)據(jù)流或外部數(shù)據(jù)文件重新同步,以提供更新的外部元數(shù)據(jù)供以后的確認(rèn)。
文檔編號(hào)G06F17/30GK1722137SQ200510082378
公開日2006年1月18日 申請(qǐng)日期2005年6月15日 優(yōu)先權(quán)日2004年7月15日
發(fā)明者J·K·豪威, J·R·本哈德特, T·T·李 申請(qǐng)人:微軟公司