相關(guān)申請的交叉引用
本申請要求于2015年2月11日提交的序號為62/114,684的美國申請的優(yōu)先權(quán)。
本說明書涉及用于過濾數(shù)據(jù)沿襲(datalineage)圖的沿襲標(biāo)簽。
背景技術(shù):
在數(shù)據(jù)處理系統(tǒng)中,某些類型的用戶通常期望能夠訪問貫穿系統(tǒng)的數(shù)據(jù)沿襲的視覺表示。這樣的“數(shù)據(jù)沿襲圖”可以包括系統(tǒng)中的數(shù)據(jù)和用于處理該數(shù)據(jù)實(shí)體的圖形表示以及它們之間的依賴關(guān)系。通常,在許多用途中,可以使用這些數(shù)據(jù)沿襲圖來降低風(fēng)險,驗證合規(guī)性義務(wù)(regulatorycomplianceobligation),提高業(yè)務(wù)流程效率以及保護(hù)數(shù)據(jù)。重要的是數(shù)據(jù)沿襲圖是正確且完整的。
能夠產(chǎn)生并顯示數(shù)據(jù)沿襲圖的一些系統(tǒng)能夠自動呈現(xiàn)端到端的數(shù)據(jù)沿襲圖,這些數(shù)據(jù)沿襲圖示出數(shù)據(jù)項的表示,并且顯示表示了用于消耗或生成這些數(shù)據(jù)項的處理實(shí)體的項的表示。在一些示例中,特定項上游的沿襲路徑有時稱為該項的“依賴性沿襲(dependencylineage)”,并且特定項下游的沿襲路徑有時稱為該項的“影響沿襲(impactlineage)”。在其他示例中,特定項上游的沿襲路徑被稱為“沿襲”或“依賴性”,并且特定項下游的沿襲路徑稱為“影響”或“影響分析”。如本文所使用的,“數(shù)據(jù)沿襲圖”可以包括相對于任意給定項的上游依賴性沿襲和/或下游影響性沿襲。能夠生成并顯示數(shù)據(jù)沿襲圖的一些系統(tǒng)允許用戶將數(shù)據(jù)沿襲圖中項的邏輯和/或物理組分解成單個元素。能夠生成并顯示數(shù)據(jù)沿襲圖的一些系統(tǒng)能夠通過豐富的數(shù)據(jù)信息(如數(shù)據(jù)質(zhì)量評分)來增強(qiáng)數(shù)據(jù)沿襲圖。
技術(shù)實(shí)現(xiàn)要素:
在一個方案中,通常,一種用于在計算系統(tǒng)中管理沿襲信息的方法,所述方法包括:在數(shù)據(jù)存儲系統(tǒng)中存儲有向圖的規(guī)范,所述有向圖的規(guī)范包括多個節(jié)點(diǎn)和有向鏈路,所述有向鏈路表示所述多個節(jié)點(diǎn)之間的相應(yīng)的沿襲關(guān)系,所述多個節(jié)點(diǎn)中的至少一些節(jié)點(diǎn)與多個標(biāo)簽標(biāo)識符中的一個或多個標(biāo)簽標(biāo)識符相關(guān)聯(lián),所述多個標(biāo)簽標(biāo)識符中的至少一個標(biāo)簽標(biāo)識符具有多個可能標(biāo)簽值;使用至少一個處理器來處理針對所述多個節(jié)點(diǎn)中第一節(jié)點(diǎn)的數(shù)據(jù)沿襲表示請求。所述處理包括:確定所述第一節(jié)點(diǎn)與所述多個標(biāo)簽標(biāo)識符中至少第一標(biāo)簽標(biāo)識符之間的關(guān)聯(lián)關(guān)系,并且確定第一子集,所述第一子集是所述第一標(biāo)簽標(biāo)識符的多個可能標(biāo)簽值中的至少一個標(biāo)簽值并且少于所述第一標(biāo)簽標(biāo)識符的多個可能標(biāo)簽值的全部標(biāo)簽值;以及沿著從所述第一節(jié)點(diǎn)開始的有向鏈路的第一沿襲路徑遍歷各節(jié)點(diǎn),以確定所述第一節(jié)點(diǎn)的數(shù)據(jù)沿襲。所述數(shù)據(jù)沿襲包括(1)依賴性沿襲和(2)影響沿襲中的一個或兩個,所述依賴性沿襲由所述第一節(jié)點(diǎn)上游的有向鏈路的單向上游沿襲路徑構(gòu)成,所述影響沿襲由所述第一節(jié)點(diǎn)下游的有向鏈路的單向下游沿襲路徑構(gòu)成。確定所述數(shù)據(jù)沿襲包括,對于每個被遍歷的節(jié)點(diǎn),至少部分基于與所述被遍歷的節(jié)點(diǎn)相關(guān)聯(lián)的任何標(biāo)簽標(biāo)識符或標(biāo)簽值,確定是將所述被遍歷的節(jié)點(diǎn)添加至所述數(shù)據(jù)沿襲還是將所述被遍歷的節(jié)點(diǎn)從所述數(shù)據(jù)沿襲中排除。
方案可以包括一個或多個下述特征。
確定所述數(shù)據(jù)沿襲包括:針對每個被遍歷的節(jié)點(diǎn):如果所述被遍歷的節(jié)點(diǎn)不與所述第一標(biāo)簽標(biāo)識符相關(guān)聯(lián),或者所述被遍歷的節(jié)點(diǎn)與所述第一標(biāo)簽標(biāo)識符相關(guān)聯(lián)且與所述第一子集的至少一個標(biāo)簽值相關(guān)聯(lián),則將所述被遍歷的節(jié)點(diǎn)添加至所述數(shù)據(jù)沿襲;或者如果所述被遍歷的節(jié)點(diǎn)與所述第一標(biāo)簽標(biāo)識符相關(guān)聯(lián)但不與所述第一標(biāo)簽標(biāo)識符的多個可能標(biāo)簽值中第一子集的至少一個標(biāo)簽值相關(guān)聯(lián),則將所述被遍歷的節(jié)點(diǎn)從所述數(shù)據(jù)沿襲中排除。
在從所述數(shù)據(jù)沿襲中排除所述被遍歷的節(jié)點(diǎn)時,終止所述第一沿襲路徑的遍歷。該方法可以包括:在遍歷所述多個節(jié)點(diǎn)中的各節(jié)點(diǎn)之前分析所述多個節(jié)點(diǎn),以確定與所述第一標(biāo)簽標(biāo)識符相關(guān)聯(lián)但不與所述第一標(biāo)簽標(biāo)識符的多個可能標(biāo)簽值第一子集中的至少一個標(biāo)簽值相關(guān)聯(lián)的所述多個節(jié)點(diǎn)的第一子集。確定是將所述被遍歷的節(jié)點(diǎn)添加至所述數(shù)據(jù)沿襲還是從所述數(shù)據(jù)沿襲中排除所述被遍歷的節(jié)點(diǎn)包括確定所述被遍歷的節(jié)點(diǎn)是否包括在所述多個節(jié)點(diǎn)的第一子集中。確定是否將所述被遍歷的節(jié)點(diǎn)添加至所述數(shù)據(jù)沿襲包括:如果所述被遍歷的節(jié)點(diǎn)不包括在所述多個節(jié)點(diǎn)的第一子集中,則將所述被遍歷的節(jié)點(diǎn)添加至所述數(shù)據(jù)沿襲;如果被遍歷的節(jié)點(diǎn)包括在所述多個節(jié)點(diǎn)的第一子集中,則從所述數(shù)據(jù)沿襲中排除所述被遍歷的節(jié)點(diǎn)。
所述多個節(jié)點(diǎn)中的至少一些節(jié)點(diǎn)嵌套在所述多個節(jié)點(diǎn)中的其他節(jié)點(diǎn)內(nèi)。與所述節(jié)點(diǎn)嵌套層級中較低級別的節(jié)點(diǎn)相關(guān)聯(lián)的標(biāo)簽標(biāo)識符及其相關(guān)聯(lián)的標(biāo)簽值的子集優(yōu)先于與節(jié)點(diǎn)嵌套層級中較高級別的節(jié)點(diǎn)相關(guān)聯(lián)的標(biāo)簽標(biāo)識符及其相關(guān)聯(lián)的標(biāo)簽值的子集。沿所述第一沿襲路徑遍歷多個節(jié)點(diǎn)包括從所述第一節(jié)點(diǎn)開始沿著與所述有向鏈路的方向相反的方向遍歷多個節(jié)點(diǎn)。
該方法還可以包括生成所述有向圖的規(guī)范,其中,所述多個節(jié)點(diǎn)中的一個或多個節(jié)點(diǎn)表示計算,所述多個節(jié)點(diǎn)中的一個或多個節(jié)點(diǎn)表示執(zhí)行計算的過程中通過所述計算接收或產(chǎn)生的數(shù)據(jù)元素,以及所述有向鏈路表示計算與數(shù)據(jù)元素之間的沿襲關(guān)系。所述多個節(jié)點(diǎn)中的一個或多個節(jié)點(diǎn)表示所述多個節(jié)點(diǎn)中的一個或多個其他節(jié)點(diǎn)的分組。所述第一標(biāo)簽標(biāo)識符的多個可能標(biāo)簽值的第一子集由與所述第一節(jié)點(diǎn)相關(guān)聯(lián)的一個或多個標(biāo)簽值構(gòu)成。
所述第一標(biāo)簽標(biāo)識符的多個可能標(biāo)簽值的第一子集由從用戶輸入所接收的一個或多個標(biāo)簽值構(gòu)成。該方法還可以包括:從所述第一節(jié)點(diǎn)開始沿有向鏈路的多個沿襲路徑遍歷多個節(jié)點(diǎn),以確定所述第一節(jié)點(diǎn)的數(shù)據(jù)沿襲,其中確定所述數(shù)據(jù)沿襲包括:對于每個被編列的節(jié)點(diǎn),至少部分基于與所述被遍歷的節(jié)點(diǎn)相關(guān)聯(lián)的任何標(biāo)簽標(biāo)識符或標(biāo)簽值,確定是將所述被遍歷的節(jié)點(diǎn)添加至所述數(shù)據(jù)沿襲,還是從所述數(shù)據(jù)沿襲中排除所述被遍歷的節(jié)點(diǎn)。該方法還包括:默認(rèn)將所述第一節(jié)點(diǎn)添加至所述數(shù)據(jù)沿襲。
在其他方案中,一般而言,提供了存儲在計算機(jī)可讀介質(zhì)上的軟件,用于管理計算系統(tǒng)中的沿襲信息,所述軟件包括用于使計算系統(tǒng)執(zhí)行以下操作的指令:在數(shù)據(jù)存儲系統(tǒng)中存儲有向圖的規(guī)范,所述有向圖的規(guī)范包括多個節(jié)點(diǎn)和有向鏈路,所述有向鏈路表示所述多個節(jié)點(diǎn)之間的相應(yīng)的沿襲關(guān)系,所述多個節(jié)點(diǎn)中的至少一些節(jié)點(diǎn)與多個標(biāo)簽標(biāo)識符中的一個或多個標(biāo)簽標(biāo)識符相關(guān)聯(lián),所述多個標(biāo)簽標(biāo)識符中的至少一個標(biāo)簽標(biāo)識符具有多個可能標(biāo)簽值;使用至少一個處理器來處理針對所述多個節(jié)點(diǎn)中第一節(jié)點(diǎn)的數(shù)據(jù)沿襲表示請求。所述處理包括:確定所述第一節(jié)點(diǎn)與所述多個標(biāo)簽標(biāo)識符中至少第一標(biāo)簽標(biāo)識符之間的關(guān)聯(lián)關(guān)系,并且確定第一子集,所述第一子集是所述第一標(biāo)簽標(biāo)識符的多個可能標(biāo)簽值中的至少一個標(biāo)簽值并且少于所述第一標(biāo)簽標(biāo)識符的多個可能標(biāo)簽值的全部標(biāo)簽值;以及沿著從所述第一節(jié)點(diǎn)開始的有向鏈路的第一沿襲路徑遍歷各節(jié)點(diǎn),以確定所述第一節(jié)點(diǎn)的數(shù)據(jù)沿襲,其中,所述數(shù)據(jù)沿襲包括(1)依賴性沿襲和(2)影響沿襲中的一個或兩個,所述依賴性沿襲由所述第一節(jié)點(diǎn)上游的有向鏈路的單向上游沿襲路徑構(gòu)成,所述影響沿襲由所述第一節(jié)點(diǎn)下游的有向鏈路的單向下游沿襲路徑構(gòu)成,其中確定所述數(shù)據(jù)沿襲包括,對于每個被遍歷的節(jié)點(diǎn),至少部分基于與所述被遍歷的節(jié)點(diǎn)相關(guān)聯(lián)的任何標(biāo)簽標(biāo)識符或標(biāo)簽值,確定是將所述被遍歷的節(jié)點(diǎn)添加至所述數(shù)據(jù)沿襲還是將所述被遍歷的節(jié)點(diǎn)從所述數(shù)據(jù)沿襲中排除。
在另一個方案中,一般而言,一種計算系統(tǒng),用于管理沿襲信息,所述計算系統(tǒng)包括:數(shù)據(jù)存儲系統(tǒng),用于存儲有向圖的規(guī)范,所述有向圖的規(guī)范包括多個節(jié)點(diǎn)和有向鏈路,所述有向鏈路表示所述多個節(jié)點(diǎn)之間的相應(yīng)的沿襲關(guān)系,所述多個節(jié)點(diǎn)中的至少一些節(jié)點(diǎn)與多個標(biāo)簽標(biāo)識符中的一個或多個標(biāo)簽標(biāo)識符相關(guān)聯(lián),所述多個標(biāo)簽標(biāo)識符中的至少一個標(biāo)簽標(biāo)識符具有多個可能標(biāo)簽值;以及至少一個處理器,配置為處理針對所述多個節(jié)點(diǎn)中第一節(jié)點(diǎn)的數(shù)據(jù)沿襲表示請求。所述處理包括:確定所述第一節(jié)點(diǎn)與所述多個標(biāo)簽標(biāo)識符中至少第一標(biāo)簽標(biāo)識符之間的關(guān)聯(lián)關(guān)系,并且確定第一子集,所述第一子集是所述第一標(biāo)簽標(biāo)識符的多個可能標(biāo)簽值中的至少一個標(biāo)簽值并且少于所述第一標(biāo)簽標(biāo)識符的多個可能標(biāo)簽值的全部標(biāo)簽值;以及沿著從所述第一節(jié)點(diǎn)開始的有向鏈路的第一沿襲路徑遍歷各節(jié)點(diǎn),以確定所述第一節(jié)點(diǎn)的數(shù)據(jù)沿襲,其中,所述數(shù)據(jù)沿襲包括(1)依賴性沿襲和(2)影響沿襲中的一個或兩個,所述依賴性沿襲由所述第一節(jié)點(diǎn)上游的有向鏈路的單向上游沿襲路徑構(gòu)成,所述影響沿襲由所述第一節(jié)點(diǎn)下游的有向鏈路的單向下游沿襲路徑構(gòu)成,其中確定所述數(shù)據(jù)沿襲包括,對于每個被遍歷的節(jié)點(diǎn),至少部分基于與所述被遍歷的節(jié)點(diǎn)相關(guān)聯(lián)的任何標(biāo)簽標(biāo)識符或標(biāo)簽值,確定是將所述被遍歷的節(jié)點(diǎn)添加至所述數(shù)據(jù)沿襲還是將所述被遍歷的節(jié)點(diǎn)從所述數(shù)據(jù)沿襲中排除。
在另一個方案中,一般而言,一種計算系統(tǒng),用于管理沿襲信息,所述計算系統(tǒng)包括:用于存儲有向圖的規(guī)范的裝置,所述有向圖的規(guī)范包括多個節(jié)點(diǎn)和有向鏈路,所述有向鏈路表示所述多個節(jié)點(diǎn)之間的相應(yīng)的沿襲關(guān)系,所述多個節(jié)點(diǎn)中的至少一些節(jié)點(diǎn)與多個標(biāo)簽標(biāo)識符中的一個或多個標(biāo)簽標(biāo)識符相關(guān)聯(lián),所述多個標(biāo)簽標(biāo)識符中的至少一個標(biāo)簽標(biāo)識符具有多個可能標(biāo)簽值;用于處理針對所述多個節(jié)點(diǎn)中第一節(jié)點(diǎn)的數(shù)據(jù)沿襲表示請求的裝置。所述處理包括:確定所述第一節(jié)點(diǎn)與所述多個標(biāo)簽標(biāo)識符中至少第一標(biāo)簽標(biāo)識符之間的關(guān)聯(lián)關(guān)系,并且確定第一子集,所述第一子集是所述第一標(biāo)簽標(biāo)識符的多個可能標(biāo)簽值中的至少一個標(biāo)簽值并且少于所述第一標(biāo)簽標(biāo)識符的多個可能標(biāo)簽值的全部標(biāo)簽值;以及沿著從所述第一節(jié)點(diǎn)開始的有向鏈路的第一沿襲路徑遍歷各節(jié)點(diǎn),以確定所述第一節(jié)點(diǎn)的數(shù)據(jù)沿襲,其中,所述數(shù)據(jù)沿襲包括(1)依賴性沿襲和(2)影響沿襲中的一個或兩個,所述依賴性沿襲由所述第一節(jié)點(diǎn)上游的有向鏈路的單向上游沿襲路徑構(gòu)成,所述影響沿襲由所述第一節(jié)點(diǎn)下游的有向鏈路的單向下游沿襲路徑構(gòu)成,其中確定所述數(shù)據(jù)沿襲包括,對于每個被遍歷的節(jié)點(diǎn),至少部分基于與所述被遍歷的節(jié)點(diǎn)相關(guān)聯(lián)的任何標(biāo)簽標(biāo)識符或標(biāo)簽值,確定是將所述被遍歷的節(jié)點(diǎn)添加至所述數(shù)據(jù)沿襲還是將所述被遍歷的節(jié)點(diǎn)從所述數(shù)據(jù)沿襲中排除。
方案可以包括一個或多個下述優(yōu)點(diǎn)。
在一些常規(guī)方案中,本申請所述方法適用于用戶已經(jīng)用沿襲標(biāo)簽形式的附加信息來增強(qiáng)了各節(jié)點(diǎn)的沿襲圖。沿襲標(biāo)簽用于過濾沿襲圖,使得可以定位特定的用戶定義維度,而不會將沿襲僅僅限制為與通過過濾所挑選的對象相鄰的對象,或者通過過濾所挑選的對象的直系沿襲或影響路徑內(nèi)的對象。
相比于其他技術(shù)(例如,簡單過濾或沿襲匯總),本申請所述的方法可以以更具選擇性的方式降低復(fù)雜度。例如,一些沿襲圖中的一個復(fù)雜度的來源是執(zhí)行標(biāo)準(zhǔn)化和去標(biāo)準(zhǔn)化操作的節(jié)點(diǎn),使用沿襲標(biāo)簽可以有助于降低這類沿襲圖中的復(fù)雜度,如本申請更詳細(xì)描述的那樣。
這些方法通過允許用戶定義不同類型的標(biāo)簽來實(shí)現(xiàn)選擇性,每個標(biāo)簽都有自己的一組枚舉值。每種類型的標(biāo)簽充當(dāng)其自己的獨(dú)立過濾維度。標(biāo)簽也可以基于沿襲圖的配置而自動定義,例如執(zhí)行標(biāo)準(zhǔn)化和去標(biāo)準(zhǔn)化的節(jié)點(diǎn)。
在一些示例中,用于選擇要將哪些節(jié)點(diǎn)包括在過濾后的數(shù)據(jù)沿襲圖中以及從過濾后的數(shù)據(jù)沿襲圖中排除哪些節(jié)點(diǎn)的算法遍及沿襲圖的各節(jié)點(diǎn),并通過將所遇到的標(biāo)簽(與標(biāo)簽相關(guān)聯(lián)的任何節(jié)點(diǎn))與一組活動標(biāo)簽(activetag)進(jìn)行比較來確定要排除哪個或哪些。
除了其他優(yōu)點(diǎn)之外,本申請描述的方法并不是簡單地將圖限制成具有活動標(biāo)簽的項的上游和下游節(jié)點(diǎn)。相反,未標(biāo)注標(biāo)簽的節(jié)點(diǎn)也保留在圖中。因此,這些方法允許手術(shù)去除枚舉組的非期望元素的上游或下游的節(jié)點(diǎn)。這種選擇性有利地提供了解決通過簡單過濾或者沿襲匯總(例如,數(shù)據(jù)的標(biāo)準(zhǔn)化/去標(biāo)準(zhǔn)化或超載對象(overloadedobject))而無法解決的問題的能力。
隨著數(shù)據(jù)處理系統(tǒng)復(fù)雜度的增加,數(shù)據(jù)沿襲圖也變得越來越復(fù)雜,在單一視圖中呈現(xiàn)出由相應(yīng)圖標(biāo)所表示的許多節(jié)點(diǎn)(例如,數(shù)據(jù)節(jié)點(diǎn)和數(shù)據(jù)變換節(jié)點(diǎn),統(tǒng)稱“節(jié)點(diǎn)”)。隨著在數(shù)據(jù)沿襲圖中呈現(xiàn)給用戶的節(jié)點(diǎn)數(shù)量的增加,數(shù)據(jù)沿襲圖也可能變得難以理解。
在一些示例中,數(shù)據(jù)處理圖包括許多部分重疊的數(shù)據(jù)沿襲路徑,它們中只有一小部分是用戶通常所感興趣的。例如,在數(shù)據(jù)處理圖的上游部分中,存在許多不同的系統(tǒng),這些系統(tǒng)基于例如地理區(qū)域來處理數(shù)據(jù)。在數(shù)據(jù)處理圖的中游部分中,對來自該圖的上游部分的數(shù)據(jù)進(jìn)行分組,并且在該圖的下游部分中,處理已分組的數(shù)據(jù)。用戶可能有興趣分析單一地理區(qū)域的沿襲路徑。
本文所述的方法利用了一種認(rèn)識,即在給定的數(shù)據(jù)處理系統(tǒng)內(nèi),相互關(guān)聯(lián)的某些節(jié)點(diǎn)通常就是用戶查看時所感興趣的節(jié)點(diǎn)。在本文所述的方法中,使用沿襲標(biāo)簽來關(guān)聯(lián)彼此相關(guān)的節(jié)點(diǎn)集。然后可以基于沿襲標(biāo)簽來過濾節(jié)點(diǎn),以允許用戶生成過濾后的數(shù)據(jù)沿襲圖,其中僅包括用戶查看時所感興趣的節(jié)點(diǎn)。
基于以下描述和權(quán)利要求,本發(fā)明的其他特征和優(yōu)點(diǎn)將變得明顯。
附圖說明
圖1是包括沿襲過濾特征的數(shù)據(jù)處理系統(tǒng)的框圖。
圖2a是包括了帶有沿襲標(biāo)簽的節(jié)點(diǎn)的數(shù)據(jù)沿襲圖。
圖2b是“區(qū)域:us”的第一過濾后的數(shù)據(jù)沿襲圖。
圖3是過濾算法的框圖。
圖4是圖2a的數(shù)據(jù)沿襲圖,其中選擇了一個節(jié)點(diǎn)并將幾個節(jié)點(diǎn)添加至黑名單。
圖5是圖2a的數(shù)據(jù)沿襲圖,其中遍歷了第一數(shù)據(jù)沿襲路徑。
圖6是圖2a的數(shù)據(jù)沿襲圖,其中遍歷了第二數(shù)據(jù)沿襲路徑。
圖7是圖2a的數(shù)據(jù)沿襲圖,其中遍歷了第三數(shù)據(jù)沿襲路徑。
圖8是圖2a的數(shù)據(jù)沿襲圖,其中遍歷了第四數(shù)據(jù)沿襲路徑。
圖9是圖2a的數(shù)據(jù)沿襲圖,其中遍歷了第五數(shù)據(jù)沿襲路徑。
圖10是圖2a的數(shù)據(jù)沿襲圖,其中遍歷了第六數(shù)據(jù)沿襲路徑。
圖11是圖2a的數(shù)據(jù)沿襲圖,其中排除了無關(guān)聯(lián)的節(jié)點(diǎn)。
圖12是“區(qū)域:us、mex”的第二過濾后的數(shù)據(jù)沿襲圖。
圖13是計算機(jī)程序的數(shù)據(jù)沿襲圖,該計算機(jī)程序被配置為執(zhí)行數(shù)據(jù)標(biāo)準(zhǔn)化和去標(biāo)準(zhǔn)化。
圖14是圖13的數(shù)據(jù)沿襲圖,其包括與一些節(jié)點(diǎn)相關(guān)聯(lián)的沿襲標(biāo)簽。
圖15是圖13的數(shù)據(jù)沿襲圖,其中某些節(jié)點(diǎn)被添加至黑名單。
圖16是基于沿襲標(biāo)簽的過濾過程中的圖13的數(shù)據(jù)沿襲圖。
圖17是過濾后的數(shù)據(jù)沿襲圖。
具體實(shí)施方式
圖1示出了數(shù)據(jù)處理系統(tǒng)10的示例,其可以使用基于沿襲標(biāo)簽的數(shù)據(jù)沿襲過濾技術(shù)。系統(tǒng)10包括數(shù)據(jù)源12,該數(shù)據(jù)源12可以包括一個或多個數(shù)據(jù)源,例如存儲設(shè)備或者至在線數(shù)據(jù)流的連接,每個數(shù)據(jù)源可以存儲或提供各種格式中任意格式的數(shù)據(jù)(例如,數(shù)據(jù)庫表、電子表格文件、純文本文件或大型機(jī)使用的本地格式)。執(zhí)行環(huán)境14包括執(zhí)行模塊13。執(zhí)行環(huán)境14可以被托管在一個或多個通用計算機(jī)上,該一個或多個通用計算機(jī)受合適的操作系統(tǒng)的控制,例如某版本的unix操作系統(tǒng)。例如,執(zhí)行環(huán)境14可包括多節(jié)點(diǎn)并行計算環(huán)境,該多節(jié)點(diǎn)并行計算環(huán)境包括使用多個中央處理單元(cpu)或處理器內(nèi)核的計算機(jī)系統(tǒng)的配置,其為本地的(例如,諸如對稱多處理(smp)計算機(jī)之類的多處理器系統(tǒng)),或為本地分布式(例如,耦接為集群或大規(guī)模并行處理(mpp)系統(tǒng)的多個處理器,或為遠(yuǎn)程的,或為遠(yuǎn)程分布式的(例如,經(jīng)由局域網(wǎng)(lan)和/或廣域網(wǎng)(wan)耦接的多個處理器),或為其任意組合。
提供了數(shù)據(jù)源12的存儲設(shè)備可以對于執(zhí)行環(huán)境14來說是本地的,例如,存儲在連接到托管有執(zhí)行環(huán)境14的計算機(jī)的存儲介質(zhì)(例如,硬盤驅(qū)動器18)上,或者可以對于執(zhí)行環(huán)境14來說是遠(yuǎn)程的,例如,通過遠(yuǎn)程連接(例如,由云計算基礎(chǔ)設(shè)施提供的遠(yuǎn)程連接)被托管在與托管了執(zhí)行環(huán)境14的計算機(jī)進(jìn)行通信的遠(yuǎn)程系統(tǒng)(例如,大型機(jī)20)上)。
系統(tǒng)10包括開發(fā)環(huán)境28,在該開發(fā)環(huán)境28中,開發(fā)者30能夠指定數(shù)據(jù)處理計算機(jī)程序27(例如,數(shù)據(jù)流圖表),并將程序存儲在執(zhí)行環(huán)境14可訪問的數(shù)據(jù)存儲系統(tǒng)26中。執(zhí)行模塊13根據(jù)計算機(jī)程序27來處理來自數(shù)據(jù)源的數(shù)據(jù),從而產(chǎn)生輸出數(shù)據(jù)24。輸出數(shù)據(jù)24可以被存儲回數(shù)據(jù)源12中或被存儲在數(shù)據(jù)存儲系統(tǒng)26中,或者被使用。在一些實(shí)施方式中,開發(fā)環(huán)境28是用于將應(yīng)用程序開發(fā)為數(shù)據(jù)流圖表的系統(tǒng),該數(shù)據(jù)流圖表包括通過多個頂點(diǎn)之間的有向鏈路(表示工作元素的流,即數(shù)據(jù))連接的頂點(diǎn)(表示數(shù)據(jù)處理組件或數(shù)據(jù)集)。例如,這種環(huán)境在美國公開號為2007/0011668的標(biāo)題為“管理基于圖形的應(yīng)用的參數(shù)”的美國專利公開文件中有更詳細(xì)的描述,該專利通過引用的方式并入本申請。在標(biāo)題為“executingcomputationsexpressedasgraphs(執(zhí)行表達(dá)為圖的計算)”的美國專利5,966,072中描述了一種用于執(zhí)行這種基于圖的計算的系統(tǒng),其通過引用的方式并入本申請。根據(jù)該系統(tǒng)制作的數(shù)據(jù)流圖提供了用于將信息輸入和輸出由圖形組件表示的各個進(jìn)程、用于在進(jìn)程之間移動信息以及用于定義進(jìn)程的運(yùn)行順序的方法。該系統(tǒng)包括從任何可用方法選擇進(jìn)程間通信方法的算法(例如,根據(jù)圖的鏈路的通信沿襲路徑可以使用tcp/ip或unix域套接字,或者使用共享存儲器在進(jìn)程之間傳遞數(shù)據(jù))。
系統(tǒng)10包括企業(yè)環(huán)境29,用戶31(例如,企業(yè)用戶或數(shù)據(jù)架構(gòu)師)可以通過該企業(yè)環(huán)境29請求和查看數(shù)據(jù)沿襲圖。為了生成數(shù)據(jù)沿襲圖,企業(yè)環(huán)境29包括分析系統(tǒng)元數(shù)據(jù)以生成數(shù)據(jù)沿襲圖的數(shù)據(jù)沿襲模塊25,系統(tǒng)元數(shù)據(jù)包括表征表示對應(yīng)于計算機(jī)程序27不同部分的計算的數(shù)據(jù)變換節(jié)點(diǎn)的元數(shù)據(jù)(例如,不同的數(shù)據(jù)流圖或數(shù)據(jù)流圖內(nèi)的不同組件)以及表征由計算機(jī)程序27訪問或生成的數(shù)據(jù)節(jié)點(diǎn)的元數(shù)據(jù)(例如,來自數(shù)據(jù)源12的數(shù)據(jù)集或?qū)?yīng)于輸出數(shù)據(jù)24的數(shù)據(jù)集)。
在一些示例中,表征數(shù)據(jù)變換節(jié)點(diǎn)和/或數(shù)據(jù)節(jié)點(diǎn)的元數(shù)據(jù)包括數(shù)據(jù)沿襲標(biāo)簽(有時稱為“沿襲標(biāo)簽”)。通常,每個沿襲標(biāo)簽都具有標(biāo)簽標(biāo)識符和許多可能的標(biāo)簽值。例如,一個示例性沿襲標(biāo)簽可以具有的標(biāo)簽標(biāo)識符為“區(qū)域”以及可能的標(biāo)簽值為“美國、英國、墨西哥、加拿大”。
計算機(jī)程序27中的至少一些節(jié)點(diǎn)(即,數(shù)據(jù)變換節(jié)點(diǎn)和/或數(shù)據(jù)節(jié)點(diǎn))與一個或多個沿襲標(biāo)簽和該沿襲標(biāo)簽的可能標(biāo)簽值的子集相關(guān)聯(lián),該子集包括所述一個或多個沿襲標(biāo)簽的可能標(biāo)簽值的至少一個值并且少于所述一個或多個沿襲標(biāo)簽的所有可能的標(biāo)簽值。
參考圖2a,計算機(jī)程序27的示例性端到端數(shù)據(jù)沿襲圖100包括多個數(shù)據(jù)節(jié)點(diǎn)102、多個數(shù)據(jù)變換節(jié)點(diǎn)104和多個容器節(jié)點(diǎn)106,它們通過有向鏈路108互連。
特別地,圖100包括第一數(shù)據(jù)變換節(jié)點(diǎn)110、第二數(shù)據(jù)變換節(jié)點(diǎn)112、第三數(shù)據(jù)變換節(jié)點(diǎn)114、第四數(shù)據(jù)變換節(jié)點(diǎn)116、第五數(shù)據(jù)變換節(jié)點(diǎn)118、第六數(shù)據(jù)變換節(jié)點(diǎn)120、第七數(shù)據(jù)變換節(jié)點(diǎn)122、第八數(shù)據(jù)變換節(jié)點(diǎn)124、第九數(shù)據(jù)變換節(jié)點(diǎn)126、第十?dāng)?shù)據(jù)變換節(jié)點(diǎn)128、第十一數(shù)據(jù)變換節(jié)點(diǎn)130、第十二數(shù)據(jù)變換節(jié)點(diǎn)132和第十三數(shù)據(jù)變換節(jié)點(diǎn)134。圖100包括第一數(shù)據(jù)節(jié)點(diǎn)136和第二數(shù)據(jù)節(jié)點(diǎn)138。圖100包括第一容器節(jié)點(diǎn)140、第二容器節(jié)點(diǎn)142、第三容器節(jié)點(diǎn)144和第四容器節(jié)點(diǎn)146。
第一數(shù)據(jù)變換節(jié)點(diǎn)110與“區(qū)域”沿襲標(biāo)簽相關(guān)聯(lián)。在該示例中,“區(qū)域”沿襲標(biāo)簽具有三個可能的標(biāo)簽值:“us、ca、mex”。第一變換節(jié)點(diǎn)110與包括“us”的“區(qū)域”沿襲標(biāo)簽的可能標(biāo)簽值的子集相關(guān)聯(lián)。第三數(shù)據(jù)變換節(jié)點(diǎn)114與“區(qū)域”沿襲標(biāo)簽相關(guān)聯(lián),并且與包括“mex”的“區(qū)域”沿襲標(biāo)簽的可能標(biāo)簽值的子集相關(guān)聯(lián)。第四數(shù)據(jù)變換節(jié)點(diǎn)116與“區(qū)域”沿襲標(biāo)簽相關(guān)聯(lián)標(biāo)簽,并且與包括“us”的“區(qū)域”沿襲標(biāo)簽的可能標(biāo)簽值的子集相關(guān)聯(lián)。第五數(shù)據(jù)變換節(jié)點(diǎn)118與“區(qū)域”沿襲標(biāo)簽相關(guān)聯(lián),并且與包括“ca”的“區(qū)域”沿襲標(biāo)簽的可能標(biāo)簽值的子集相關(guān)聯(lián)。第六數(shù)據(jù)變換節(jié)點(diǎn)120與“區(qū)域”沿襲標(biāo)簽相關(guān)聯(lián),并且與包括“us”的“區(qū)域”沿襲標(biāo)簽的可能標(biāo)簽值的子集相關(guān)聯(lián)。
第七數(shù)據(jù)變換節(jié)點(diǎn)122與“區(qū)域”沿襲標(biāo)簽相關(guān)聯(lián),并且與包括“ca”的“區(qū)域”沿襲標(biāo)簽的可能標(biāo)簽值的子集相關(guān)聯(lián)。第八數(shù)據(jù)變換節(jié)點(diǎn)124與“區(qū)域”沿襲標(biāo)簽相關(guān)聯(lián),并且與包括“mex”的“區(qū)域”沿襲標(biāo)簽的可能標(biāo)簽值的子集相關(guān)聯(lián)。第九數(shù)據(jù)變換節(jié)點(diǎn)126與“區(qū)域”沿襲標(biāo)簽相關(guān)聯(lián),并且與包括“us”的“區(qū)域”沿襲標(biāo)簽的可能標(biāo)簽值的子集相關(guān)聯(lián)。第十三數(shù)據(jù)變換節(jié)點(diǎn)134與“區(qū)域”沿襲標(biāo)簽相關(guān)聯(lián),并且與包括“ca”的“區(qū)域”沿襲標(biāo)簽的可能標(biāo)簽值的子集相關(guān)聯(lián)。
第一數(shù)據(jù)節(jié)點(diǎn)136與“區(qū)域”沿襲標(biāo)簽相關(guān)聯(lián),并且與包括“us,mex”的“區(qū)域”沿襲標(biāo)簽的可能標(biāo)簽值的子集相關(guān)聯(lián)。第二數(shù)據(jù)節(jié)點(diǎn)138與“區(qū)域”沿襲標(biāo)簽相關(guān)聯(lián),并且與包括“ca”的“區(qū)域”沿襲標(biāo)簽的可能標(biāo)簽值的子集相關(guān)聯(lián)。
1過濾后的數(shù)據(jù)沿襲生成
在一些示例中,圖2a的端到端數(shù)據(jù)沿襲圖100由數(shù)據(jù)沿襲模塊25處理,以產(chǎn)生過濾后的數(shù)據(jù)沿襲圖。參考圖2b,過濾后的數(shù)據(jù)沿襲圖201的一個示例是根據(jù)“區(qū)域”沿襲標(biāo)簽和“us”沿襲標(biāo)簽值而進(jìn)行過濾的端到端數(shù)據(jù)沿襲圖100的一個版本。從圖中可以看出,與圖2a的端到端數(shù)據(jù)沿襲圖100相比,過濾后的數(shù)據(jù)沿襲圖201大大簡化,因為從數(shù)據(jù)沿襲中排除了與“區(qū)域”沿襲標(biāo)簽標(biāo)識符相關(guān)聯(lián)的并且具有僅包括“ca”或僅包括“mex”的沿襲標(biāo)簽值的多個節(jié)點(diǎn)。
如下文參考圖3至圖12所詳細(xì)描述的那樣,為了實(shí)現(xiàn)諸如圖12的第一過濾后數(shù)據(jù)沿襲圖200之類的過濾后數(shù)據(jù)沿襲圖,用戶選擇節(jié)點(diǎn)并命令數(shù)據(jù)沿襲模塊25確定該節(jié)點(diǎn)的過濾后數(shù)據(jù)沿襲。數(shù)據(jù)沿襲模塊25首先確定所選節(jié)點(diǎn)與一個或多個標(biāo)簽標(biāo)識符之間的關(guān)聯(lián)。對于與所選節(jié)點(diǎn)相關(guān)聯(lián)的每個標(biāo)簽標(biāo)識符,數(shù)據(jù)沿襲模塊25確定標(biāo)簽標(biāo)識符的可能標(biāo)簽值中的哪些標(biāo)簽值與所選節(jié)點(diǎn)相關(guān)聯(lián)。通常,用戶可以選擇任意數(shù)量的要與所選節(jié)點(diǎn)相關(guān)聯(lián)的標(biāo)簽值。所選標(biāo)簽值可以表示可能的標(biāo)簽值的子集,例如單個標(biāo)簽值(例如,如圖2b示例所示的“us”)或多個標(biāo)簽值(例如,如圖12示例所示的“us”和“mex”)。通常,選擇少于與標(biāo)簽標(biāo)識符相關(guān)聯(lián)的所有可能標(biāo)簽值的一些標(biāo)簽值。
然后,數(shù)據(jù)沿襲模塊25遍歷從所選節(jié)點(diǎn)開始的一個或多個沿襲路徑,以確定所選節(jié)點(diǎn)的過濾后數(shù)據(jù)沿襲。通常,每個沿襲路徑包括由有向鏈路連接的一個或多個節(jié)點(diǎn)。當(dāng)數(shù)據(jù)沿襲模塊25遍歷一個或多個節(jié)點(diǎn)時,基于與該一個或多個所遍歷的節(jié)點(diǎn)相關(guān)聯(lián)的任意標(biāo)簽標(biāo)識符或標(biāo)簽值來決定是否將節(jié)點(diǎn)添加至過濾后的數(shù)據(jù)沿襲或者從過濾后的數(shù)據(jù)沿襲中排除節(jié)點(diǎn)。
參考圖3,在一些示例中,當(dāng)數(shù)據(jù)沿襲模塊25遍歷沿襲路徑時,過濾算法300用于確定沿著沿襲路徑的節(jié)點(diǎn)是否應(yīng)被標(biāo)記為包括在過濾后的數(shù)據(jù)沿襲圖中,或者是否應(yīng)該被標(biāo)記為從過濾后的數(shù)據(jù)沿襲圖排除。
特別地,當(dāng)數(shù)據(jù)沿襲模塊25到達(dá)沿襲路徑上的被訪問節(jié)點(diǎn)350時,向過濾算法300提供被訪問節(jié)點(diǎn)350和所選節(jié)點(diǎn)352。
在過濾算法300的第一步驟354中,執(zhí)行測試,以確定與被訪問節(jié)點(diǎn)350相關(guān)聯(lián)的任意沿襲標(biāo)簽標(biāo)識符是否與所選節(jié)點(diǎn)352相關(guān)聯(lián)的沿襲標(biāo)簽標(biāo)識符匹配。如果沒有一個沿襲標(biāo)簽標(biāo)識符匹配,則算法進(jìn)行到第二步驟356,在該步驟中,被訪問節(jié)點(diǎn)350被標(biāo)記為包括在過濾后的數(shù)據(jù)沿襲圖中。如果與被訪問節(jié)點(diǎn)350和所選節(jié)點(diǎn)352兩者相關(guān)聯(lián)的一個或多個沿襲標(biāo)簽標(biāo)識符匹配,則算法進(jìn)行到第三步驟358。
在第三步驟358中,對于每個識別出來的匹配沿襲標(biāo)簽標(biāo)識符,執(zhí)行測試,以確定與被訪問節(jié)點(diǎn)350相關(guān)聯(lián)的針對該沿襲標(biāo)簽標(biāo)識符的沿襲標(biāo)簽值中的一個或多個是否匹配與所選節(jié)點(diǎn)352相關(guān)聯(lián)的針對該沿襲標(biāo)簽標(biāo)識符的沿襲標(biāo)簽值中的一個或多個。如果與被訪問節(jié)點(diǎn)350相關(guān)聯(lián)的針對該沿襲標(biāo)簽標(biāo)識符的沿襲標(biāo)簽值中的一個或多個匹配與所選節(jié)點(diǎn)352相關(guān)聯(lián)的針對該沿襲標(biāo)簽標(biāo)識符的沿襲標(biāo)簽值中的一個或多個,則算法進(jìn)行到第二步驟356,在該步驟中,被訪問節(jié)點(diǎn)350被標(biāo)記為包括在過濾后的數(shù)據(jù)沿襲圖中。
或者,如果與被訪問節(jié)點(diǎn)350相關(guān)聯(lián)的針對該沿襲標(biāo)簽標(biāo)識符的沿襲標(biāo)簽值中沒有一個能夠匹配與所選節(jié)點(diǎn)352相關(guān)聯(lián)的針對該沿襲標(biāo)簽標(biāo)識符的沿襲標(biāo)簽值中的任一個,則算法進(jìn)行到第四步驟360,在該步驟中,被訪問節(jié)點(diǎn)350被標(biāo)記為排除在過濾后的數(shù)據(jù)沿襲圖之外。
在一些示例中,當(dāng)數(shù)據(jù)沿襲模塊25遍歷了端到端數(shù)據(jù)沿襲中的沿襲路徑時,執(zhí)行過濾算法400。在其他示例中,一旦節(jié)點(diǎn)被選擇用于數(shù)據(jù)沿襲計算,并且在遍歷任意沿襲路徑之前,將過濾算法應(yīng)用于端到端數(shù)據(jù)沿襲中除所選節(jié)點(diǎn)之外的所有節(jié)點(diǎn)。過濾算法300標(biāo)記為從過濾后的數(shù)據(jù)沿襲圖中排除的任何節(jié)點(diǎn)被添加到“黑名單”。然后,數(shù)據(jù)沿襲模塊25遍歷從所選節(jié)點(diǎn)開始的沿襲路徑。在由數(shù)據(jù)沿襲模塊25所訪問的每個節(jié)點(diǎn)處,數(shù)據(jù)沿襲模塊25搜索黑名單以確定被訪問節(jié)點(diǎn)是否存在于黑名單中。如果被訪問節(jié)點(diǎn)存在于黑名單中,則終止沿襲路徑的遍歷,并且該被訪問節(jié)點(diǎn)不包括在過濾后的數(shù)據(jù)沿襲中。
參考圖4,用戶已經(jīng)選擇了圖2a的端到端數(shù)據(jù)沿襲圖100中的第一數(shù)據(jù)節(jié)點(diǎn)136以用于生成過濾后的數(shù)據(jù)沿襲。如上所述,第一數(shù)據(jù)節(jié)點(diǎn)136與“區(qū)域”沿襲標(biāo)簽標(biāo)識符相關(guān)聯(lián),并且與包括“us、mex”且不包括沿襲標(biāo)簽值“ca”的“區(qū)域”沿襲標(biāo)簽標(biāo)識符的可能標(biāo)簽值的子集相關(guān)聯(lián)。
由于“區(qū)域”沿襲標(biāo)簽標(biāo)識符的“ca”沿襲標(biāo)簽值不包括在與第一數(shù)據(jù)節(jié)點(diǎn)136相關(guān)聯(lián)的沿襲標(biāo)簽值的子集中,所以數(shù)據(jù)沿襲模塊25被配置為將既與“區(qū)域”沿襲標(biāo)簽標(biāo)識符相關(guān)聯(lián)并且還具有僅包括“ca”的標(biāo)簽值子集的節(jié)點(diǎn)從數(shù)據(jù)沿襲中排除。
在一些示例中,在接收到第一數(shù)據(jù)節(jié)點(diǎn)136的選擇之后,數(shù)據(jù)沿襲模塊25處理端到端數(shù)據(jù)沿襲圖100以生成黑名單。如上所述,檢查除第一數(shù)據(jù)節(jié)點(diǎn)136之外的所有節(jié)點(diǎn)來識別與“區(qū)域”沿襲標(biāo)簽標(biāo)識符相關(guān)聯(lián)且具有僅包括“ca”的標(biāo)簽值子集的節(jié)點(diǎn),從而生成黑名單。將過濾算法300應(yīng)用到圖4的端到端數(shù)據(jù)沿襲而導(dǎo)致將第五數(shù)據(jù)變換節(jié)點(diǎn)118、第七數(shù)據(jù)變換節(jié)點(diǎn)122、第十三數(shù)據(jù)變換節(jié)點(diǎn)134和第二數(shù)據(jù)節(jié)點(diǎn)138添加到黑名單。在圖4中,用對角線圖案填充被添加到黑名單的節(jié)點(diǎn)。
一旦生成黑名單,則遍歷從第一數(shù)據(jù)節(jié)點(diǎn)136開始的每條沿襲路徑(即,由有向鏈路108連接的各節(jié)點(diǎn)),直到訪問到位于端到端沿襲圖100的邊緣的節(jié)點(diǎn),或者訪問到黑名單上的節(jié)點(diǎn)為止。在遇到位于端到端數(shù)據(jù)沿襲圖100邊緣的節(jié)點(diǎn)的情況下,在該節(jié)點(diǎn)之前的整條沿襲路徑(包括該節(jié)點(diǎn))被包括在過濾后的數(shù)據(jù)沿襲中。在遇到黑名單上的節(jié)點(diǎn)的情況下,終止沿襲路徑的遍歷,并且在黑名單上的該節(jié)點(diǎn)之前的沿襲路徑(不包括該節(jié)點(diǎn))被包括在過濾后的數(shù)據(jù)沿襲中。
參考圖5,數(shù)據(jù)沿襲模塊25遍歷第一數(shù)據(jù)節(jié)點(diǎn)136和第九數(shù)據(jù)變換節(jié)點(diǎn)126之間的第一沿襲路徑。由于用戶選擇了第一數(shù)據(jù)節(jié)點(diǎn)136,所以它被默認(rèn)標(biāo)記為包括在過濾后的數(shù)據(jù)沿襲中。接下來遍歷第一數(shù)據(jù)節(jié)點(diǎn)136和第十?dāng)?shù)據(jù)變換節(jié)點(diǎn)128之間的有向鏈路108。然后搜索黑名單以確定黑名單是否包括第十?dāng)?shù)據(jù)變換節(jié)點(diǎn)128。由于第十?dāng)?shù)據(jù)變換節(jié)點(diǎn)128不在黑名單中,因此它被標(biāo)記為包括在過濾后的數(shù)據(jù)沿襲中。接下來遍歷第十?dāng)?shù)據(jù)變換節(jié)點(diǎn)128和第九數(shù)據(jù)變換節(jié)點(diǎn)126之間的有向鏈路108。然后搜索黑名單以確定黑名單是否包括第九數(shù)據(jù)變換節(jié)點(diǎn)126。由于第九數(shù)據(jù)變換節(jié)點(diǎn)126不在黑名單中,因此它被標(biāo)記為包括在過濾后的數(shù)據(jù)沿襲中。由于第九數(shù)據(jù)變換節(jié)點(diǎn)126位于端到端沿襲圖100的邊緣,所以第一沿襲路徑的遍歷完成。
參考圖6,數(shù)據(jù)沿襲模塊25遍歷在第一數(shù)據(jù)節(jié)點(diǎn)136和第一數(shù)據(jù)變換節(jié)點(diǎn)110之間延伸的第二沿襲路徑。由于先前已經(jīng)遍歷了第一數(shù)據(jù)節(jié)點(diǎn)136和第十?dāng)?shù)據(jù)變換節(jié)點(diǎn)128之間的有向鏈路108,所以數(shù)據(jù)沿襲模塊25從遍歷第十?dāng)?shù)據(jù)變換節(jié)點(diǎn)128和第四數(shù)據(jù)變換節(jié)點(diǎn)116之間的有向鏈路108開始其遍歷。
當(dāng)沿襲模塊25到達(dá)第四數(shù)據(jù)變換節(jié)點(diǎn)116時,搜索黑名單以確定黑名單是否包括第四數(shù)據(jù)變換節(jié)點(diǎn)116。由于第四數(shù)據(jù)變換節(jié)點(diǎn)116不在黑名單中,因此它被標(biāo)記為包括在過濾后的數(shù)據(jù)沿襲中。注意,第四數(shù)據(jù)變換節(jié)點(diǎn)116包括在嵌套于第一容器節(jié)點(diǎn)140中的第二容器節(jié)點(diǎn)142中。第一容器節(jié)點(diǎn)140和第二容器節(jié)點(diǎn)142均不與任何沿襲標(biāo)簽標(biāo)識符相關(guān)聯(lián),因此它們倆也不包括在黑名單中。由于第二沿襲路徑遍歷了第一容器節(jié)點(diǎn)140和第二容器節(jié)點(diǎn)142的邊界,并且兩個容器節(jié)點(diǎn)都不在黑名單中,所以第一容器節(jié)點(diǎn)140和第二容器節(jié)點(diǎn)142都被標(biāo)記為包括在過濾后的數(shù)據(jù)沿襲中。注意,在一些示例中,如果容器節(jié)點(diǎn)標(biāo)記有沿襲標(biāo)簽標(biāo)識符和值,則其所有后代節(jié)點(diǎn)(即,子節(jié)點(diǎn)及它們的孩子)都標(biāo)記有相同的沿襲標(biāo)簽標(biāo)識符和值。因此,黑名單可以基于最低級別的節(jié)點(diǎn)來構(gòu)建。
接下來,數(shù)據(jù)沿襲模塊25遍歷第四數(shù)據(jù)變換節(jié)點(diǎn)116和第一數(shù)據(jù)變換節(jié)點(diǎn)110之間的有向鏈路108。當(dāng)沿襲模塊25到達(dá)第一數(shù)據(jù)變換節(jié)點(diǎn)110時,搜索黑名單以確定黑名單是否包括第一數(shù)據(jù)變換節(jié)點(diǎn)110。由于第一數(shù)據(jù)變換節(jié)點(diǎn)110不在黑名單中,因此它被標(biāo)記為包括在過濾后的數(shù)據(jù)沿襲中。由于第一數(shù)據(jù)變換節(jié)點(diǎn)110處于端到端沿襲圖100的邊緣,所以第二沿襲路徑的遍歷完成。
參考圖7,數(shù)據(jù)沿襲模塊25遍歷在第一數(shù)據(jù)節(jié)點(diǎn)136和第一數(shù)據(jù)變換節(jié)點(diǎn)110之間延伸的第三沿襲路徑。同樣,由于先前已經(jīng)遍歷了第一數(shù)據(jù)節(jié)點(diǎn)136和第十?dāng)?shù)據(jù)變換節(jié)點(diǎn)128之間的有向鏈路108,所以數(shù)據(jù)沿襲模塊25從遍歷第十?dāng)?shù)據(jù)變換節(jié)點(diǎn)128和第六數(shù)據(jù)變換節(jié)點(diǎn)120之間的有向鏈路108開始其遍歷。
當(dāng)沿襲模塊25到達(dá)第六數(shù)據(jù)變換節(jié)點(diǎn)120時,搜索黑名單以確定黑名單是否包括第六數(shù)據(jù)變換節(jié)點(diǎn)120。由于第六數(shù)據(jù)變換節(jié)點(diǎn)120不在黑名單中,因此它被標(biāo)記為包括在過濾后的數(shù)據(jù)沿襲中。注意,第六數(shù)據(jù)變換節(jié)點(diǎn)120包括在嵌套于第一容器節(jié)點(diǎn)140中的第三容器節(jié)點(diǎn)144中。第一容器節(jié)點(diǎn)140和第三容器節(jié)點(diǎn)144都不與任何沿襲標(biāo)簽標(biāo)識符相關(guān)聯(lián),因此它們均不包括在黑名單中。由于第二沿襲路徑遍歷了第一容器節(jié)點(diǎn)140和第三容器節(jié)點(diǎn)144的邊界,并且兩個容器節(jié)點(diǎn)均不在黑名單中,所以第一容器節(jié)點(diǎn)140和第三容器節(jié)點(diǎn)144均標(biāo)記為包括在過濾后的數(shù)據(jù)沿襲中。
接下來,數(shù)據(jù)沿襲模塊25遍歷第六數(shù)據(jù)變換節(jié)點(diǎn)120和第一數(shù)據(jù)變換節(jié)點(diǎn)110之間的有向鏈路108。當(dāng)沿襲模塊25到達(dá)第一數(shù)據(jù)變換節(jié)點(diǎn)110時,搜索黑名單以確定黑名單是否包括第一數(shù)據(jù)變換節(jié)點(diǎn)110。由于第一數(shù)據(jù)變換節(jié)點(diǎn)110不在黑名單中,因此它被標(biāo)記為包括在過濾后的數(shù)據(jù)沿襲中。由于第一數(shù)據(jù)變換節(jié)點(diǎn)110位于沿襲圖100的邊緣,所以第三沿襲路徑的遍歷完成。
參考圖8,數(shù)據(jù)沿襲模塊25遍歷在第一數(shù)據(jù)節(jié)點(diǎn)136和第二數(shù)據(jù)變換節(jié)點(diǎn)112之間延伸的第四沿襲路徑。由于先前已經(jīng)遍歷了第一數(shù)據(jù)節(jié)點(diǎn)136和第十?dāng)?shù)據(jù)變換節(jié)點(diǎn)128之間的有向鏈路108,所以數(shù)據(jù)沿襲模塊25從遍歷第十?dāng)?shù)據(jù)變換節(jié)點(diǎn)128和第五數(shù)據(jù)變換節(jié)點(diǎn)118之間的有向鏈路108來開始其遍歷。
當(dāng)沿襲模塊25到達(dá)第五數(shù)據(jù)變換節(jié)點(diǎn)118時,搜索黑名單以確定黑名單是否包括第五數(shù)據(jù)變換節(jié)點(diǎn)118。由于第五數(shù)據(jù)變換節(jié)點(diǎn)118存在于黑名單中,所以從過濾后的數(shù)據(jù)沿襲中將它排除。由于第五數(shù)據(jù)變換節(jié)點(diǎn)118被確定為在黑名單中,所以終止第四沿襲路徑的遍歷。
參考圖9,數(shù)據(jù)沿襲模塊25遍歷在第一數(shù)據(jù)節(jié)點(diǎn)136和第三數(shù)據(jù)變換節(jié)點(diǎn)114之間延伸的第五沿襲路徑。由于先前已經(jīng)遍歷了第一數(shù)據(jù)節(jié)點(diǎn)136和第十?dāng)?shù)據(jù)變換節(jié)點(diǎn)128之間的有向鏈路108,所以數(shù)據(jù)沿襲模塊25從遍歷第十?dāng)?shù)據(jù)變換節(jié)點(diǎn)128和第八數(shù)據(jù)變換節(jié)點(diǎn)124之間的有向鏈路108開始其遍歷。
當(dāng)沿襲模塊25到達(dá)第八數(shù)據(jù)變換節(jié)點(diǎn)124時,搜索黑名單以確定黑名單是否包括第八數(shù)據(jù)變換節(jié)點(diǎn)124。由于第八數(shù)據(jù)變換節(jié)點(diǎn)124不在黑名單中,所以它被標(biāo)記為包括在過濾后的數(shù)據(jù)沿襲中。注意,第八數(shù)據(jù)變換節(jié)點(diǎn)124包括在嵌套于第一容器節(jié)點(diǎn)140中的第四容器節(jié)點(diǎn)146中。第一容器節(jié)點(diǎn)140和第四容器節(jié)點(diǎn)146均不與任何沿襲標(biāo)簽標(biāo)識符相關(guān)聯(lián),因此,它們均不包括在黑名單中。由于第五沿襲路徑遍歷了第一容器節(jié)點(diǎn)140和第四容器節(jié)點(diǎn)146的邊界,并且兩個容器節(jié)點(diǎn)都不在黑名單中,所以第一容器節(jié)點(diǎn)140和第四容器節(jié)點(diǎn)146均標(biāo)記為包括在過濾后的數(shù)據(jù)沿襲中。
接下來,數(shù)據(jù)沿襲模塊25遍歷第八數(shù)據(jù)變換節(jié)點(diǎn)124和第三數(shù)據(jù)變換節(jié)點(diǎn)114之間的有向鏈路。當(dāng)沿襲模塊25到達(dá)第三數(shù)據(jù)變換節(jié)點(diǎn)114時,搜索黑名單以確定黑名單是否包括第三數(shù)據(jù)變換節(jié)點(diǎn)114。由于第三數(shù)據(jù)變換節(jié)點(diǎn)114不在黑名單中,因此它被標(biāo)記為包括在過濾后的數(shù)據(jù)沿襲中。由于第三數(shù)據(jù)變換節(jié)點(diǎn)114位于沿襲圖100的邊緣,所以第五沿襲路徑的遍歷完成。
參考圖10,數(shù)據(jù)沿襲模塊25遍歷在第一數(shù)據(jù)節(jié)點(diǎn)136和第二數(shù)據(jù)變換節(jié)點(diǎn)112之間延伸的第六沿襲路徑。由于先前已經(jīng)遍歷了第一數(shù)據(jù)節(jié)點(diǎn)136和第十?dāng)?shù)據(jù)變換節(jié)點(diǎn)128之間的有向鏈路108,所以數(shù)據(jù)沿襲模塊25從遍歷第十?dāng)?shù)據(jù)變換節(jié)點(diǎn)128和第十一數(shù)據(jù)變換節(jié)點(diǎn)130之間的有向鏈路108開始其遍歷。
當(dāng)沿襲模塊25到達(dá)第十一數(shù)據(jù)變換節(jié)點(diǎn)130時,搜索黑名單以確定黑名單是否包括第十一數(shù)據(jù)變換節(jié)點(diǎn)130。由于第十一數(shù)據(jù)變換節(jié)點(diǎn)130不在黑名單中,所以它被標(biāo)記為包括在過濾后的數(shù)據(jù)沿襲中。
接下來,數(shù)據(jù)沿襲模塊25遍歷第十一數(shù)據(jù)變換節(jié)點(diǎn)130和第七數(shù)據(jù)變換節(jié)點(diǎn)122之間的有向鏈路。當(dāng)沿襲模塊25到達(dá)第七數(shù)據(jù)變換節(jié)點(diǎn)122時,搜索黑名單以確定黑名單是否包括第七數(shù)據(jù)變換節(jié)點(diǎn)122。由于第七數(shù)據(jù)變換節(jié)點(diǎn)122存在于黑名單中,所以從過濾后的數(shù)據(jù)沿襲中將它排除。由于第七數(shù)據(jù)變換節(jié)點(diǎn)122被確定為存在于黑名單中,所以終止第六沿襲路徑的遍歷。
參考圖11,由于第十二數(shù)據(jù)變換組件132、第十三數(shù)據(jù)變換組件134和第二數(shù)據(jù)節(jié)點(diǎn)138不在從第一數(shù)據(jù)節(jié)點(diǎn)136開始的沿襲路徑上,所以默認(rèn)將它們從過濾后的數(shù)據(jù)沿襲中排除。
注意,在任意有向鏈路的遍歷過程中,從來沒有到達(dá)過第二數(shù)據(jù)變換節(jié)點(diǎn)112,因此從過濾后的數(shù)據(jù)沿襲中將它排除。
參考圖12,一旦遍歷完從第一數(shù)據(jù)節(jié)點(diǎn)136開始的所有沿襲路徑,則從端到端數(shù)據(jù)沿襲圖100中移除未被標(biāo)記為包括在過濾后的數(shù)據(jù)沿襲中的任何節(jié)點(diǎn),從而得到過濾后的數(shù)據(jù)沿襲圖200。注意,過濾后的數(shù)據(jù)沿襲圖200不包括與“區(qū)域”沿襲標(biāo)簽標(biāo)識符相關(guān)聯(lián)且具有僅包括“ca”的沿襲標(biāo)簽值的節(jié)點(diǎn)。
2標(biāo)準(zhǔn)化/去標(biāo)準(zhǔn)化
參考圖13,計算機(jī)程序27的一個簡單示例性的端到端數(shù)據(jù)沿襲圖1300包括輸入表單1360、標(biāo)準(zhǔn)化數(shù)據(jù)變換節(jié)點(diǎn)1362、數(shù)據(jù)節(jié)點(diǎn)1364、去標(biāo)準(zhǔn)化數(shù)據(jù)變換節(jié)點(diǎn)1366和報告表單1368。輸入表單1360和報告表單1368是多個數(shù)據(jù)節(jié)點(diǎn),這些數(shù)據(jù)節(jié)點(diǎn)中的每一個數(shù)據(jù)節(jié)點(diǎn)均包括這些數(shù)據(jù)節(jié)點(diǎn)中的與嵌套在較高級數(shù)據(jù)元素內(nèi)的不同數(shù)據(jù)元素對應(yīng)的多個數(shù)據(jù)節(jié)點(diǎn)。在此示例中,嵌套的數(shù)據(jù)元素表示每個表單記錄中的不同字段。
標(biāo)準(zhǔn)化數(shù)據(jù)變換節(jié)點(diǎn)1362執(zhí)行標(biāo)準(zhǔn)化操作,該標(biāo)準(zhǔn)化操作對存儲在由數(shù)據(jù)節(jié)點(diǎn)1354表示的數(shù)據(jù)存儲器中的數(shù)據(jù)元素進(jìn)行標(biāo)準(zhǔn)化,去標(biāo)準(zhǔn)化數(shù)據(jù)變換節(jié)點(diǎn)1366執(zhí)行去標(biāo)準(zhǔn)化操作,該去標(biāo)準(zhǔn)化操作對從由數(shù)據(jù)節(jié)點(diǎn)1354表示的數(shù)據(jù)存儲器中取回的數(shù)據(jù)元素進(jìn)行去標(biāo)準(zhǔn)化。雖然標(biāo)準(zhǔn)化操作的“標(biāo)準(zhǔn)化”與去標(biāo)準(zhǔn)化操作的“去標(biāo)準(zhǔn)化”的具體實(shí)現(xiàn)方式可能不同,但通常它們具有以下特征。對數(shù)據(jù)元素進(jìn)行標(biāo)準(zhǔn)化包括將對應(yīng)于多個數(shù)據(jù)元素的記錄轉(zhuǎn)換成具有針對至少一個字段的通用格式的多個記錄。對數(shù)據(jù)元素進(jìn)行去標(biāo)準(zhǔn)化包括將具有針對至少一個字段的通用格式的多個記錄轉(zhuǎn)換成對應(yīng)于多個數(shù)據(jù)元素的單個記錄。以下是在數(shù)據(jù)沿襲圖1300的上下文中的這種操作的示例。
輸入表單1360包括包含移動電話號碼的第一字段1370、包含工作電話號碼的第二字段1372和包含家庭電話號碼的第三字段1374。在操作中,標(biāo)準(zhǔn)化數(shù)據(jù)變換節(jié)點(diǎn)1362接收輸入表單1360,并將輸入表單1360中所包括的電話號碼轉(zhuǎn)換成適于存儲在數(shù)據(jù)節(jié)點(diǎn)1364中的標(biāo)準(zhǔn)化形式。在一些示例中,標(biāo)準(zhǔn)化數(shù)據(jù)變換節(jié)點(diǎn)1362將輸入表單1360中所包括的電話號碼轉(zhuǎn)換成[電話號碼類型,電話號碼]形式,其中電話號碼是具有三個值(移動、工作和家庭)的枚舉數(shù)據(jù)類型。在本文所述方案的上下文中,將具有數(shù)據(jù)元素類型和數(shù)據(jù)元素值的數(shù)據(jù)元素轉(zhuǎn)換成包括數(shù)據(jù)元素類型字段和數(shù)據(jù)元素值字段的數(shù)據(jù)結(jié)構(gòu)的上述過程被稱為對數(shù)據(jù)元素進(jìn)行“標(biāo)準(zhǔn)化”。標(biāo)準(zhǔn)化后的電話號碼存儲在數(shù)據(jù)節(jié)點(diǎn)1364中以供后續(xù)使用。
去標(biāo)準(zhǔn)化數(shù)據(jù)變換節(jié)點(diǎn)1366從數(shù)據(jù)節(jié)點(diǎn)1364中讀取標(biāo)準(zhǔn)化后的電話號碼,并對標(biāo)準(zhǔn)化后的電話號碼進(jìn)行去標(biāo)準(zhǔn)化以使其還原成原始形式。在本文所述方案的上下文中,將標(biāo)準(zhǔn)化數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換回具有數(shù)據(jù)元素類型和數(shù)據(jù)元素值的數(shù)據(jù)元素的上述過程被稱為對數(shù)據(jù)元素進(jìn)行“去標(biāo)準(zhǔn)化”。去標(biāo)準(zhǔn)化數(shù)據(jù)變換節(jié)點(diǎn)1366接下來將移動電話號碼寫入用于存儲移動電話號碼的報告表單1368的第四字段1376中,用于存儲工作電話號碼的報告表單1368的第五字段1378中和用于存儲家庭電話號碼的報告表單1368的第六字段1380中。
因為從數(shù)據(jù)項成為標(biāo)準(zhǔn)化枚舉數(shù)據(jù)類型的轉(zhuǎn)換以及從標(biāo)準(zhǔn)化枚舉數(shù)據(jù)類型成為數(shù)據(jù)項的轉(zhuǎn)換,所以對于常規(guī)數(shù)據(jù)沿襲計算系統(tǒng)來說,上述標(biāo)準(zhǔn)化/去標(biāo)準(zhǔn)化處理可能是困難的。例如,如果用戶請求報告表單1368第四字段1376中的移動電話號碼的數(shù)據(jù)沿襲圖,則依傳統(tǒng)生成的數(shù)據(jù)沿襲圖將包括報告表單1368第四字段1376中的移動電話號碼、去標(biāo)準(zhǔn)化數(shù)據(jù)變換節(jié)點(diǎn)1366、數(shù)據(jù)節(jié)點(diǎn)1364、標(biāo)準(zhǔn)化數(shù)據(jù)變換節(jié)點(diǎn)1362和輸入表單1368的第一字段1370。
依傳統(tǒng)生成的數(shù)據(jù)沿襲圖還包括輸入表單1360第二字段1372中的工作電話號碼以及輸入表單1360第三字段1374中的家庭電話號碼。這樣的傳統(tǒng)數(shù)據(jù)沿襲圖是不正確的,因為第二字段1372中的工作電話號碼和第三字段1374中的家庭電話號碼實(shí)際上不是報告表單1368第四字段1376中的移動電話號碼的數(shù)據(jù)沿襲的一部分。
參考圖14,為了防止生成不正確的數(shù)據(jù)沿襲圖,端對端數(shù)據(jù)沿襲圖1300中的各個字段(其本質(zhì)上是數(shù)據(jù)節(jié)點(diǎn))標(biāo)注沿襲標(biāo)簽,該沿襲標(biāo)簽具有沿襲標(biāo)簽標(biāo)識符“電話號碼”和可能的沿襲標(biāo)簽值:“移動”、“工作”和“家庭”。具體地,第一字段1370標(biāo)注有沿襲標(biāo)簽,該沿襲標(biāo)簽具有“電話號碼”沿襲標(biāo)簽標(biāo)識符和僅包括“移動”的可能沿襲標(biāo)簽值的子集。第二字段1372標(biāo)注有沿襲標(biāo)簽,該沿襲標(biāo)簽具有“電話號碼”沿襲標(biāo)簽標(biāo)識符和僅包括“工作”的可能沿襲標(biāo)簽值的子集。第三字段1374標(biāo)注有沿襲標(biāo)簽,該沿襲標(biāo)簽具有“電話號碼”沿襲標(biāo)簽標(biāo)識符和僅包括“家庭”的可能沿襲標(biāo)簽值的子集。
第四字段1376標(biāo)注有沿襲標(biāo)簽,該沿襲標(biāo)簽具有“電話號碼”沿襲標(biāo)簽標(biāo)識符和僅包括“移動”的可能沿襲標(biāo)簽值的子集。第五字段1378標(biāo)注有沿襲標(biāo)簽,該沿襲標(biāo)簽具有“電話號碼”沿襲標(biāo)簽標(biāo)識符和僅包括“工作”的可能沿襲標(biāo)簽值的子集。第六個字段1380簽注有沿襲標(biāo)簽,該沿襲標(biāo)簽具有“電話號碼”沿襲標(biāo)簽標(biāo)識符和僅包括“家庭”的可能的沿襲標(biāo)簽值的子集。
參考圖15,當(dāng)用戶選擇包括移動電話號碼的第四字段1376以生成過濾后的數(shù)據(jù)沿襲圖時,數(shù)據(jù)沿襲模塊25首先確定第四字段1376與一個或多個沿襲標(biāo)簽標(biāo)識符之間的關(guān)聯(lián)性。在這種情況下,第四字段1376與“電話號碼”沿襲標(biāo)簽標(biāo)識符相關(guān)聯(lián)。接下來,數(shù)據(jù)沿襲模塊25確定“電話號碼”標(biāo)簽標(biāo)識符的可能標(biāo)簽值中的哪個標(biāo)簽值與第四字段1376相關(guān)聯(lián)。在這種情況下,“移動”標(biāo)簽值是與第四字段1376相關(guān)聯(lián)的唯一標(biāo)簽值。
接下來,數(shù)據(jù)沿襲模塊25處理端到端數(shù)據(jù)沿襲圖1300以生成黑名單。如上所述,檢查除所選第四字段1376之外的端到端數(shù)據(jù)沿襲圖1300中的所有節(jié)點(diǎn)和字段來生成黑名單,以便識別與“電話號碼”沿襲標(biāo)簽標(biāo)識符相關(guān)聯(lián)且具有僅包括“工作”和/或“家庭”的標(biāo)簽值子集的節(jié)點(diǎn)和字段。將圖3的過濾算法300應(yīng)用到端到端數(shù)據(jù)沿襲圖1300導(dǎo)致第二字段1372、第三字段1374、第五字段1378和第六字段1380被添加到黑名單。在圖15中,用對角線圖案填充被添加到黑名單的數(shù)據(jù)沿襲字段。
參考圖16,接下來數(shù)據(jù)沿襲模塊25遍歷從第四字段1376開始的所有沿襲路徑,以確定哪些節(jié)點(diǎn)和字段被包括在過濾后的數(shù)據(jù)沿襲中以及從過濾后的數(shù)據(jù)沿襲中排除哪些節(jié)點(diǎn)和字段。從圖中可以看出,數(shù)據(jù)沿襲模塊25將僅用“工作”和“家庭”沿襲標(biāo)簽值標(biāo)注的字段標(biāo)記為從過濾后的數(shù)據(jù)沿襲中排除,而將僅用“移動”沿襲標(biāo)簽值標(biāo)注的字段標(biāo)記為包括在過濾后的數(shù)據(jù)沿襲中。
參考圖17,一旦遍歷了從第四字段1376開始的所有沿襲路徑,則從端到端數(shù)據(jù)沿襲圖1300中移除未被標(biāo)記為包括在過濾后的數(shù)據(jù)沿襲中的任何節(jié)點(diǎn)和字段,這就形成了過濾后的數(shù)據(jù)沿襲圖1700。注意,從過濾后的數(shù)據(jù)沿襲圖1700中排除了通過常規(guī)的沿襲生成技術(shù)而可能錯誤地包括在過濾后的數(shù)據(jù)沿襲圖中的第二字段1327和第三字段1374。
3替代方案
應(yīng)當(dāng)注意,雖然以特定順序遍歷了上述基于沿襲標(biāo)簽的過濾示例中的數(shù)據(jù)沿襲圖的節(jié)點(diǎn),但是可以使用許多不同的遍歷順序。例如,可以使用廣度優(yōu)先遍歷順序(breadthfirstorder)或深度優(yōu)先遍歷順序(depthfirstorder)。
在上述基于沿襲標(biāo)簽的過濾示例中,選擇初始節(jié)點(diǎn),并且使用與初始節(jié)點(diǎn)相關(guān)聯(lián)的沿襲標(biāo)簽和沿襲標(biāo)簽值來過濾沿襲圖。然而,在一些示例中,用戶選擇初始節(jié)點(diǎn),并且數(shù)據(jù)沿襲模塊遍歷數(shù)據(jù)沿襲圖以確定初始節(jié)點(diǎn)的完整數(shù)據(jù)沿襲,并且發(fā)現(xiàn)可用于過濾該完整數(shù)據(jù)沿襲的任何沿襲標(biāo)簽和沿襲標(biāo)簽值。然后將初始節(jié)點(diǎn)的完整數(shù)據(jù)沿襲連同所發(fā)現(xiàn)的沿襲標(biāo)簽和沿襲標(biāo)簽值一起呈現(xiàn)給用戶。接下來,用戶可以通過選擇一個或多個所發(fā)現(xiàn)的沿襲標(biāo)簽和沿襲標(biāo)簽值作為過濾參數(shù)來過濾該完整數(shù)據(jù)沿襲。在其他示例中,在數(shù)據(jù)沿襲模塊遍歷數(shù)據(jù)沿襲圖時,維護(hù)所遇到的沿襲標(biāo)簽和沿襲標(biāo)簽值的列表。然后,可以在遍歷圖的第二上游部分時使用在遍歷圖的第一部分時被添加至列表中的一些或所有沿襲標(biāo)簽和沿襲標(biāo)簽值,以過濾圖的第二部分。
雖然上述方法通常與數(shù)據(jù)沿襲圖的生成相關(guān),但它們也可用于生成影響分析圖。
在一些示例中,與處于沿襲層級中的不同層(例如,容器節(jié)點(diǎn)和容器節(jié)點(diǎn)內(nèi)的數(shù)據(jù)變換節(jié)點(diǎn))的兩個或更多個節(jié)點(diǎn)相關(guān)聯(lián)的沿襲標(biāo)簽可能會發(fā)生沖突。在一些示例中,選擇處于沿襲層級中最底層的節(jié)點(diǎn)作為沿襲標(biāo)簽。
在上述示例中,數(shù)據(jù)變換節(jié)點(diǎn)被示出為通過以箭頭表示的流而彼此直接連接。然而,應(yīng)當(dāng)注意,在一些示例中,將第一組件的輸出連接到第二組件的輸入的流可以隱含地包括數(shù)據(jù)存儲元件,該數(shù)據(jù)存儲元素被從第一組件出來的數(shù)據(jù)寫入,并被第二個組件的輸入讀取。
4實(shí)施方式
上述數(shù)據(jù)沿襲生成方法可以例如使用執(zhí)行合適的軟件的計算系統(tǒng)來實(shí)現(xiàn)。例如,軟件可以包括在一個或多個編程或可編程計算系統(tǒng)(其可以是諸如分布式、客戶端/服務(wù)器或網(wǎng)格的各種架構(gòu))上執(zhí)行的一個或多個計算機(jī)程序中的過程,每個計算系統(tǒng)包括至少一個處理器、至少一個數(shù)據(jù)存儲系統(tǒng)(包括易失性和/或非易失性存儲器和/或存儲元件)、至少一個用戶界面(用于使用至少一個輸入設(shè)備或端口接收輸入,并且用于使用至少一個輸出設(shè)備或端口提供輸出)。軟件可以包括例如提供與數(shù)據(jù)流圖的設(shè)計、配置和執(zhí)行相關(guān)的服務(wù)的較大程序的一個或多個模塊。程序的模塊(例如,數(shù)據(jù)流圖的元素)可以被實(shí)現(xiàn)為符合存儲在數(shù)據(jù)倉庫中的數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)或其它組織形式的數(shù)據(jù)。
軟件可以提供在有形、非暫時性介質(zhì)上,例如cd-rom或其他計算機(jī)可讀介質(zhì)(例如,可由通用或?qū)S糜嬎阆到y(tǒng)或設(shè)備讀取),或者通過網(wǎng)絡(luò)的通信介質(zhì)被遞送(例如,被編碼成傳播信號)到其被執(zhí)行的計算系統(tǒng)的有形、非暫時性介質(zhì)??梢栽趯S糜嬎銠C(jī)上或使用諸如協(xié)處理器或現(xiàn)場可編程門陣列(fpga)或特定的專用集成電路(asic)之類的專用硬件來執(zhí)行一些或全部處理。處理可以以分布式方式實(shí)現(xiàn),其中由軟件指定的不同計算部分由不同的計算元件執(zhí)行。每個這樣的計算機(jī)程序優(yōu)選地存儲在或下載到可由通用或?qū)S每删幊逃嬎銠C(jī)訪問的存儲設(shè)備的計算機(jī)可讀存儲介質(zhì)(例如,固態(tài)存儲器或媒介,或磁媒介或光媒介)上,用于當(dāng)計算機(jī)讀取存儲設(shè)備介質(zhì)以執(zhí)行本文所述的處理時,配置和操作計算機(jī)。本發(fā)明的系統(tǒng)還可以被認(rèn)為可實(shí)現(xiàn)為配置有計算機(jī)程序的有形的、非暫時性介質(zhì),其中如此配置的介質(zhì)使得計算機(jī)以特定和預(yù)定義的方式操作以執(zhí)行本文描述的一個或多個處理步驟。
已經(jīng)描述了本發(fā)明的多個實(shí)施例。然而,應(yīng)當(dāng)理解,前述描述旨在說明而不是限制本發(fā)明的范圍,本發(fā)明的范圍由所附權(quán)利要求的范圍限定。因此,其他實(shí)施例也在所附權(quán)利要求的范圍內(nèi)。例如,在不脫離本發(fā)明的范圍的情況下可以進(jìn)行各種修改。另外,上述的一些步驟可以是與順序無關(guān)的,并且因此可以以與所描述的順序不同的順序來執(zhí)行。